前言

记录docker快速部署docker私有仓库命令

 登录过私仓服务器忘记密码可以查看这篇:

Docker已登录私仓服务器反解析获取账户密码

docker部署私有仓库

1. 创建认证密码文件

安装htpasswd工具

# CentOS/RHEL centos执行这个
yum install -y httpd-tools

# Ubuntu/Debian
apt-get install -y apache2-utils

2. 创建认证目录


mkdir -p /zero/registry/auth
sudo chmod 755 /zero/registry

3.创建密码文件(标红的是账户和密码)

# 创建第一个用户(admin)
htpasswd -Bbn admin admin > /zero/registry/auth/htpasswd
# 添加更多用户
htpasswd -Bb /zero/registry/auth/htpasswd zero zero

4.启动私有仓库容器

注:registry:3.0.0 存在时区问题这里直接用2.8解决

docker run -d \
  -p 5000:5000 \
  --restart=always \
  --name registry \
  -v /zero/registry:/var/lib/registry \
  -v /zero/registry/auth:/auth \
  -v /etc/localtime:/etc/localtime:ro \
  -v /usr/share/zoneinfo:/usr/share/zoneinfo:ro \
  -e REGISTRY_AUTH=htpasswd \
  -e REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm" \
  -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
  -e REGISTRY_STORAGE_DELETE_ENABLED=true \
  registry:2.8 

REGISTRY_STORAGE_DELETE_ENABLED=true 标识支持删除镜像

5.为了让Docker客户端能够与您的私有仓库(使用HTTP)通信,需要在/etc/docker/daemon.json中设置信任该仓库

cat /etc/docker/daemon.json

{
  "insecure-registries": ["您的服务器IP:5000"]
}
 

6.重启Docker服务

systemctl daemon-reload
systemctl restart docker

7.登录到私有仓库(根据提示输入用户名和密码)

docker login 您的服务器IP:5000

8.推送镜像测试

# 为现有镜像打上私有仓库标签
docker tag 本地镜像名:标签 您的服务器IP:5000/新镜像名:标签
# 推送到私有仓库
docker push 您的服务器IP:5000/新镜像名:标签

例:本地镜像名为openjdk:17

docker tag openjdk:17 172.16.10.40:5000/openjdk:17
docker push 172.16.10.40:5000/openjdk:17

9.查看仓库镜像

http://服务器ip:5000/v2/_catalog

docker私有仓库pull镜像

1.为了让Docker客户端能够与您的私有仓库(使用HTTP)通信,需要在/etc/docker/daemon.json中设置信任该仓库

cat /etc/docker/daemon.json

{
  "insecure-registries": ["您的服务器IP:5000"]
}
 

2.重启Docker服务

systemctl daemon-reload
systemctl restart docker

3.登录到私有仓库(根据提示输入用户名和密码)

docker login 您的服务器IP:5000

4.拉取镜像

docker pull 172.16.10.40:5000/openjdk:17

5.验证结果

docker images | grep 172.16.10.40

更多推荐