RHEL7.3系统上docker私有仓库搭建和使用

  • 搭建私有仓库
  1. 下载registry镜像
    docker pull registry
  2. 如果有防火墙的话需要添加5000端口
    iptables -I INPUT 1 -p tcp --dport 5000 -j ACCEPT
  3. 下载完之后我们通过该镜像启动一个容器
    docker run -d -p 5000:5000 --privileged=true -v /opt/registry:/tmp/registry registry

    参数说明: -v /opt/registry:/tmp/registry :默认情况下,会将仓库存放于容器内的/tmp/registry目录下,指定本地目录挂载到容器
    –privileged=true :CentOS7中的安全模块selinux把权限禁掉了,参数给容器加特权,不加上传镜像会报权限错误(OSError: [Errno 13] Permission denied: ‘/tmp/registry/repositories/liibrary’)或者(Received unexpected HTTP status: 500 Internal Server Error)错误
  • 客户端上传镜像
  1. 修改/etc/sysconfig/docker(Ubuntu下配置文件地址为:/etc/init/docker.conf),增加启动选项(已有参数的在后面追加),之后重启docker,不添加报错,https证书问题
    OPTIONS='--insecure-registry 192.168.0.179:5000'    #CentOS 7系统
    other_args='--insecure-registry 192.168.0.179:5000' #CentOS 6系统

    因为Docker从1.3.X之后,与docker registry交互默认使用的是https,而此处搭建的私有仓库只提供http服务
  2. 在docker公共仓库上下载一个镜像
    docker pull centos
  3. 然后咱们修改一下该镜像的tag
    docker tag centos 192.168.1.2:5000/centos
  4. 把打了tag的镜像上传到私有仓库
    docker push 192.168.0.1.2:5000/centos
  • 使用仓库中的镜像
  1. 查询私有仓库中的所有镜像,使用docker search命令:
    1 curl -u myuser https://registry_ip:5000/v1/search
    2 curl registry_ip:5000/v1/search
    3 
    4 docker search registry_ip:5000/     #centos 7
    5 docker search registry_ip:5000/library #centos 6
  2. 查询仓库中指定账户下的镜像,则使用如下命令:
    docker search registry_ip:5000/account/

     

posted @ 2017-08-07 17:36  官哥  阅读(309)  评论(0)    收藏  举报