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、拉取私有堆栈(registry)镜像
docker pull registryhttps://img2024.cnblogs.com/blog/1755789/202411/1755789-20241103154843729-476091066.png
2、创建并启动一个私有堆栈(registry)容器
docker run -d -v /opt/images/registry:/var/lib/registry \
-p 5000:5000 \
--restart=always \
--name tianya-registry registry此处的反斜杠 “\” 在Linux中表现换行的意思。
https://img2024.cnblogs.com/blog/1755789/202411/1755789-20241103155926292-747516769.png
3、测试私有堆栈
在浏览器中输入http://:5000/v2/_catalog,将替换为你的服务器IP地点,如果可以或许正常访问,说明私有堆栈搭建成功。
https://img2024.cnblogs.com/blog/1755789/202411/1755789-20241103160423392-779738651.png
也可以在客户端检察私有镜像堆栈中的全部镜像:
curl http://<your-server-ip>:5000/v2/_cataloghttps://img2024.cnblogs.com/blog/1755789/202411/1755789-20241103160725229-1256403204.png
这里返回的json数据代表堆栈中暂无镜像,因为我们还没有上传任何镜像。
三、上传镜像到私有堆栈
1、配置私有堆栈的可信任设置
起首,为了让客户端服务器可以或许快速地访问刚刚在服务端搭建的镜像堆栈(默认情况下是需要配置HTTPS证书的),这里简朴在客户端配置一下私有堆栈的可信任设置让我们可以通过HTTP直接访问。
vim /etc/docker/daemon.json加上下面这一句,这里的“your-server-ip”请替换为你的服务器外网IP地点:
{
"insecure-registries": [
"your-server-ip:5000"
]
}示例:
https://img2024.cnblogs.com/blog/1755789/202411/1755789-20241103162817249-1530522306.png
保存成功后,重新加载配置并重启Docker服务:
sudo systemctl daemon-reload
sudo systemctl restart dockerhttps://img2024.cnblogs.com/blog/1755789/202411/1755789-20241103163422697-1831410253.png
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其中将替换为你要上传的镜像的ID,替换为你的服务器IP地点,和分别替换为镜像的名称和版本号(标签名)。
示例:
docker tag nginx:latest 192.168.4.250:5000/nginx:v1
或
docker tag 39286ab8a5e1 192.168.4.250:5000/nginx:v1https://img2024.cnblogs.com/blog/1755789/202411/1755789-20241103164940472-1872556537.png
3、推送镜像到私有堆栈
docker push <your-registry-server-ip>:5000/<your-image-name>:<tagname>示例:
docker push 192.168.4.250:5000/nginx:v1https://img2024.cnblogs.com/blog/1755789/202411/1755789-20241103165323327-183807840.png
推送完成后,可以检察一下是否有真正的推送成功:
https://img2024.cnblogs.com/blog/1755789/202411/1755789-20241103165738784-1959619980.png
也可以在客户端检察私有镜像堆栈中的全部镜像:
curl http://<your-server-ip>:5000/v2/_cataloghttps://img2024.cnblogs.com/blog/1755789/202411/1755789-20241103165900631-1982282138.png
可以看到,推送成功了。
四、从私有堆栈拉取镜像
1、配置私有堆栈的可信任设置
同样的,需要从私有堆栈拉取镜像的客户端也需要配置私有堆栈的可信任设置:
vim /etc/docker/daemon.json加上下面这一句,这里的“your-server-ip”请替换为你的服务器外网IP地点:
{
"insecure-registries": [
"your-server-ip:5000"
]
}示例:
https://img2024.cnblogs.com/blog/1755789/202411/1755789-20241103171505389-1621578197.png
保存成功后,重新加载配置并重启Docker服务:
sudo systemctl daemon-reload
sudo systemctl restart docker2、拉取私有堆栈中的镜像
docker pull <your-server-ip>:5000/<your-image-name>:<tagname>示例:
docker pull 192.168.4.250:5000/nginx:v1https://img2024.cnblogs.com/blog/1755789/202411/1755789-20241103171957168-96280516.png
可以发现拉取成功了。
3、检察私有堆栈中的镜像都有哪些版本(tag)
如果想要知道要下载的镜像都有哪些版本(tag),可以通过下面这个api来获取:
curl http://<your-server-ip>:5000/v2/<your-image-name>/tags/list示例:
curl http://192.168.4.250:5000/v2/nginx/tags/listhttps://img2024.cnblogs.com/blog/1755789/202411/1755789-20241103180710319-1966700597.png
至此本文就全部介绍完了,如果觉得对您有所开导请记得点个赞哦!!!
此文由博主经心撰写转载请保留此原文链接:https://www.cnblogs.com/xyh9039/p/18509420
版权声明:如有雷同纯属巧合,如有侵权请及时联系本人修改,谢谢!!!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]