dockercentosalready

CentOS快速部署docker-registry脚本

2022-10-12  本文已影响0人  简单点的笨演员
  1. 安装 docker-ce,请参考 《CentOS快速安装docker

  2. 不需要支持SSL的docker-registry命令,例如本机或者内网

# 创建docker镜像存放目录
sudo mkdir /var/lib/docker/registry
# 运行不支持 SSL 的docker-registry
docker run -d -p 5000:5000 \
--name docker-registry \
--restart=always \
-v /var/lib/docker/registry:/var/lib/registry \
registry:2
  1. 支持SSL的docker-registry自动安装脚本,注意请求SSL需要80端口,如果有请暂时关闭使用80端口的web服务器。
# 配置域名
export DOMAIN="registry.domain.com"
export EMAIL="email@domain.com"
# 安装certbot工具来自动注册 Let’s Encrypt 证书.
sudo yum -y install epel-release
sudo yum -y install certbot
# 请求 SSL 证书:
certbot certonly --standalone -d $DOMAIN --preferred-challenges http --agree-tos -n -m $EMAIL --keep-until-expiring
mkdir /certs
sudo cp /etc/letsencrypt/live/$DOMAIN/fullchain.pem /certs/fullchain.pem
sudo cp /etc/letsencrypt/live/$DOMAIN/privkey.pem /certs/privkey.pem
sudo cp /etc/letsencrypt/live/$DOMAIN/cert.pem /certs/cert.pem
# 创建docker镜像存放目录
sudo mkdir /var/lib/docker/registry
# 运行支持 SSL 的docker-registry
docker run -d --name docker-registry --restart=always \
-p 5000:5000 \
-e REGISTRY_HTTP_ADDR=0.0.0.0:5000 \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/fullchain.pem  \
-e REGISTRY_HTTP_TLS_KEY=/certs/privkey.pem \
-v /certs:/certs \
-v /var/lib/docker/registry:/var/lib/registry \
registry:2
  1. 测试
# tag一个镜像,相当于新建一个镜像
docker tag busybox registry.domain.com:5000/busybox
# 使用docker push推送镜像到本地仓库
docker push registry.domain.com:5000/busybox
# 拉取镜像
docker pull registry.domain.com:5000/busybox

在客户端查看镜像仓库中的所有镜像

$ curl https://registry.domain.com:5000/v2/_catalog
{"repositories":["busybox"]}

小贴士:尽管docker-registry安装方便,我们也可以用Harbor作为一个企业级私有Registry服务器,Harbor除了存储和分发镜像外还具有用户管理,项目管理,配置管理和日志查询等主要功能。详细参见

参考

Deploy a registry server | Docker Documentation
Run Docker Registry on CentOS 7 With Let's Encrypt SSL | ComputingForGeeks

上一篇下一篇

猜你喜欢

热点阅读