五、测试
5.1 下载镜像进行推送测试
docker pull nginx
5.2 将镜像打标签
#格式:docker tag 镜像:标签 仓库IP/项目名称/镜像名:标签 docker tag nginx:latest 127.0.0.1/myproject-stevelu/nginx:v1
5.3 上传镜像到 Harbor
docker push 127.0.0.1/myproject-stevelu/nginx:v1 #在 Harbor 界面 myproject-stevelu 目录下可看见此镜像及相关信息
5.4 在其他客户端上传镜像
以上操作都是在 Harbor 服务器本地操作。如果其他客户端登录到 Harbor,就会报如下错误。出现这问题的原因为Docker Registry 交互默认使用的是 HTTPS,但是搭建私有镜像默认使用的是 HTTP 服务,所以与私有镜像交互时出现以下错误。
[root@localhost ~]# docker login -u admin -p Harbor12345 http://192.168.109.136 WARNING! Using --password via the CLI is insecure. Use --password-stdin. Error response from daemon: Get "https://192.168.109.136/v2/": dial tcp 192.168.109.136:443: connect: connection refused
5.5 在 Docker 客户端配置操作
#解决办法是:在 Docker server 启动的时候,增加启动参数,默认使用 HTTP 访问。 vim /usr/lib/systemd/system/docker.service --13行--修改 ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.109.136 --containerd=/run/containerd/containerd.sock 或 ExecStart=/usr/bin/dockerd --insecure-registry 192.168.109.136
重启 Docker,再次登录
systemctl daemon-reload systemctl restart docker
5.6 再次登录 Harbor
docker login -u admin -p Harbor12345 http://192.168.109.136 WARNING! Using --password via the CLI is insecure. Use --password-stdin. WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Login Succeeded
5.7 下载镜像进行测试
docker push 192.168.109.136/myproject-stevelu/nginx:v1 docker images REPOSITORY TAG IMAGE ID CREATED SIZE 192.168.109.136/myproject-stevelu/nginx v1 605c77e624dd 6 months ago 141MB
5.8 上传镜像进行测试
docker pull centos docker tag centos:latest 192.168.109.136/myproject-stevelu/centos:v1 docker push 192.168.109.136/myproject-stevelu/centos:v1