Centos7搭建Docker私有仓库极其遇到的问题

环境安装:

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

你可能感兴趣的:(docker)