首页 > 其他分享 >如何搭建docker本地私有仓库,局域网内都可以访问?

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

时间:2022-08-30 21:24:07浏览次数:79  
标签:5000 18.04 私有 局域网 仓库 ubuntu 镜像 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

标签:5000,18.04,私有,局域网,仓库,ubuntu,镜像,docker
From: https://www.cnblogs.com/liqi175/p/16640841.html

相关文章

  • docker: Error response from daemon: driver failed programming external connectiv
    docker容器做端口映射报错docker:Errorresponsefromdaemon:driverfailedprogrammingexternalconnectivityonendpointnginx01(7c843d5ed27818f58179a567ebab7......
  • Dockerfile
    Dockerfile目录Dockerfile基本结构指令FROMLABELMAINTAINERRUNCDMEXPOSEENVADDcopyENTRYPOINTVOLUMEUSERWORKDIR基本结构Dockerfile是一个文本格式的配置文件,用户可以......
  • Docker容器数据卷
    什么是容器数据卷如果数据都在容器中,如果容器一删除,那么数据就会丢失。我们希望数据存储在本地。容器之间可以有一个数据共享的技术,Docker容器产生的数据,同步到本地,这就......
  • docker --link容器互联
    目录一.系统环境二.docker容器互联概述2.1docker容器互联的三种方式2.2docker--link使用注意事项2.3docker--link原理三.docker容器互联3.1通过容器IP地址进行通信3.......
  • Docker版本的Jenkins 安装 npm
    在实现docker版本的jenkins时遇见jenkinsnpmnotfound的错误。原因:容器中没有安装nodejs,npm。故自定义构建镜像并安装nodejs,npmDockerfileFROMjenkins......
  • Docker 安装Nexus3 快速搭建Maven私有仓库
    #查询镜像sudodockersearchsonatype/nexus3#拉取镜像last即可sudodockerpullsonatype/nexus3#创建挂载目录-可自定义sudomkdir-p/home/admin/nexus/data......
  • 交换机、网卡、局域网、IDC数据中心、 磁盘阵列相关
    交换机交换机是一种存储转发设备。以太网交换机采用存储转发(store-forward)技术活直通(cus-through)技术来实现信息帧的转发,也成为了交换式集线器。交换机和网桥的不同在于:交......
  • Dockerfile容器设置中文
    FROMcentos:7.6.1810RUNln-snf/usr/share/zoneinfo/Asia/Shanghai/etc/localtime&&\yuminstallglibc-common-y&&\localedef-c-fUTF-8-izh_CN......
  • Docker安装Rabbitmq
    安装Rabbitmq1.使用docker查询rabbitmq的镜像dockersearchrabbitmq2.安装镜像安装name为rabbitmq的这里是直接安装最新的,如果需要安装其他版本在rabbitmq后面跟上版本......
  • docker swarm集群中,task是什么意思?
    你在查看dockerswarm文档的时候,是不是经常听说task这个词,是什么意思呢? 非常,非常的简单: 在dockerswarm中,service中的容器,就叫做task. Container=task ......