本文记录了搭建简易的(无WebUI)私有Docker Registry服务以及推送镜像的相关内容
- 首先需要生成连接用的用户名密码,用htpasswd。
安装直接yum install -y httpd-tools
,然后htpasswd -cB /home/.passwd hahahaha
- 或者上边也可以直接用registry镜像中的htpasswd代替,
使用docker run --entrypoint htpasswd registry -Bbn \[用户名] \[密码] >> /etc/docker/auth/registry.htpasswd
来生成 - 用户名hahahaha,密码Haha123,服务搭在公网88.88.88.88主机上,端口19527
- 构建指令:
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
- 详细教程可以参考:Docker私有Registry搭建教程
- /etc/docker/daemon.json文件中的内容建议改为:
{ "registry-mirrors": ["https://registry.docker-cn.com"], "insecure-registries": ["88.88.88.88:9527"] }
- 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 - 然后用
docker login
登录 - 接着用
docker push 88.88.88.88:9527/hahahaha/admin-test:develop
直接推就行 - 推完以后打开浏览器,输入
http://88.88.88.88:9527/v2/
登录一下,然后再打开http://88.88.88.88:9527/v2/_catalog
就能看到刚推上去的镜像了。(Docker Registry HTTP API V2)