Docker堆栈之Registry私有镜像堆栈的搭建与使用

打印 上一主题 下一主题

主题 846|帖子 846|积分 2538

本章将和大家分享Docker堆栈之Registry私有镜像堆栈的搭建与使用。废话不多说,下面我们直接进入主题。
一、官方标配:Registry私有镜像堆栈

Docker Hub作为Docker默认官方公共镜像堆栈,如果想要本身搭建私有镜像堆栈,官方也提供了Registry镜像,使得我们搭建私有堆栈变得非常简朴。
所谓私有堆栈,也就是在本地(局域网)搭建的一个雷同公共堆栈的东西,搭建好之后,我们可以将镜像提交到私有堆栈中。如许我们既能使用 Docker 来运行我们的项目镜像,也克制了商业项目暴暴露去的风险。
下面就是具体的基于Registry搭建私有堆栈的步骤,起首我们准备了两台Linux服务器,他们的角色如下:
主机名角色备注
192.168.4.250registry-server部署registry容器
192.168.4.251registry-consumer从registry服务器上下载镜像使用
二、搭建镜像堆栈

1、拉取私有堆栈(registry)镜像
  1. docker pull registry
复制代码

2、创建并启动一个私有堆栈(registry)容器
  1. docker run -d -v /opt/images/registry:/var/lib/registry \
  2. -p 5000:5000 \
  3. --restart=always \
  4. --name tianya-registry registry
复制代码
此处的反斜杠 “\” 在Linux中表现换行的意思。

3、测试私有堆栈

在浏览器中输入http://:5000/v2/_catalog,将替换为你的服务器IP地点,如果可以或许正常访问,说明私有堆栈搭建成功。

也可以在客户端检察私有镜像堆栈中的全部镜像:
  1. curl http://<your-server-ip>:5000/v2/_catalog
复制代码

这里返回的json数据代表堆栈中暂无镜像,因为我们还没有上传任何镜像。
三、上传镜像到私有堆栈

1、配置私有堆栈的可信任设置

起首,为了让客户端服务器可以或许快速地访问刚刚在服务端搭建的镜像堆栈(默认情况下是需要配置HTTPS证书的),这里简朴在客户端配置一下私有堆栈的可信任设置让我们可以通过HTTP直接访问。
  1. vim /etc/docker/daemon.json
复制代码
加上下面这一句,这里的“your-server-ip”请替换为你的服务器外网IP地点:
  1. {
  2.     "insecure-registries": [
  3.         "your-server-ip:5000"
  4.     ]
  5. }
复制代码
示例:

保存成功后,重新加载配置并重启Docker服务:
  1. sudo systemctl daemon-reload
  2. sudo systemctl restart docker
复制代码

2、标记镜像
  1. docker tag <image-id> <your-server-ip>:5000/<image-name>:<image-version>
  2. docker tag your-image-name:tagname your-server-ip:5000/your-image-name:tagname
复制代码
其中将替换为你要上传的镜像的ID,替换为你的服务器IP地点,和分别替换为镜像的名称和版本号(标签名)。
示例:
  1. docker tag nginx:latest 192.168.4.250:5000/nginx:v1
  2. docker tag 39286ab8a5e1 192.168.4.250:5000/nginx:v1
复制代码

3、推送镜像到私有堆栈
  1. docker push <your-registry-server-ip>:5000/<your-image-name>:<tagname>
复制代码
示例:
  1. docker push 192.168.4.250:5000/nginx:v1
复制代码

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

也可以在客户端检察私有镜像堆栈中的全部镜像:
  1. curl http://<your-server-ip>:5000/v2/_catalog
复制代码

可以看到,推送成功了。
四、从私有堆栈拉取镜像

1、配置私有堆栈的可信任设置

同样的,需要从私有堆栈拉取镜像的客户端也需要配置私有堆栈的可信任设置:
  1. vim /etc/docker/daemon.json
复制代码
加上下面这一句,这里的“your-server-ip”请替换为你的服务器外网IP地点:
  1. {
  2.     "insecure-registries": [
  3.         "your-server-ip:5000"
  4.     ]
  5. }
复制代码
示例:

保存成功后,重新加载配置并重启Docker服务:
  1. sudo systemctl daemon-reload
  2. sudo systemctl restart docker
复制代码
2、拉取私有堆栈中的镜像
  1. docker pull <your-server-ip>:5000/<your-image-name>:<tagname>
复制代码
示例:
  1. docker pull 192.168.4.250:5000/nginx:v1
复制代码

可以发现拉取成功了。 
3、检察私有堆栈中的镜像都有哪些版本(tag)

如果想要知道要下载的镜像都有哪些版本(tag),可以通过下面这个api来获取:
  1. curl http://<your-server-ip>:5000/v2/<your-image-name>/tags/list
复制代码
示例:
  1. curl http://192.168.4.250:5000/v2/nginx/tags/list
复制代码

至此本文就全部介绍完了,如果觉得对您有所开导请记得点个赞哦!!!
 
此文由博主经心撰写转载请保留此原文链接:https://www.cnblogs.com/xyh9039/p/18509420
版权声明:如有雷同纯属巧合,如有侵权请及时联系本人修改,谢谢!!!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

悠扬随风

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表