安装环境: centos 3.10.0-229.el7.x86_64
安装docker包
yum install docker
启动docker服务
service docker start
运行官方镜像hello world文件,检验是否安装成功
docker run hello-world
拉取私服注册包
sudo docker pull registry
[root@njyf-test-zxl-10-20-2-127 ~]# sudo docker pull registry
Using default tag: latest
Trying to pull repository docker.io/library/registry ...
latest: Pulling from docker.io/library/registry
90f4dba627d6: Pull complete
3a754cdc94a5: Pull complete
bf16d9b6d4c1: Pull complete
7eea83c9b7bb: Pull complete
23293c727551: Pull complete
Digest: sha256:f5552e60ffd56fecbe2f04b61a3089a9cd755bd9352b6b5ab22cf2208af6a3a8
启动registry
sudo docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/register registry
[root@njyf-test-zxl-10-20-2-127 ~]# sudo docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/register registry
3f8779bbb32f1a5fd5c6f8f2033f9e64e3a8453c2dc81e0db160a5283feeb339
查看
root@njyf-test-zxl-10-20-2-127 ~]# sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3f8779bbb32f registry "/entrypoint.sh /etc/" 17 seconds ago Up 16 seconds 0.0.0.0:5000->5000/tcp grave_joliot
已经启动成功
在我本地mac机器上拉去一个echoserver,为推送到本地仓库做准备。Mac上之前已经装了docker,如果你想学习如何安装docker,参考这里吧https://docs.docker.com/get-started/#prerequisites
开始我是从默认的docker hub上下载,非常的慢,慢到无法忍受
bjjbgi-3-86:~ zhangxiaolong$ docker pull googlecontainer/echoserver:1.4
Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout
bjjbgi-3-86:~ zhangxiaolong$ docker pull googlecontainer/echoserver:1.4
1.4: Pulling from googlecontainer/echoserver
31baf3c5ae52: Pull complete
a3ed95caeb02: Pull complete
551b3b58cb23: Pull complete
a38d08741281: Waiting
c587ef22eeed: Download complete
3d17cbe426dd: Download complete
8cec8097f762: Download complete
326de4e8cdb3: Download complete
^C
找了个国内代理
registry.docker-cn.com/googlecontainer/echoserver:1.4
bjjbgi-3-86:~ zhangxiaolong$ docker pull registry.docker-cn.com/googlecontainer/echoserver:1.4
1.4: Pulling from googlecontainer/echoserver
31baf3c5ae52: Pull complete
a3ed95caeb02: Pull complete
551b3b58cb23: Pull complete
a38d08741281: Pull complete
c587ef22eeed: Pull complete
3d17cbe426dd: Pull complete
8cec8097f762: Pull complete
326de4e8cdb3: Pull complete
Digest: sha256:3343977cf1635ed7205658115336253b923a18107bddc9ad47dee0e49e85e865
Status: Downloaded newer image for registry.docker-cn.com/googlecontainer/echoserver:1.4
爽爽的下载下来了。
本地将其tag一个新名字
bjjbgi-3-86:~ zhangxiaolong$ sudo docker tag a90209bb39e3 10.20.2.127:5000/echoserver
jjbgi-3-86:~ zhangxiaolong$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 48b5124b2768 6 months ago 1.84 kB
10.20.2.127:5000/echoserver latest a90209bb39e3 14 months ago 140 MB
registry.docker-cn.com/googlecontainer/echoserver 1.4 a90209bb39e3 14 months ago 140 MB
准备push到私服上去
bjjbgi-3-86:~ zhangxiaolong$ sudo docker push 10.20.2.127:5000/echoserver
报了一个错
bjjbgi-3-86:~ zhangxiaolong$ sudo docker push 10.20.2.127:5000/echoserver
The push refers to a repository [10.20.2.127:5000/echoserver]
Get https://10.20.2.127:5000/v1/_ping: http: server gave HTTP response to HTTPS client
大概就是我仓库那台机器没有配置https的原因。
解决方案:增加insecure-registries参数配置
Linux的修改方法是
在”/etc/docker/“目录下,创建”daemon.json“文件。在文件中写入:
{ “insecure-registries”:[“192.168.1.100:5000”] }
保存退出后,重启docker。问题解决:
http://blog.csdn.net/qq_29145989/article/details/53738280
或者
通过修改docker的配置文件“etc/systemconfig/docker”,重启docker来解决这个问题,发现docker1.12.3版本没有此文件
http://www.cnblogs.com/hobinly/p/6110624.html
mac的解决方案是
然后再push
bjjbgi-3-86:/ zhangxiaolong$ sudo docker push 10.20.2.127:5000/echoserver:1.4
Password:
The push refers to a repository [10.20.2.127:5000/echoserver]
tag does not exist: 10.20.2.127:5000/echoserver:1.4
bjjbgi-3-86:/ zhangxiaolong$ sudo docker push 10.20.2.127:5000/echoserver
The push refers to a repository [10.20.2.127:5000/echoserver]
67639a8a7916: Pushed
1787713d6d5d: Pushed
5f70bf18a086: Pushed
e2615e4925e2: Pushed
4cc84b7b3aba: Pushed
9f9b8efa9a34: Pushed
e105cd217163: Pushed
6cc9890d69b6: Pushed
latest: digest: sha256:3343977cf1635ed7205658115336253b923a18107bddc9ad47dee0e49e85e865 size: 2602
成功。