前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker Registry

Docker Registry

作者头像
天地一小儒
发布2022-12-28 14:44:11
5950
发布2022-12-28 14:44:11
举报
文章被收录于专栏:信且诚心之动

Docker 私有库

为什么需要:

  • 严格控制图像的存储位置
  • 完全拥有您的图像分发管道
  • 将图像存储和分发紧密集成到您的内部开发工作流程中

基本命令

代码语言:javascript
复制
# 1. 启动
docker run -d -p 5000:5000 --restart=always --name registry registry:2
# 关闭并删除容器
# docker stop registry
# docker rm registry

# 2. 查看registry当前仓库的镜像
curl http://10.10.1.45:5000/v2/_catalog

# 3. 添加tag
docker tag nginx:1.19.4 localhost:5000/my-nginx

# 4. 推送到本地仓库
docker push localhost:5000/my-nginx

# 5. 删除本地缓存
docker image remove nginx:1.19.4
docker image remove localhost:5000/my-nginx

# 6. 本地仓库拉取
docker pull localhost:5000/my-nginx

运行一个外部可访问的仓库

这些示例假设如下:

  • 您的注册表 URL 是https://registry.vechainteam.com/.
  • 您的 DNS、路由和防火墙设置允许在端口 443 上访问注册表的主机。
  • 您已经从证书颁发机构 (CA) 获得了证书。

服务端启动

安装OpenSSL 1.1.1+, upgrade guide

代码语言:javascript
复制
# /usr/local/lib
wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz
tar -zxvf openssl-1.1.1k.tar.gz
cd openssl-1.1.1k
./config
make
make clean
make test
make install
# 备注:如果出现问题:error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
# 安装库:sudo yum install openssl11-libs
# OpenSSL 1.1.1k  25 Mar 2021 (Library: OpenSSL 1.1.1g FIPS  21 Apr 2020)
openssl version

生成自签名的ca证书,在minikube目录下, guide

代码语言:javascript
复制
mkdir -p certs

# 生成证书 - DNS:IP
openssl req \
  -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key \
  -subj '/C=CN/ST=BeiJing/L=ChaoYang/O=V/OU=Blockchain/CN=DockerRegistry' \
  -addext "subjectAltName=DNS:10.10.1.66" \
  -x509 -days 365 -out certs/domain.crt

# 生成证书 - DNS:域名
openssl req \
  -newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key \
  -subj '/C=CN/ST=BeiJing/L=ChaoYang/O=V/OU=Blockchain/CN=DockerRegistry' \
  -addext "subjectAltName=DNS:myregistry.vechain.com" \
  -x509 -days 365 -out certs/domain.crt



# 查看证书
openssl x509 -in certs/domain.crt -text -noout

启动仓库

代码语言:javascript
复制
docker stop registry
docker rm registry
docker run -d \
  --restart=always \
  --name registry \
  -v "$(pwd)"/certs:/certs \
  -e REGISTRY_HTTP_ADDR=0.0.0.0:5000 \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
  -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
  -p 5000:5000 \
  registry:2

指示每个 Docker 守护进程信任该证书

代码语言:javascript
复制
# 在操作系统级别信任证书,注意,证书名字必须是myregistryvechain.com.crt
\cp certs/domain.crt /etc/pki/ca-trust/source/anchors/myregistryvechain.com.crt
update-ca-trust
systemctl restart docker

客户端推送及拉取

代码语言:javascript
复制
# 1. 推送镜像到仓库
# 本地推送 - 域名
docker tag localhost:5000/my-nginx myregistry.vechain.com:5000/my-nginx
docker push myregistry.vechain.com:5000/my-nginx
# 其他主机推送 - 域名(注意:需要配置系统级信任证书)
docker tag bdms-scheduler:1.0.0 myregistry.vechain.com:5000/bdms-scheduler
docker push myregistry.vechain.com:5000/bdms-scheduler

# 2. 查看registry当前仓库的镜像
curl https://myregistry.vechain.com:5000/v2/_catalog
curl https://myregistry.vechain.com:5000/v2/my-nginx/tags/list

# 3. 从仓库拉取镜像
docker pull myregistry.vechain.com:5000/my-nginx
docker pull myregistry.vechain.com:5000/bdms-scheduler

其他

证书格式转换

代码语言:javascript
复制
# crt 转 pem
openssl x509 -outform PEM -in $CERT_ADDRESS/ca.crt -out /home/rabbit/.docker/ca.pem
openssl x509 -outform PEM -in $CERT_ADDRESS/server.crt -out /home/rabbit/.docker/cert.pem

# ecdsa pricate key 转 pem
openssl ec -in $CERT_ADDRESS/server.key -out /home/rabbit/.docker/key.pem
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-06-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Docker 私有库
  • 基本命令
  • 运行一个外部可访问的仓库
  • 服务端启动
    • 安装OpenSSL 1.1.1+, upgrade guide
      • 生成自签名的ca证书,在minikube目录下, guide
        • 启动仓库
          • 指示每个 Docker 守护进程信任该证书
          • 客户端推送及拉取
          • 其他
            • 证书格式转换
            相关产品与服务
            容器镜像服务
            容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档