小白学习使用Nexus搭建docker私服

环境

  • 服务器: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

group的端口: 8084

proxy 设置端口8083

创建完成后,进行安全设置

image.png

登录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 restart docker
复制代码

重新启动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
复制代码

登录成功如下图:
image.png

打包镜像

依据现有的mysql容器打包镜像

docker tag mysql 192.168.57.128:9082/mysql:live
复制代码

注意:

  • 必须是ip:镜像仓库端口/镜像名:镜像标签

查看所有镜像,发现有我新打的镜像192.168.57.128:9082/mysql:live

docker images
复制代码

image.png

将打好的镜像推到自己的镜像仓库

docker push 192.168.57.128:9082/mysql:live
复制代码

打开nexus网站,查看docker仓库,发现自己推的镜像已经推到了镜像仓库

image.png

从私有docker仓库拉取对应镜像

先删除原先打的镜像

docker rmi 192.168.57.128:9082/mysql:live
复制代码

查看本地镜像,发现镜像已被删除

image.png
拉取仓库里的镜像

docker pull 192.168.57.128:9082/mysql:live
复制代码

image.png
拉取成功