环境
- 服务器:window10虚拟机搭建的虚拟机,虚拟机系统是centos8
- 服务器内安装了docker,同时安装了nexus3,nexus3暴露了三个端口:9081:8081(访问nexus用的)、9082:8082(docker(hosted)私有仓库,可以pull和push)、9083:8083(docker(proxy)代理远程仓库,只能pull)
一、创建docker的Blob
二、创建docker的hosted、proxy、group
- hosted,HTTP端口
8082
- proxy,HTTP端口:
8083
- group,HTTP端口:
8084
三、创建完成后,进行安全设置
- 登录docker私服,报这个错误
http: server gave HTTP response to HTTPS client。 解决方案:
vi /etc/docker/daemon.json
文件内容如下:
{
"registry-mirrors": [
"https://hjwigbqv.mirror.aliyuncs.com"
],
"insecure-registries": [
"http://192.168.57.128:9082",
"http://192.168.57.128:9083",
"http://192.168.57.128:9084"
]
}
- 重加载docker配置文件
systemctl daemon-reload
- 重新启动docker
systemctl restart docker
- 重新分别登录docker的三个仓库
docker login 192.168.57.128:9082 -u admin -p hxslove:1996
docker login 192.168.57.128:9083 -u admin -p hxslove:1996
docker login 192.168.57.128:9084 -u admin -p hxslove:1996
登录成功如下图:
四、将远程仓库的镜像拉取到私有仓库
- 先登录到私有仓库
docker login 192.168.57.128:9082 -u admin -p hxslove:1996
docker login 192.168.57.128:9084 -u admin -p hxslove:1996
- 拉取远程镜像
docker pull 192.168.3.5:9084/alpine
docker pull 192.168.3.5:9084/tomcat
可看到拉取成功。
五、镜像推送与拉取
1. 推送镜像到私有仓库
- 依据现有的mysql容器打包镜像
docker tag mysql 192.168.57.128:9082/mysql:live
注意:
- 必须是ip:镜像仓库端口/镜像名:镜像标签
- 查看所有镜像,发现有我新打的镜像192.168.57.128:9082/mysql:live
docker images
- 将打好的镜像推到自己的镜像仓库
docker push 192.168.57.128:9082/mysql:live
打开nexus网站,查看docker仓库,发现自己推的镜像已经推到了镜像仓库
2. 从私有docker仓库拉取对应镜像
- 先删除原先打的镜像
docker rmi 192.168.57.128:9082/mysql:live
查看本地镜像,发现镜像已被删除
- 拉取仓库里的镜像
docker pull 192.168.57.128:9082/mysql:live
拉取成功