您的位置:首页 > 运维架构 > Docker

搭建私有docker镜像仓库

2017-01-23 11:33 886 查看
搭建私有docker镜像仓库

1、搜索并下载registry镜像

      docker search registry

      docker pull docker.io/registry

2、修改docker的配置文件,让它能够从私有仓库中下载镜像

      vi /etc/sysconfig/docker

      应该修改 INSECURE_REGISTRY='--insecure-registry 192.168.56.105:5000'

      不过我的系统安装过k8s,这个文件第一行已经有这个参数了,可以在第一行修改

     OPTIONS='--selinux-enabled=false --log-driver=journald --insecure-registry 192.168.56.105:5000'

3、重启docker服务

      systemctl daemon-reload

      systemctl restart docker

4、docker run -d -p 5000:5000 registry   

      docker run -d -p 5000:5000 -v /var/registry:/var/lib/registry registry  --实际使用的话,还要仍它把镜像存储在主机文件系统里,否则docker重启后,镜像就丢失了。

5、curl http://192.168.56.105:5000/v2/_catalog  查询到0个镜像

6、docker tag docker.io/registry  192.168.56.105:5000/myregistry  --一定要有ip地址这个前缀,docker才会使用这个私有仓库

7、docker push 192.168.56.105:5000/myregistry

8、curl http://192.168.56.105:5000/v2/_catalog
        查询到的结果    {"repositories":["myregistry"]}

curl --noproxy '*' http://192.168.56.240:5000/v2/myregistry/tags/list
   {"name":"myregistry","tags":["latest"]}

9、我做实验时,push总是卡住,没有任何错误提示

      最后发现是因为我给docker设置了http代理,删掉代理,就ok了。

     /etc/systemd/system/docker.service.d/http-proxy.conf

    也可以排除这个网段

     [root@localhost docker.service.d]# cat http-proxy.conf

     [Service]

      Environment="HTTP_PROXY=http://username:password@proxy.xxx.com.cn:80"

      Environment="NO_PROXY=localhost,127.0.0.0/8,192.168.56.105"

另外,curl测试时,发现curl不识别no_proxy中的网段。当不需要代理时,可以这样 curl --noproxy '*'  http://xxxx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: