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

2,239 阅读2分钟

环境

  • 服务器:window10虚拟机搭建的虚拟机,虚拟机系统是centos8
  • 服务器内安装了docker,同时安装了nexus3,nexus3暴露了三个端口:9081:8081(访问nexus用的)、9082:8082(docker(hosted)私有仓库,可以pull和push)、9083:8083(docker(proxy)代理远程仓库,只能pull)

一、创建docker的Blob

image.png

二、创建docker的hosted、proxy、group

  • hosted,HTTP端口8082 image.png

image.png

  • proxy,HTTP端口:8083 image.png

image.png

image.png

  • group,HTTP端口:8084 image.png

image.png

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

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 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

登录成功如下图: image.png

四、将远程仓库的镜像拉取到私有仓库

  • 先登录到私有仓库
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

可看到拉取成功。 image.png

image.png

五、镜像推送与拉取

1. 推送镜像到私有仓库

  • 依据现有的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

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

  • 先删除原先打的镜像
docker rmi 192.168.57.128:9082/mysql:live

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

  • 拉取仓库里的镜像
docker pull 192.168.57.128:9082/mysql:live

image.png 拉取成功

参考