一、什么是 Docker Registry 私有仓库?
Docker Hub是Docker官方提供的免费公共镜像仓库,我们可以在其中下载镜像。不过,下载速度无法保证,可能存在被封锁的情况,而且常用的官方镜像下载速度并不是特别快。所以,为了更稳定快速的获取到 Docker 镜像,我们可以使用Docker Registry仓库。然而,官方提供的 Docker Registry 也具有诸多限制,比如有托管镜像数量的限制,只能托管公共镜像等。因此,我们可以构建自己的私有仓库,供自己或公司内部使用。
二、如何配置 Docker Registry 私有仓库?
- 启动容器(默认监听5000端口)
docker run -d -p 5000:5000 --restart=always --name registry registry:2
这行命令指定我们使用的是registry:2镜像,参数-d表示在后台运行容器,-p 5000:5000 表示将容器内部的5000端口映射到主机的5000端口,--restart=always表示自动重启,--name registry则为我们指定了容器的名字registry。
- 验证操作是否成功
通过这个命令查看registry容器状态,就能看到是否成功运行了该容器:
docker ps
如果成功运行,你会看到类似于如下的输出
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
89473fcca935 registry:2 "/entrypoint.sh /etc…" 10 minutes ago Up 10 minutes 0.0.0.0:5000->5000/tcp registry
可以看到,容器状态为 Up
, 并且端口 0.0.0.0:5000->5000/tcp
也表示容器已在5000端口监听请求,即容器启动成功。
- 配置Docker客户端镜像仓库地址
Docker Registry私有仓库已经运行,但为了能够让 Docker 客户端正常操作该私有仓库,需要为其配置镜像仓库地址。
echo '{ "insecure-registries":["myregistrydomain.com:5000"] }' >> /etc/docker/daemon.json
其中, "myregistrydomain.com:5000" 对应的是 Docker Registry
运行的地址和端口号,你需要修改为你自己所创建的私有仓库地址。配置文件修改后,重启 Docker 服务。
sudo systemctl restart docker
- 上传本地镜像到私有仓库
# 下载一个nginx的镜像
docker pull nginx
# 更改镜像标签
docker tag nginx myregistrydomain.com:5000/my-nginx
# 将标签上传至私有仓库
docker push myregistrydomain.com:5000/my-nginx
# 拉取私有仓库的镜像
docker pull myregistrydomain.com:5000/my-nginx
- 登录私有仓库
docker login myregistrydomain.com:5000
执行该命令后, 需要输入私有仓库的用户名和密码,也就是你在dockerhub上的账户名和密码。
- 私有仓库的创建和管理技巧
上述方法是构建一个简单且功能齐全的私有Docker仓库的过程。当然,如果你要在生产环境中使用它,你需要考虑更多的因素,如密钥管理,权限控制等,这些都是有关网络安全的方面。下面,我们将分享一些私有仓库创建和管理的技巧。
6.1 防止私有仓库的崩溃,可以在创建容器时将存储配置为主机路径:
docker run -d -p 5000:5000 --restart=always --name registry -v /path/on/host:/var/lib/registry registry:2
6.2 如果你想自己管理Docker Registry,那么你可以使用Docker Registry的Web界面。这个页面可以让你管理仓库中的镜像和tags。
docker run -d --name registry_ui -p 8080:80 --link registry_svr -e REGISTRY_URL=http://registry_svr:5000/v2 -e REGISTRY_NAME=local registry:2
访问 http://localhost:8080 即可访问Docker Registry的Web界面。
以上就是Docker Registry 私有仓库的搭建过程以及常用管理技巧的介绍。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:docker registry 私有仓库的搭建过程 - Python技术站