搭建一个 Docker registry 私有仓库

本文描述在 Debian12 Bookworm 上,搭建 HTTPS 的本地 Docker registry 仓库。

服务器

  1. 安装 Registry。
sudo apt install -y docker-registry
  1. 配置 Registry。
version: 0.1
log:
  fields:
    service: registry
    environment: staging
storage:
  cache:
    blobdescriptor: inmemory
  filesystem:
    rootdirectory: /var/lib/docker-registry
  delete:
    enabled: true
http:
  addr: :5000
  # host: https://docker.xfoss.com
  headers:
    X-Content-Type-Options: [nosniff]
  # http2:
    # disabled: false
  tls:
    certificate: /etc/ssl/certs/_.xfoss.com.crt
    key: /etc/ssl/certs/_.xfoss.com.key
# auth:
#  htpasswd:
#    realm: basic-realm
#    path: /etc/docker/registry
health:
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3

注意:若需使用 https 的默认 443 端口,应使用 Nginx 进行反向代理,否则 docker-register.service 会报出没有权限在 443 端口上监听错误。

重启 docker-registry.service

systemctl restart docker-registry.service

主机上

# 从 tar 文件导入镜像
docker image import nginx-test.tar nginx:demo

# 给本地 `nginx:demo` 镜像,打上 `hub.xfoss.com:5000/nginx:demo` 标签?
docker tag nginx:demo hub.kgmicro.com:5000/nginx:demo

# 推送该镜像到 hub.kgmicro.com:5000
docker push hub.kgmicro.com:5000/nginx:demo


# 从另一主机上拉取 `nginx:demo`
docker pull hub.kgmicro.com:5000/nginx:demo

docker pull 使用 SOCKS5 代理

  1. 创建配置文件
mkdir -p /etc/systemd/system/docker.service.d && \
vi /etc/systemd/system/docker.service.d/http-proxy.conf
  1. 放入如下配置:
[Service]
Environment="ALL_PROXY=socks5h://127.0.0.1:1080"
Environment="HTTP_PROXY=socks5h://127.0.0.1:1080"
Environment="HTTPS_PROXY=socks5h://127.0.0.1:1080"
  1. 使修改生效
sudo systemctl daemon-reload
  1. 验证上面的配置
sudo systemctl show --property Environment docker
  1. 重启 Docker
sudo systemctl restart docker

参考

Last change: 2025-01-16, commit: 01a6104

小额打赏,赞助 xfoss.com 长存......

微信 | 支付宝

若这里内容有帮助到你,请选择上述方式向 xfoss.com 捐赠。