Centos7 创建本地 docker 仓库极其遇到的问题

时间:2021-03-04 15:13:07

环境安装:

  • VirtualBox 安装 Centos7
  • 安装 docker

1. 配置私有仓库和客户端地址

私有仓库:192.168.1.104

客户端:192.168.1.103

通过 Centos 指令: yum install docker 在两台计算机中安装 docker ,可通过docker --version查看相应版本,如:

[root@localhost docker]# docker --version
Docker version 1.12.6, build 88a4867/1.12.6

注意:

  • 虚拟机的网络设置一定要选 桥接网卡
  • WindowIP 为:192.168.1.101,保证192.168.1.101、192.168.1.103、192.168.1.104三者均能互相 ping

2. 创建私有仓库(在192.168.1.104虚拟机下)

  • 启动docker服务:service docker start

  • 下载创建私有仓库的registry镜像:docker pull registry

  • 下载上传到私有仓库的镜像,这里选用ubuntudocker pull ubuntu

  • 查看拥有的image:

    [root@localhost docker]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/registry latest 3ebefe7c539b 3 days ago 33.19 MB docker.io/ubuntu 14.04 d5b7370807f9 4 days ago 188 MB

  • 创建私有仓库:

    docker run -p 5000:5000 docker.io/registry

  • 标记 tagd5b7image

    docker tag d5b7 192.168.1.104:5000/shy

    其中 192.168.1.104 为虚拟机 IP5000 为开启的端口号、 shy 为自己指定的名称。

  • 再次使用docker images查看 image ,发现多了一项:

    192.168.1.104:5000/shy latest d5b7370807f9 4 days ago 188 MB

  • 推送 192.168.1.104:5000/shy 至本地仓库,此时推送不成功:

    [root@localhost sysconfig]# docker push 192.168.1.104:5000/shy The push refers to a repository [192.168.1.104:5000/shy] Get https://192.168.1.104:5000/v1/_ping: http: server gave HTTP response to HTTPS client

    网上很多解决方式为:

    [root@localhost ~]# vim /etc/sysconfig/docker

    修改

    OPTIONS='--insecure-registry 192.168.1.104:5000'

    重启 docker

    [root@localhost ~]# service docker restart

    尝试之后并没有效果。

正确的解决方式:

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

加入:

{"insecure-registries":["192.168.1.104:5000"]}

这句指令表示信任此私有仓库。

重启 docker

  • 重新推送 192.168.1.104:5000/shy 至本地仓库:

    [root@localhost docker]# docker push 192.168.1.104:5000/shy The push refers to a repository [192.168.1.104:5000/shy] 66de4e1063cf: Pushed e9c9caa1b034: Pushed d787e686c79f: Pushed bbad1fb7434a: Pushed 826fc2344fbb: Pushed latest: digest: sha256:2c2577062577c5d58af7cc6ac168b6dbaa6f4b5d32da07728435a06a61ad7c66 size: 1359

  • 查看是否推送成功:

    [root@localhost docker]# curl http://192.168.1.104:5000/v2/shy/tags/list {"name":"shy","tags":["latest"]}

    输出这个表示推送成功,可以在 192.168.1.103 上下载。

2. 客户端下载私有仓库的 image (在 192.168.1.103 虚拟机下)

  • 启动 docker

  • 使用命令 pull 下载:

    [root@localhost shihuayun]# docker pull 192.168.1.104:5000/shy Using default tag: latest Trying to pull repository 192.168.1.104:5000/shy ... Get https://192.168.1.104:5000/v1/_ping: http: server gave HTTP response to HTTPS client

    此时下载出错,同样的原因,在 192.168.1.103 虚拟机下:

    [root@localhost shihuayun]# vim /etc/docker/daemon.json

    加入:

    {"insecure-registries":["192.168.1.104:5000"]}

    重启 docker

  • 重新下载:

    [root@localhost docker]# docker pull 192.168.1.104:5000/shy Using default tag: latest Trying to pull repository 192.168.1.104:5000/shy ... latest: Pulling from 192.168.1.104:5000/shy 48f0413f904d: Pull complete 87474b8d0f4c: Pull complete 2b6baf792196: Pull complete 4dccbbb76bce: Pull complete fba30d3e45c8: Pull complete Digest: sha256:2c2577062577c5d58af7cc6ac168b6dbaa6f4b5d32da07728435a06a61ad7c66

    此时成功下载。

  • 查看本地 images

    [root@localhost docker]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE 192.168.1.104:5000/shy latest d5b7370807f9 4 days ago 188 MB

[1]: http://docs.docker.com/

[2]: 杨保华、戴王剑、曹亚伦编著, Docker 技术入门与实战

[3]: http://blog.csdn.net/qq_29145989/article/details/53738280http://blog.csdn.net/qq_29145989/article/details/53738280

[4]: http://blog.csdn.net/wangtaoking1/article/details/44180901/http://blog.csdn.net/wangtaoking1/article/details/44180901/