教你搭建 Docker 私有仓库详细步骤

准备两台服务器
Docker 客户端:192.168.56.201
Docker 私有仓库服务器:192.168.56.202

docker 及 docker-compose 环境安装

请查看 CentOS 8 安装 docker/docker-compose 进行环境配置。

搭建步骤

1. 在仓库服务器 202 上通过以下 docker-compose 进行部署

目录结构

.
|-- docker-compose.yml
`-- registry # 容器目录,用于存放仓库文件

查看 docker-compose.yml 文件内容

version: '3'
services:
  registry:
    container_name: registry
    image: registry:latest
    privileged: true
    ports:
      - 5000:5000
    volumes:
      - ./registry:/var/lib/registry
    restart: always
2. 在仓库服务器 202 运行命令进行部署

执行部署

# docker-compose up -d

查看部署情况

# docker ps
CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS              PORTS                                      NAMES
319ea4031989        registry:latest      "/entrypoint.sh /etc…"   About an hour ago   Up 40 minutes       0.0.0.0:5000->5000/tcp                     registry
3. 在客户端服务器 201 上制作精细

以 hello-world 为例,先把它从 hub.docker.com 官方仓库中拉取下来

# docker pull hello-world

给 hello-world 镜像打上 tag,表示最新的版本

# docker tag hello-world 192.168.56.202:5000/hello-world:latest
4. 将新的 hello-world 镜像上传到私有仓库
# docker push 192.168.56.202:5000/hello-world:latest

发现会报以下错误:

The push refers to a repository [192.168.56.202:5000/hello-world]
Get https://192.168..56.202:5000/v1/_ping: http: server gave HTTP response to HTTPS client

原因是 docker 私有仓库服务器,默认是基于 https 传输的,所以我们需要在客户端 201 上做相关设置,不使用 https 传输

# vi /etc/docker/daemon.json

增加以下代码

"insecure-registries":["182.168.56.201:5000"]

最终如下所示:

{
        "registry-mirrors": ["https://demo.mirror.aliyuncs.com"],
        "insecure-registries":["182.168.56.201:5000"]
}

依次执行以下命令,重启 docker

# systemctl daemon-reload
# systemctl restart docker

再次执行推送命令即可成功

# docker push 192.168.56.202:5000/hello-world:latest

执行输出:

The push refers to repository [192.168.56.202:5000/hello-world]
9c27e219663c: Pushed
latest: digest: sha256:90659bf80b44ce6be8234e6ff90a1ac34acbeb826903b02cfa0da11c82cbc042 size: 525
5. 查看刚上传的镜像

在私有仓库 202 上,通过以下命令查看:

# ls ./registry/docker/registry/v2/repositories/

输出:

hello-world

或者通过在客户端执行以下命令查看:

# curl http://192.168.56.202:5000/v2/_catalog

输出:

{"repositories":["hello-world"]}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值