Docker镜像私有仓库
为了更好的管理镜像
- 公网仓库:docker hub
- 私网仓库: registry、harbor
搭建私有registry仓库
搭建步骤
- 拉取 registry 容器镜像
- 创建 registry 仓库容器
- 测试容器应用
安装registry仓库
docker pull registry #1、创建持久化存储,将容器镜像存储目录/var/lib/registry挂载到本地/opt/myregistry下: mkdir /opt/myregistry # 2、创建 registry 容器: docker run -d -p 5000:5000 -v /opt/myregistry:/var/lib/registry --restart=always registry:latest # 显示仓库中没有任何镜像 curl http://192.168.1.150:5000/v2/_catalog {"repositories":[]}
上传步骤
#1.修改标签tag,将私有仓库的域名或IP地址添加到镜像上。 docker tag hello 192.168.8.14:5000/hello-lasest:latest #2.使用docker push上传 docker push 192.168.8.14:5000/hello-lasest:latest #3.如果上传成功则可输入查看 curl http://192.168.1.150:5000/v2/_catalog
push过程报错
Get https://172.18.11.126:5000/v2/: http: server gave HTTP response to HTTPS client
排错
#docker默认要求仓库是https的协议 #1.服务端nginx反向代理,配置ssl加密证书。 #2.修改客户端的配置文件,让客户端允许不安全的http网址 cat /etc/docker/daemon.json { "insecure-registries": ["http://192.168.8.14:5000"] } #忽略https
进行重启Docker
systemctl daemon-reload systemctl restart docker
进行下载
设置机器的docker仓库为registry仓库
#1、设置docker启动文件 [root@zuolaoshi_node1 ~]# sed -i.bak '/^ExecStart=/c\ExecStart=\/usr\/bin\/dockerd' /usr/lib/systemd/system/docker.service #2、设置docker配置文件 [root@zuolaoshi_node1 ~]# cat /etc/docker/daemon.json { "insecure-registries": ["http://182.168.8.14:5000"] }
拉取镜像
docker pull 192.168.8.14:5000/hello-lasest:latest
最后进行验证
docker images
如果显示有即为正确!
搭建harbor仓库
先对两个压缩包进行下载
harbor压缩包
harbor-offline-installer-v1.9.2-rc1.tgz
compose压缩包
docker-compose
安装docker-compose
#拷贝文件进入路径 cp docker-compose /usr/local/bin/ #给文件执行的权限 chmod +x /usr/local/bin/docker-compose #查看是否更改 ls /usr/local/bin/ #查看版本信息 docker-compose -v
安装harbor仓库
#对压缩包进行解压 tar xf harbor-offline-installer-v1.9.2-rc1.tgz #移动文件夹 mv harbor /opt/ #对配置文件进行更改 vim /opt/harbor/harbor.yml 更改内容如下: hostname: 192.168.8.24 # external_url: https://reg.mydomain.com:8433 exernal_url: 192.168.8.24 #保存文件退出后进行脚本安装 cd /opt/harbor/ ./install.sh #对docker的配置文件进行添加 vim /etc/docker/daemon.json 内容如下: "insecure-registries": ["http://192.168.8.24"] #重启docker systemctl daemon-reload systemctl restart docker #进入网页验证即可 docker login 192.168.8.24 -u admin -p 12345 显示login Succeeded即为正确。