wangwengwu 发表于 2017-12-6 21:12:16

docker私有库搭建过程(Registry)

  实验环境:
  CentOS7  1611
  Docker  1.12.6
  registry  2.0
  1、安装并运行registry
  安装:
# docker pull registry
  Using default tag: latest
  Trying to pull repository docker.io/library/registry ...
  latest: Pulling from docker.io/library/registry
  79650cf9cc01: Pull complete
  70ce42745103: Pull complete
  77edd1a7fa4d: Pull complete
  432773976ace: Pull complete
  3234a47fe5a9: Pull complete
  Digest: sha256:a3551c422521617e86927c3ff57e05edf086f1648f4d8524633216ca363d06c2
# docker images
  REPOSITORY         TAG               IMAGE ID            CREATED             SIZE
  docker.io/busybox    latest            c30178c5239f      6 days ago          1.106 MB
  docker.io/registry   latest            9d0c4eabab4d      6 weeks ago         33.17 MB
#
  运行:
# docker run -d -p 5000:5000 -v /mnt/date/registry:/var/lib/registry registry
  75841a99e1fc882617bc37d088a8c80abae225cfe2842110f2049600df560a47
#
  -d后台运行
  -p指定端口
  -v把registry的镜像路径/var/lib/registry映射到本机的/mnt/date/registry
  检查5000端口
  netstat -an | grep 5000
# netstat -an | grep 5000
  tcp6       0      0 :::5000               :::*                  LISTEN   
#
  telnet 127.0.0.1 5000成功。
# telnet 127.0.0.1 5000
  Trying 127.0.0.1...
  Connected to 127.0.0.1.
  Escape character is '^]'.
  q
  HTTP/1.1 400 Bad Request
  Content-Type: text/plain
  Connection: close
  400 Bad RequestConnection closed by foreign host.
#
  2、添加tag标记
# docker tag busybox 10.100.50.120:5000/busybox
# docker images
  REPOSITORY                   TAG               IMAGE ID            CREATED             SIZE
  10.100.50.122:5000/busybox   latest            c30178c5239f      6 days ago          1.106 MB
  docker.io/busybox            latest            c30178c5239f      6 days ago          1.106 MB
  docker.io/registry         latest            9d0c4eabab4d      6 weeks ago         33.17 MB
#
  3、上传镜像报错
# docker push 10.100.50.120:5000/busybox
  The push refers to a repository
  Get https://10.100.50.120:5000/v1/_ping: http: server gave HTTP response to HTTPS client
#
  解决方案:
  修改/etc/sysconfig/docker文件,并重新启动docker服务。
  ADD_REGISTRY='--add-registry 10.100.50.120:5000'
  INSECURE_REGISTRY='--insecure-registry 10.100.50.120:5000'

  4、上传镜像
# docker push 10.100.50.120:5000/busybox
  The push refers to a repository
  3a1dff9afffd: Pushed
  latest: digest:   sha256:be3c11fdba7cfe299214e46edc642e09514dbb9bbefcd0d3836c05a1e0cd0642 size: 527
#
  其他坑:
  坑1:
  IPV4 forwording报错,但是容器运行正常。
# docker run -d -p 5000:5000 -v /mnt/date/registry registry
  WARNING: IPv4 forwarding is disabled. Networking will not work.
  970e18480c47661fd2cffab9f7e0410989e62ed9d229333cb32e5727a2e88b3b
#
  解决方案:
  在/etc/sysctl.conf文件中加入net.ipv4.ip_forward=1并重启网络服务。

  修改后正常:
# docker run -d -p 5000:5000 -v /mnt/date/registry registry
  abbec57e5dca734689cfd953f27564156ec24e32ae6e532043309f0332653650
# docker ps
  CONTAINER ID      IMAGE               COMMAND                  CREATED             STATUS            PORTS                  NAMES
  abbec57e5dca      registry            "/entrypoint.sh /etc/"   31 seconds ago      Up 30 seconds       0.0.0.0:5000->5000/tcp   compassionate_mclean
#
  坑2:
  查看镜像存放位置显示404 page not found网上很多教程都是下面这个命令
# curl http://10.100.50.122:5000/v2/search
  404 page not found
  通过docker search registry发现安装的是2.0版本。

  V2的命令格式如下:
  http://10.100.50.122:5000/v2/_catalog# curl -X GET
  {"repositories":["busybox","centos"]}
#
  http://www.jianshu.com/p/fc36368b5c44文档:
页: [1]
查看完整版本: docker私有库搭建过程(Registry)