The Docker registry uses a HTTP API. docker push
uses PUT
, PUSH
and PATCH
HTTP methods. To allow docker pull
and block docker push
a firewall solution which inspects the HTTP requests would be necessary.
But even if docker push
is blocked by a firewall it would still be possible to use docker save
to create a local image archive which could then be saved on a USB stick or transferred out of the company network via email, etc.
To get some level of security one could consider blocking access to the docker.io
registry to prevent accidental push commands, run a private registry and only use a private base image.
On Linux you can configure something like this:
BLOCK_REGISTRY='--block-registry=all'
ADD_REGISTRY='--add-registry=registry.access.redhat.com'
However it seems that these settings haven't been implemented in Docker for Windows.