Docker 自建 Registry
如果你需要保存自己的镜像,但又不想直接公开出来,那么可以选择自建 Registry.
如果想要加速国内访问,可以选择自建 Docker Proxy,或者使用 https://dockerproxy.net.
本文发表于 https://clouder0.com/zh-cn/posts/docker-registry-self-host/.
需要把我自己打包的 image 部署出来,自建一个 registry.
参考资料:https://distribution.github.io/distribution/about/deploying/
首先生成一个账号密码:
mkdir auth
docker run --entrypoint htpasswd httpd:2 -Bbn testuser testpassword > auth/htpasswd
然后写 docker-compose:
registry:
restart: always
image: registry:2
ports:
- 5000:5000
environment:
REGISTRY_AUTH: htpasswd
REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
volumes:
- ./data:/var/lib/registry
- ./auth:/auth
进行一个测试:
docker login localhost:5000
登录上就行了。
然后反代,我使用 Caddy:
example.com:5001 {
reverse_proxy localhost:5000
tls yourmail@outlook.com
}
Done.
之后就可以用 docker login example.com:5001
来登录了。
Usage
之后怎么使用呢?
比如我们本地有一个叫做 test 的 image,那我们首先给它打上标签:
docker tag test example.com:5001/test
然后再 push 过去:
docker push example.com:5001/test
在另一边,也是同样的:
docker pull example.com:5001/test
当然,也可以在 compose file 里使用。
Love programming and insist on improving myself.