Docker仓库之Registry私有镜像仓库的搭建与使用

本章将和大家分享Docker仓库之Registry私有镜像仓库的搭建与使用。废话不多说,下面我们直接进入主题。

一、官方标配:Registry私有镜像仓库

Docker Hub作为Docker默认官方公共镜像仓库,如果想要自己搭建私有镜像仓库,官方也提供了Registry镜像,使得我们搭建私有仓库变得非常简单。

所谓私有仓库,也就是在本地(局域网)搭建的一个类似公共仓库的东西,搭建好之后,我们可以将镜像提交到私有仓库中。这样我们既能使用 Docker 来运行我们的项目镜像,也避免了商业项目暴露出去的风险。

下面就是详细的基于Registry搭建私有仓库的步骤,首先我们准备了两台Linux服务器,他们的角色如下:

主机名角色备注
192.168.4.250registry-server部署registry容器
192.168.4.251registry-consumer从registry服务器上下载镜像使用

二、搭建镜像仓库

1、拉取私有仓库镜像

docker pull registry

2、创建并启动一个私有仓库容器

docker run -d -v /opt/images/registry:/var/lib/registry \
-p 5000:5000 \
--restart=always \
--name tianya-registry registry

此处的反斜杠 “\” 在Linux中表示换行的意思。

3、测试私有仓库

在浏览器中输入http://<your-server-ip>:5000/v2/_catalog,将<your-server-ip>替换为你的服务器IP地址,如果能够正常访问,说明私有仓库搭建成功。

也可以在客户端查看私有镜像仓库中的所有镜像:

curl http://<your-server-ip>:5000/v2/_catalog

这里返回的json数据代表仓库中暂无镜像,因为我们还没有上传任何镜像。

三、上传镜像到私有仓库

1、修改docker守护进程配置文件

vim /etc/docker/daemon.json

加上下面这一句,让 Docker 认为该地址是安全的,这里的 “your-server-ip” 请替换为你的服务器外网IP地址:

{
 "insecure-registries": [
 "your-server-ip:5000"
 ]
}

“insecure-registries”:不安全的注册表,用来配置 Docker 可以通过 HTTP 而非 HTTPS 连接的不安全镜像仓库地址,即:配置可信任地址。如果配置为0.0.0.0/0,则表示信任所有地址的所有私有仓库。

示例:

保存成功后,重新加载配置并重启Docker服务:

sudo systemctl daemon-reload
sudo systemctl restart docker

2、标记镜像

docker tag <image-id> <your-server-ip>:5000/<image-name>:<image-version>
或
docker tag your-image-name:tagname your-server-ip:5000/your-image-name:tagname

其中将<image-id>替换为你要上传的镜像的ID,<your-server-ip>替换为你的服务器IP地址,<image-name>和<image-version>分别替换为镜像的名称和版本号(标签名)。

示例:

docker tag nginx:latest 192.168.4.250:5000/nginx:v1
或
docker tag 39286ab8a5e1 192.168.4.250:5000/nginx:v1

3、推送镜像到私有仓库

docker push <your-registry-server-ip>:5000/<your-image-name>:<tagname>

示例:

docker push 192.168.4.250:5000/nginx:v1

推送完成后,可以查看一下是否有真正的推送成功:

也可以在客户端查看私有镜像仓库中的所有镜像:

curl http://<your-server-ip>:5000/v2/_catalog

可以看到,推送成功了。

四、从私有仓库拉取镜像

1、修改docker守护进程配置文件

vim /etc/docker/daemon.json

同样的,加上下面这一句,让 Docker 认为该地址是安全的,这里的 “your-server-ip” 请替换为你的服务器外网IP地址:

{
 "insecure-registries": [
 "your-server-ip:5000"
 ]
}

“insecure-registries”:不安全的注册表,用来配置 Docker 可以通过 HTTP 而非 HTTPS 连接的不安全镜像仓库地址,即:配置可信任地址。如果配置为0.0.0.0/0,则表示信任所有地址的所有私有仓库。

示例:

保存成功后,重新加载配置并重启Docker服务:

sudo systemctl daemon-reload
sudo systemctl restart docker

2、拉取私有仓库中的镜像

docker pull <your-server-ip>:5000/<your-image-name>:<tagname>

示例:

docker pull 192.168.4.250:5000/nginx:v1

可以发现拉取成功了。 

3、查看私有仓库中的镜像都有哪些版本

如果想要知道要下载的镜像都有哪些版本(tag),可以通过下面这个api来获取:

curl http://<your-server-ip>:5000/v2/<your-image-name>/tags/list

示例:

curl http://192.168.4.250:5000/v2/nginx/tags/list

至此本文就全部介绍完了,如果觉得对您有所启发请记得点个赞哦!!!

 

此文由博主精心撰写转载请保留此原文链接:https://www.cnblogs.com/xyh9039/p/18509420

版权声明:如有雷同纯属巧合,如有侵权请及时联系本人修改,谢谢!!!

作者:谢友海原文地址:https://www.cnblogs.com/xyh9039/p/18509420

%s 个评论

要回复文章请先登录注册