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
注意:
- 虚拟机的网络设置一定要选 桥接网卡
- Window 的 IP 为: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
-
下载上传到私有仓库的镜像,这里选用ubuntu:
docker 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
-
标记 tag 为 d5b7 的 image :
docker tag d5b7 192.168.1.104:5000/shy
其中 192.168.1.104 为虚拟机 IP 、 5000 为开启的端口号、 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/