【笔记】通过Docker部署私有镜像仓库

前言

通过Docker部署私有镜像仓库

登录DockerHub(可选)

  • 如果需要作为DockerHub的镜像仓库,需要先登录DockerHub
1
docker login

通过Docker部署镜像仓库

无需认证

-v /root/Registry/registry:/var/lib/registry:如果作为私有仓库,可以映射仓库存储目录
-e REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io:如果需要作为DockerHub的镜像仓库,需要指定上游Docker镜像仓库地址为DockerHub

1
docker run -d --name docker-registry -p 5000:5000 registry:2

需要认证

创建目录

1
mkdir -p /root/Registry/auth

生成密码

下载依赖
Debian
1
apt install apache2-utils
CentOS
1
yum install httpd
生成密码输出到文件

<username>:用户名
<password>:密码

1
htpasswd -Bbn <username> <password> > /root/Registry/auth/htpasswd

通过Docker部署

-v /root/Registry/registry:/var/lib/registry:如果作为私有仓库,可以映射仓库存储目录
-e REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io:如果需要作为DockerHub的镜像仓库,需要指定上游Docker镜像仓库地址为DockerHub
-e "REGISTRY_AUTH=htpasswd":指定登录校验方式
-v /root/Registry/auth:/auth -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd":映射存放密码的目录,并指定存放密码的文件

1
docker run -d --name docker-registry -p 5000:5000 -v /root/Registry/registry:/var/lib/registry -v /root/Registry/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" registry:2

通过Docker部署第三方GUI(可选)

-e REGISTRY_URL=http://127.0.0.1:5000:配置镜像仓库地址
-e REGISTRY_TITLE=<title>:配置站点标题

1
docker run -d -p 80:80 -e REGISTRY_URL=http://127.0.0.1:5000 -e REGISTRY_TITLE=<title> joxit/docker-registry-ui:static

Docker客户端

查看镜像仓库内的镜像

-u <username>:<password>:如果需要认证,需要提供用户名和密码
<ip>:镜像仓库IP地址

1
curl http://<ip>:5000/v2/_catalog

从私有镜像仓库获取镜像(HTTPS)

传送门

从私有镜像仓库获取镜像(HTTP)

传送门

完成

参考文献

腾讯云开发者社区——民工哥
阿里云开发者社区——咸鱼学Python
知乎——萌褚
哔哩哔哩——科技lion
哔哩哔哩——黑马程序员