[Docker] 本地私有 Docker Mirror 配置方法

一、 背景介绍

        默认条件下,Docker 从 Docker Hub 拉取镜像,速度往往不尽人意;

        我们一般通过配置国内加速代理,如 DaoCloud,来提升 pull 速度,改善体验;

        本文介绍 DaoCloud 技术的本地私有实现,搭建私有 Docker Mirror.

二、配置步骤

2.1    编写配置文件 config.yml

         最后的 remoteurl 指向要代理的目标仓库地址,我们这里直接使用 Docker Hub 地址

         尝试代理 DaoCloud 地址,木有成功,暂且放弃  - _-|||

         username 和 password 是可选的, 假如配置,就能不仅访问公有镜像,还能访问用户私有镜像

version: 0.1
log:
  fields:
    service: registry
storage:
  cache:
    blobdescriptor: inmemory
  filesystem:
    rootdirectory: /var/lib/registry
http:
  addr: :5000
  headers:
    X-Content-Type-Options: [nosniff]
health:
  storagedriver:
    enabled: true
    interval: 10s
    threshold: 3
proxy:
  remoteurl: https://registry-1.docker.io
  username: [username]
  password: [password]

2.2    启动 Mirror 服务容器

         该命令将宿主机 /data 目录映射到容器中,作为镜像存储目录,对外服务端口为 5000

         注意这里需要保证本地主机能够正常访问 https://registry-1.docker.io

         考虑到我的宿主机网路受限,在这里通过 -e 参数传入了代理服务器(Squid)地址,按需配置即可

# docker run -d --restart=always \
   --name mirror \
   -p 5000:5000 \
   -e HTTP_PROXY=http://192.9.100.127:3128 \
   -e HTTPS_PROXY=http://192.9.100.127:3128 \
   -v /data:/var/lib/registry \
   -v  $PWD/config.yml:/etc/registry/config.yml \
   registry:2.5 /etc/registry/config.yml

2.3    修改客户端 Docker 启动参数,使其使用我们配置的 Mirror 代理

         方法一:

         修改 /lib/systemd/system/docker.service, 在 ExecStart=/usr/bin/dockerd 之后追加 mirror 地址

         IP 即为 Mirror 容器所在宿主机 IP,端口即为 -p 参数指定的 5000

ExecStart=/usr/bin/dockerd --registry-mirror=http://192.168.204.137:5000 -H fd://

         方法二:

         编辑 /etc/docker/daemon.json (没有就创建一个)

{
  "registry-mirrors": ["http://192.168.204.137:5000"]
}

         配置完成后,重启 docker 服务,使其生效

# systemctl daemon-reload
# systemctl restart docker

2.4    客户端执行 docker pull 验证

# docker pull ubuntu:14.04

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值