docker-registry搭建过程中遇到的问题 - Go语言中文社区

docker-registry搭建过程中遇到的问题


使用registry启动私有仓库的容器

docker run -d -p 5000:5000 -v /root/my_registry:/tmp/registry registry
说明:若之前没有安装registry容器则会自动下载并启动一个registry容器,创建本地的私有仓库服务。默认情况下,会将仓库创建在容器的/tmp/registry目录下,可以通过 -v 参数来将镜像文件存放在本地的指定路径上(例如,放在本地目录/root/my_registry下)。


宿主主机my_registry的目录结构

  1. root@gerryyang:~/my_registry# tree  
  2. .  
  3. ├── images  
  4. │   ├── 3b363fd9d7dab4db9591058a3f43e806f6fa6f7e2744b63b2df4b84eadb0685a  
  5. │   │   ├── ancestry  
  6. │   │   ├── _checksum  
  7. │   │   ├── json  
  8. │   │   └── layer  
  9. │   ├── 511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158  
  10. │   │   ├── ancestry  
  11. │   │   ├── _checksum  
  12. │   │   ├── json  
  13. │   │   └── layer  
  14. │   ├── 607c5d1cca71dd3b6c04327c3903363079b72ab3e5e4289d74fb00a9ac7ec2aa  
  15. │   │   ├── ancestry  
  16. │   │   ├── _checksum  
  17. │   │   ├── json  
  18. │   │   └── layer  
  19. │   ├── 894c0161121f105ac9b81bca7ac583ac1f29772625911db0fa2b6b475f5642fd  
  20. │   │   ├── ancestry  
  21. │   │   ├── _checksum  
  22. │   │   ├── json  
  23. │   │   └── layer  
  24. │   ├── 8eaa4ff06b53ff7730c4d7a7e21b4426a4b46dee064ca2d5d90d757dc7ea040a  
  25. │   │   ├── ancestry  
  26. │   │   ├── _checksum  
  27. │   │   ├── json  
  28. │   │   └── layer  
  29. │   ├── a45787b0222f955d68d9db34fb18033144b8a78015d9e306a1613894da0fd86e  
  30. │   │   ├── ancestry  
  31. │   │   ├── _checksum  
  32. │   │   ├── json  
  33. │   │   └── layer  
  34. │   ├── f0e3262ed6617896b306852c923e4c0e1d359b58b29a02ef849c4b8978c73c65  
  35. │   │   ├── ancestry  
  36. │   │   ├── _checksum  
  37. │   │   ├── json  
  38. │   │   └── layer  
  39. │   └── f62feddc05dc67da9b725361f97d7ae72a32e355ce1585f9a60d090289120f73  
  40. │       ├── ancestry  
  41. │       ├── _checksum  
  42. │       ├── json  
  43. │       └── layer  
  44. └── repositories  
  45.     └── library  
  46.         └── ubuntu_sshd_gcc_gerry  
  47.             ├── _index_images  
  48.             ├── tag_14.04  
  49.             └── tag14.04_json  
  50.   
  51. 12 directories, 35 files  



利用官方提供的registry镜像,将端口映射到主机的5000端口上,然后docker pull 镜像,报错如下:



根据报错提示解决方法:

1.自己添加证书走https

   在registry前面套一层nginx代理,在nginx里自己签一组证书,把ca.crt拷贝到/etc/docker/certs.d/公网IP:5000/ca.crt就可以了,这样做的好处就是,以后有了第二套registry,你也只是把新的registry证书加入到对应的目录即可。


2.加--insecure-registry参数

    在boot2docker中步骤如下:

       .使用 boot2docker ssh 登陆到 boot2docker 虚拟机

       .修改 /var/lib/boot2docker/profile 文件,向该文件中增加一行:EXTRA_ARGS="--insecure-registry 192.168.59.104:5000"

    .退出该虚拟机并使用命令 boot2docker restart 重启 boot2docker

          完成重启之后,将私有仓库服务器运行起来,再进行docker push操作即可。

  

说明一点,如果是内网的话需要从外网私服下载镜像,可以设置代理,方法如下:

vi /var/lib/boot2docker/profile

在新建的profile文件中填入公司代理:

export HTTP_PROXY=http://proxy.host:port 
export HTTPS_PROXY=https://proxy.host:port

保存后重启docker服务:

sudo /etc/init.d/docker restart

或者

 sudo HTTP_PROXY=http://proxy.host:port/ docker -d 

 sudo HTTP_PROXY=http://用户名@密码:10.8.2.1:80/ docker -d

 

centos下: 

编辑/etc/sysconfig/docker

  查找 # INSECURE_REGISTRY='--insecure-registry',增加下面一行:
   INSECURE_REGISTRY='--insecure-registry=公网ip:5000'

     然后重启Dcoker服务即可 。


ubuntu下: 

编辑/etc/default/docker

增加

DOCKER_OPTS="--insecure-registry 0.0.0.0/0"  -------------------代表本机上的私服

    然后重启Dcoker服务即可 。





在registry2版本发布后,出现的问题:

The push refers to a repository [10.8.24.54:5000/ncl_pmo/hello] (len: 1)
unable to ping registry endpoint https://10.8.24.54:5000/v0/
v2 ping attempt failed with error: Get https://10.8.24.54:5000/v2/: EOF
 v1 ping attempt failed with error: Get https://10.8.24.54:5000/v1/_ping: EOF

解决步骤:

1.编辑/etc/sysconfig/docker

    other_args="--insecure-registry 0.0.0.0/0"

2.重启服务,重新测试,错误依旧

3.通过#ps -aux|grep docker查看

   [root@DockerDemo ~]# ps -aux|grep docker
root       3405  0.5  2.3 618760 23344 ?        Ssl  01:23   0:00 /usr/bin/docker daemon -H fd://
root       3593  0.0  0.0 112656   968 pts/0    R+   01:26   0:00 grep --color=auto docker

根据输出可以看出我们更改配置文件并没有生效

4.通过查阅资料发现解决办法如下图:

    



版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weiguang1017/article/details/46544539
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-10-27 18:38:34
  • 阅读 ( 1292 )
  • 分类:docker

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢