如何搭建docker本地私有仓库,局域网内都可以访问?

前言

  我有两台服务器A和B,我想让A作为本地主仓库的地址,B去拉取A构建的docker 镜像。如何实现?

  假设A的地址为192.168.49.160

  B的地址为192.168.53.247

  这里我这两台服务器都是ubuntu的,A是ubuntu 20 ,B是ubuntu 18 。

  前提 两台服务器已经都安装好docker 

先在A搭建 

1.容器运行

docker run -d -p 5000:5000 --restart=always --name registry registry

这将使用官方的 registry 镜像来启动私有仓库。默认情况下,仓库会被创建在容器的 /var/lib/registry 目录下。

2.查看本地已有的镜像

docker image ls #若是没有ubuntu,就拉取一下 命令为 docker pull ubuntu:18.04

 3.使用 docker tagubuntu:18.04 这个镜像标记为 127.0.0.1:5000/ubuntu:18.04

docker tag ubuntu:18.04 127.0.0.1:5000/ubuntu:18.04

4.查看

docker image ls

 5.使用 docker push 上传标记的镜像。

docker push 127.0.0.1:5000/ubuntu:18.04

6.curl 查看仓库中的镜像。

curl 127.0.0.1:5000/v2/_catalog

 这里可以看到 {"repositories":["ubuntu"]},表明镜像已经被成功上传了。

7.测试一下

先删除已有镜像,再尝试从私有仓库中下载这个镜像。

docker image rm 127.0.0.1:5000/ubuntu:18.04

查看

docker image ls

再拉取

docker pull 127.0.0.1:5000/ubuntu:18.04

再查看

docker image ls

成功了!

8.配置信息

  如果你不想使用 127.0.0.1:5000 作为仓库地址,比如想让本网段的其他主机也能把镜像推送到私有仓库。

  你就得把例如 192.168.49.160:5000这样的内网地址作为私有仓库地址,这时你会发现无法成功推送镜像。

  这是因为 Docker 默认不允许非 HTTPS 方式推送镜像。我们可以通过 Docker 的配置选项来取消这个限制。

对于使用 systemd 的系统,请在/etc/docker/daemon.json中写入如下内容(如果文件不存在请新建该文件)【适用于Ubuntu 16.04+, Debian 8+, centos 7

sudo vim /etc/docker/daemon.json

填入内容

{
  "registry-mirror": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ],
  "insecure-registries": [
    "192.168.49.160:5000"
  ]
}

   注意 registry-mirror是加速镜像的地址,insecure-registries是配置信息,注意两个 [ ] 之间的逗号

9.重新启动docker

sudo systemctl restart docker

 再在B服务器搭建 

1.填写配置信息

sudo vim /etc/docker/daemon.json

2.填入A的IP信息到B自己的配置文件中

{
  "registry-mirror": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ],
  "insecure-registries": [
    "192.168.49.160:5000"
  ]
}

3.重启docker

sudo systemctl restart docker

4.查看本地镜像

docker image ls

5.拉取A仓库里的镜像

docker pull 192.168.49.160:5000/ubuntu:18.04

 

  

哈哈,成功了!!!!

 

参考资料

  官方文档指导 https://yeasy.gitbook.io/docker_practice/image/pull

  https://blog.csdn.net/superjunenaruto/article/details/106073997 

  https://www.cnblogs.com/wang_yb/p/6855415.html

posted @ 2022-08-30 21:12  o蹲蹲o  阅读(1885)  评论(0编辑  收藏  举报