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 里使用。

posted @ 2024-10-30 21:20  *Clouder  阅读(10)  评论(0编辑  收藏  举报