一、docker hub公共仓库

1.公共仓库地址

https://hub.docker.com,进入后点击sign up注册docker账号

2.登录docker hub

# docker login https://hub.docker.com

3.搜索镜像

# docker search centos

4.使用阿里云镜像加速

参考文档:官方镜像加速

二、registry私有仓库

1. 部署register私有仓库

  • 服务器规划

ip

角色

192.168.217.128

本地仓库

192.168.217.130

docker客户端

  • 使用registry镜像创建私有仓库
[root@docker ~]# docker run -d -p 5000:5000 registry:2
  • 该命令自动下载官方提供的registry镜像来搭建本地私有仓库,默认情况下创建在容器的/var/lib/registry目录下,可以通过-v来指定路径
[root@docker ~]# docker run -d -p 5000:5000 -v /registry:/var/lib/registry registry:2
  • 查看仓库运行情况

docker 使用国内工公共仓库 docker仓库管理_容器

  • {“repositories”: []} 表示现在仓库中,没有镜像images

2. 使用register私有仓库

  • 查看客户端已有的images

docker 使用国内工公共仓库 docker仓库管理_容器_02

  • 将该镜像修改tag

docker 使用国内工公共仓库 docker仓库管理_docker hub_03

  • 上传标记镜像

docker 使用国内工公共仓库 docker仓库管理_docker_04

  • 成功会出现上述提示,表示本地的仓库默认使用的是https进行上传,那行是latest是重新上传出现的。
  • 如果你在push镜像的时候出现问题,可能是因为我们启动的registry服务不是安全可信赖的
  • 修改配置文件
vim /etc/docker/daemon.json,

添加下面的内容: "insecure-registries":["192.168.217.128:5000"], 再重启docker 服务

  • 仓库端查看镜像

docker 使用国内工公共仓库 docker仓库管理_docker 使用国内工公共仓库_05

  • 删除客户端镜像,从本地仓库下载镜像

docker 使用国内工公共仓库 docker仓库管理_docker_06

3. 管理register私有仓库

  • 删除镜像仓库镜像

打开镜像的存储目录,如有-V操作打开挂载目录也可以,删除镜像文件夹

docker exec <容器名> rm -rf /var/lib/registry/docker/registry/v2/repositories/<镜像名>
  • 执行垃圾回收操作,注意2.4版本以上的registry才有此功能
docker exec registry bin/registry garbage-collect /etc/docker/registry/config.yml

三、Harbor私有镜像仓库

1.Harbor私有镜像仓库

Harbor:是一个用于存储Docker镜像的企业级Registry服务

Registry是Dcoker官方的一个私有仓库镜像,可以将本地的镜像打标签进行标记然后push到Registry私有仓库中。企业可以根据自己的需求,使用Dokcerfile生成自己的镜像,并推到私有仓库中,这样可以大大提高拉取镜像的效率。

1.1安装docker

1.2安装docker-compose

1.3下载harbor离线安装包

参考链接

[root@harbor ~] wget https://github.com/vmware/harbor/releases/download/v1.8.6/harbor-offline-installer-v1.8.6.tgz
[root@harbor ~]# tar -xvf harbor-offline-installer-v1.8.6.tgz

(1)修改harbor.yml配置文件 

docker 使用国内工公共仓库 docker仓库管理_docker_07

  • 注释https相关配置

docker 使用国内工公共仓库 docker仓库管理_docker_08

(2)运行install.sh脚本 

[root@harbor harbor]# ./install.sh

docker 使用国内工公共仓库 docker仓库管理_运维_09

(3)访问Harbor并登录 

docker 使用国内工公共仓库 docker仓库管理_docker hub_10

  • 初始用户名admin
  • 初始密码Harbor12345

(4)创建systemd服务管理脚本 

[Unit]
Description=Harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
Documentation=http://github.com/vmware/harbor
 
[Service]
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/local/bin/docker-compose -f /opt/harbor/docker-compose.yml up
ExecReload=/usr/local/bin/docker-compose -f /opt/harbor/docker-compose.yml restart
ExecStop=/usr/local/bin/docker-compose -f /opt/harbor/docker-compose.yml down
 
[Install]
WantedBy=multi-user.target

四、docker授权访问harbor仓库

1.docker配置文件私有仓库设置

[root@master ~]# vim /etc/docker/daemon.json

docker 使用国内工公共仓库 docker仓库管理_docker 使用国内工公共仓库_11

2.重启docker

systemctl daemon-reload
systemctl restart docker

3.master节点登录测试 

docker 使用国内工公共仓库 docker仓库管理_docker_12

4.推送镜像测试 

docker 使用国内工公共仓库 docker仓库管理_docker hub_13

[root@master ~]# docker tag hello-world 192.168.10.103/library/hello-world:v1
[root@master ~]# docker push 192.168.10.103/library/hello