当需要部署多个 Docker 应用时,使用公有仓库可能会遇到问题,这时候需要一个私有仓库,而 Docker 提供了一个方便的工具——Docker Registry,可以轻松搭建自己的私有仓库。
步骤一:安装 Docker Registry
- 使用如下命令拉取官方仓库:
docker pull registry
- 使用如下命令运行 registry 容器:
docker run -d -p 5000:5000 --restart=always --name registry registry:latest
此时 Docker Registry 就已经成功地运行在了你的机器上。接下来,我们可以通过 http://<ip>:5000
访问。
步骤二:配置 Docker
为了使 Docker 能够向我们的私有仓库推送镜像,我们需要在客户端上进行如下配置:
- 打开 Docker 的配置文件 /etc/docker/daemon.json,并输入下面的内容:
{
"insecure-registries": ["<ip>:5000"]
}
注意把 <ip>
替换成运行 Docker Registry 的服务器的 IP 地址。
- 重启 Docker
systemctl daemon-reload
systemctl restart docker
步骤三:使用 Docker Registry
接下来,我们会演示两个使用 Docker 私有仓库的例子,分别是从私有仓库中拉取镜像和推送镜像到私有仓库。
从私有仓库拉取镜像
使用如下命令从 Docker Hub 拉取一个镜像:
docker pull hello-world
然后我们可以通过如下命令给这个镜像设置一个标签,并推送到私有仓库:
docker tag hello-world <ip>:5000/my-hello-world
docker push <ip>:5000/my-hello-world
其中 IP 地址需要替换为你自己的服务器的 IP 地址,"my-hello-world" 是此镜像在私有仓库中的名称。
我们可以使用如下命令来删除本地这个镜像:
docker rmi hello-world
然后再使用如下命令从私有仓库中拉取这个镜像:
docker pull <ip>:5000/my-hello-world
推送镜像到私有仓库
推送一个本地的镜像到私有仓库,首先需要为这个镜像打上标签:
docker tag <image_name> <ip>:5000/<repo_name>:<tag>
其中 image_name 是你要推送的镜像的名字,repo_name 是该镜像在私有仓库中的名称,tag 是这个标签的版本号。
然后,我们需要使用如下命令推送这个标签到私有仓库:
docker push <ip>:5000/<repo_name>:<tag>
最后,我们可以通过如下命令来删除本地这个镜像:
docker rmi <image_name>
然后再使用如下命令从私有仓库中拉取这个镜像:
docker pull <ip>:5000/<repo_name>:<tag>
至此,通过以上步骤,我们已经成功地搭建了一个 docker 私有仓库并成功发布了两个使用 docker 私有仓库的例子。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Docker私有仓库最简便的搭建方法 - Python技术站