环境说明:两台装有docker环境的centos7。安装docker的步骤可以参考
https://www.cnblogs.com/maohai-kdg/p/13474024.html
https://www.cnblogs.com/maohai-kdg/p/13597315.html
非常的详细!!!
思路:搭建一个本地私有docker容器仓库,本机或局域网内其他机器访问本地私有仓库,从而在大量部署的时候,可以非常快的拉取镜像
操心你不懂的话不多说,反正我也不会看系列(手动微笑),直接上才艺。
创建宿主机存储目录,即放容器镜像的路径
mkdir -p /opt/data/registry
下载并启动一个registry容器,-v指定镜像文件本地存放路径
docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry --name private_registry registry
配置http权限支持
vim /etc/docker/daemon.json
{
"insecure-registries":["192.168.92.134:5000"]
}
重启docker服务,重启registry服务
systemctl restart docker
docker restart private_registry
现在,测试上传和下载镜像到本地仓库
使用docker tag命令将镜像标记为192.168.92.134:5000/test
docker tag ubuntu:18.04 192.168.92.134/test
推送到本地仓库
docker push 192.168.92.134:5000/test
查看上传的镜像
curl http://192.168.92.134:5000/v2/_catalog
现在可以删除本地的test镜像,然后测试从本地仓库重新下载镜像
从本地仓库拉取镜像
docker pull 192.168.92.134:5000/test
docker images
局域网内其它机器访问本地仓库
如果是直接拉取会出现以下问题
出现这问题的原因是:Docker自从1.3.X之后docker registry交互默认使用的是HTTPS,但是搭建私有镜像默认使用的是HTTP服务,所以与私有镜像交互时出现以上错误。
需要修改docker daemon的启动参数(需要访问仓库的其他机器),添加如下参数,表示信任这个私有仓库,不进行安全证书检查(centos7为例)
vim /usr/lib/systemd/system/docker.service
添加如下内容
--insecure-registry 192.168.92.134:5000
修改好后重启docker服务和配置
systemctl daemon-reload
systemctl restart docker
然后重启所有容器
docker setart $(docker ps -aq)
然后再拉取,就好了
其它机器也可以上传镜像到本地仓库