自建Docker私有镜像仓库

如何在 CentOS 8 中搭建 Docker 私有镜像仓库。

先行安装了 Docker,本文中使用的 Docker 版本是 20.10.9。

$ docker --version
Docker version 20.10.9, build c2ea9bc

由于需要使用远程访问,因此需要使用网络模块,并且要保证此模块开机自动启动。

$ cat > /etc/modules-load.d/docker.conf <<EOF
overlay
br_netfilter
EOF

$ modprobe overlay br_netfilter

$ lsmod | egrep 'overlay|br_netfilter'
br_netfilter           22256  0
bridge                155432  1 br_netfilter
overlay                91659  19

拉取 registry 镜像

$ docker pull registry

现在 hub.docker.com 可能无法访问,需要自行想办法解决。

启动 registry 镜像,需要注意以下几点:

  • 开机启动:设置容器的 restart 属性为 always。

  • 本地目录挂载:将本地目录挂载到容器中,这样即便容器消亡了,数据仍存在。

  • 端口映射:默认映射端口为 5000,可自定义。

$ mkdir -p /data/docker/registry
$ docker run -itd -v /data/docker/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry

验证是否可用:

$ curl http://172.17.140.123:5000/v2
{}

看到输出结果为 "{}",这表示部署成功了。

查看仓库中已有的镜像列表:

$ curl http://172.17.140.123:5000/v2/_catalog
{"repositories":[]}

当前还没有上传任何镜像,所以结果是空的。

修改 Docker 配置文件 /etc/docker/daemon.json,加入私有仓库资源:

$ cat /etc/docker/daemon.json
...
  "registry-mirrors": [ "172.17.140.123:5000" ],
  "insecure-registries": [ "172.17.140.123:5000" ],
...

重启 Docker 使之生效:

$ systemctl daemon-reload
$ systemctl restart docker

将当前某个镜像,加上本地仓库tag,并推送到服务器上:

$ docker images
REPOSITORY                      TAG             IMAGE ID       CREATED         SIZE
registry                        2               cfb4d9904335   10 months ago   25.4MB
registry                        latest          cfb4d9904335   10 months ago   25.4MB

$ docker tag registry 172.17.140.123:5000/registry

$ docker push registry 172.17.140.123:5000/registry

在 push 的时候,可能会遇到类似下面的报错:

http: server gave HTTP response to HTTPS client

这是由于 Docker 镜像拉取与推送服务默认使用的是https 协议,但是本地私有仓库服务器上面还没配置https。可以确认/修改 Docker 客户端配置,改用 http 协议通信。

$ cat /etc/docker/daemon.json
...
  "insecure-registries": [ "172.17.140.123:5000" ],
...

确保有上述 insecure-registries 这行配置,重启 Docker 再重试应该就可以了。

再次拉取本地仓库上的镜像,确认无误:

$ docker pull registry 172.17.140.123:5000/registry

$ docker images
REPOSITORY                      TAG             IMAGE ID       CREATED         SIZE
172.17.140.123:5000/registry    latest          cfb4d9904335   10 months ago   25.4MB
registry                        2               cfb4d9904335   10 months ago   25.4MB
registry                        latest          cfb4d9904335   10 months ago   25.4MB

以上。

Enjoy GreatSQL :)


文章推荐:

想看更多技术好文,点个“在看”

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值