Nicolas BADIA
Nicolas BADIA

Reputation: 5852

How to store my docker registry in the file system

I want to setup a private registry behind a nginx server. To do that I configured nginx with a basic auth and started a docker container like this:

docker run -d \
     -e STANDALONE=true \
     -e INDEX_ENDPOINT=https://docker.example.com \
     -e SETTINGS_FLAVOR=local \
     -e STORAGE_PATH=/home/example/registry \
     -p 5000:5000 \
     registry

By doing that, I can login to my registry, push/pull images... But if I stop the container and start it again, everything is lost. I would have expected my registry to be save in /home/example/registry but this is not the case. Can someone tell me what I missed ?

Upvotes: 1

Views: 2472

Answers (1)

Thomasleveil
Thomasleveil

Reputation: 104215

I would have expected my registry to be save in /home/example/registry but this is not the case

it is the case, only the /home/exemple/registry directory is on the docker container file system, not the docker host file system.

If you run your container mounting one of your docker host directory to a volume in the container, it would achieve what you want:

docker run -d \
     -e STANDALONE=true \
     -e INDEX_ENDPOINT=https://docker.example.com \
     -e SETTINGS_FLAVOR=local \
     -e STORAGE_PATH=/registry \
     -p 5000:5000 \
     -v /home/example/registry:/registry \
     registry

just make sure that /home/example/registry exists on the docker host side.

Upvotes: 2

Related Questions