搭建私有Docker Registry以及推送镜像

本文记录了搭建简易的(无WebUI)私有Docker Registry服务以及推送镜像的相关内容


  1. 首先需要生成连接用的用户名密码,用htpasswd。
    安装直接yum install -y httpd-tools,然后htpasswd -cB /home/.passwd hahahaha
  2. 或者上边也可以直接用registry镜像中的htpasswd代替,
    使用docker run --entrypoint htpasswd registry -Bbn \[用户名] \[密码] >> /etc/docker/auth/registry.htpasswd来生成
  3. 用户名hahahaha,密码Haha123,服务搭在公网88.88.88.88主机上,端口19527
  4. 构建指令:
    docker run -d -p 9527:5000 --name registry --restart=always \\
    -v /etc/docker/registry:/var/lib/registry \\
    -v /etc/docker/auth:/auth \\
    -e REGISTRY_AUTH=htpasswd \\
    -e REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm" \\
    -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/passwd \\
    registry
    
  5. 详细教程可以参考:Docker私有Registry搭建教程
  6. /etc/docker/daemon.json文件中的内容建议改为:
    {
     "registry-mirrors": ["https://registry.docker-cn.com"],
     "insecure-registries": ["88.88.88.88:9527"]
    }
    
  7. PUSH镜像前,需新增镜像Tag,用docker tag命令将其转成URL[:PORT]/REPO:TAG这种格式,比如用:docker tag hahahaha/admin-test:develop 88.88.88.88:9527/hahahaha/admin-test:develop命令代表准备将 hahahaha/admin-test 镜像推到 88.88.88.88:9527
  8. 然后用docker login登录
  9. 接着用docker push 88.88.88.88:9527/hahahaha/admin-test:develop直接推就行
  10. 推完以后打开浏览器,输入http://88.88.88.88:9527/v2/登录一下,然后再打开http://88.88.88.88:9527/v2/_catalog就能看到刚推上去的镜像了。(Docker Registry HTTP API V2)