一. 介绍
一般docker提供了Docker Hub来维护管理所有的镜像,但是一般出于安全和网络原因,我们不可能把商业项目上传到docker上,我们会在本地局域网搭建私有镜像仓库。
所谓私有仓库,也就是在本地(局域网)搭建的一个类似公共仓库的东西,搭建好之后,我们可以将镜像提交到私有仓库中。这样我们既能使用 Docker 来运行我们的项目镜像,也避免了商业项目暴露出去的风险。
二. 环境
服务端机器 (主机名为registry):docker私有仓库服务器,运行registry容器。
测试端机器 (主机名为node):普通的docker服务器,在这台服务器上下载一个测试镜像busybox,然后上传到registry服务器进行测试。
三. 部署
registry主机下操作:
1. 下载镜像
docker pull registry
2. 查看镜像是否下载成功
docker image ls

3. 运行镜像
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest

参数说明
-itd:在容器中打开一个伪终端进行交互操作,并在后台运行;
-v:把宿主机的/data/registry目录绑定 到 容器/var/lib/registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的持久化;
-p:映射端口;访问宿主机的5000端口就访问到registry容器的服务了;
--restart=always:这是重启的策略,假如这个容器异常退出会自动重启容器;
--name registry:创建容器命名为registry,你可以随便命名;
registry:latest:这个是刚才pull下来的镜像;
4. 测试镜像仓库中的所有镜像
curl http://127.0.0.1:5000/v2/_catalog

node节点下操作:
1. 为镜像打标签

192.168.72.102:5000是registry私有镜像服务器的IP地址和端口
2. 查看打好标签的镜像

3. 上传到镜像服务器

这边报错了,因为docker 默认是https协议,而我们这是http协议。
解决方案:
1)修改daemon.json文件:添加私有镜像服务器地址

2)重启docker

4. 再次上传到私有服务器

5. 可以在registry主机上看看镜像:

6. 测试(先删除node机器上的镜像,然后从主机上下载)


我们也可以在浏览器上直接访问:

本文介绍了如何在本地局域网搭建Docker私有镜像仓库,以提高安全性并避免商业项目暴露。详细步骤包括在registry主机上下载并运行registry容器,设置数据持久化,以及在测试端机器(node)上为镜像打标签、上传到私有仓库。由于默认的HTTPS协议问题,需要修改daemon.json文件并重启Docker服务来解决。最后,验证了从私有仓库下载镜像的功能。

4978

被折叠的 条评论
为什么被折叠?



