Liunx构建 Docker registry 镜像仓库

用途

Docker镜像仓库是存储和管理容器镜像的中心仓库。本文将向您展示如何在Linux上构建一个个人私有的Docker镜像仓库。dockerhub收费安全,registry免费但不安全,咱们都喜欢白嫖,不怕安全的推荐搭建registry!

构建步骤

一、拉取并运行Registry容器

docker pull registry     ----拉取Registry镜像

此时你在查看本地镜像就多了registry

docker images            ----查看本机已下载的镜像(registry:latest)

在这里插入图片描述
创建并运行Registry容器

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

注:
-itd: 这个是多个选项的组合,具体含义如下:
-i(Interactive): 保持与容器的交互式连接,使得用户可以输入命令进行交互。
-t(TTY): 分配一个伪终端(pseudo-tty),用于与容器进行交互。
-d(Detached): 将容器放入后台运行模式,该模式下容器不会占用终端。

-v /data/registry:/var/lib/registry: 这个参数用于将本地宿主机的目录/data/registry(左侧)映射到容器内的目录/var/lib/registry(右侧)。这样做可以将容器内的数据持久化并保存在宿主机,方便在容器重启后继续使用之前的数据。

-p 5000:5000: 使用此参数将容器内的端口5000映射到宿主机的端口5000,使得在宿主机上可以通过localhost:5000访问容器内运行的服务。

–restart=always: 此参数指定了容器的重启策略。always表示无论容器因何种原因退出,Docker都会自动重启容器。

–name registry: 使用此参数为容器指定名称,这里将容器命名为registry。可以通过容器名称来操作容器,例如启动、停止、删除等操作

二、验证Registry容器是否运行:

docker ps       ----查看运行中的容器

在这里插入图片描述
如果遇到容器没有运行可以尝试一下步骤:

docker ps -a    ----查看所有已经创建的容器,获取想启动容器的CONTAINER ID

在这里插入图片描述
然后执行docker restart (CONTAINER ID) 跟上对应的容器id即可启动该容器

三、配置Docker客户端以使用私有镜像仓库–(如果是https请求可以跳过)

不是https请求推送镜像时会报错,它会自动访问https,但我们是http

The push refers to repository [your-server-ip:5000/centos]
Get “https://your-server-ip:5000/v2/”: http: server gave HTTP response to HTTPS client

现在,我们需要配置Docker客户端以使用我们刚创建的个人私有镜像仓库。
步骤:

1、打开终端,并执行以下命令以编辑Docker的配置文件:

vi /etc/docker/daemon.json

如果文件不存在,则新建一个。

2、在打开的文件中添加以下内容,指定Registry镜像仓库的地址:

{
		"insecure-registries" : ["your-server-ip:5000"]
}

将"your-server-ip"替换为部署Registry容器的Linux服务器的实际IP地址。这将告诉Docker客户端信任并使用该地址上的私有镜像仓库。
注意可以先尝试127.0.0.1,还是报错继续填真实ip

3、保存并关闭文件。然后重新加载Systemd的配置文件,重新启动Docker服务:

systemctl daemon-reload
sudo systemctl restart docker

四、推送查看拉取私有镜像仓库

本机选择一个镜像上传到仓库去
1、为这个镜像添加一个"tag"

docker tag python3.9:haili your-server-ip:5000/centos:v1

比如我给我本机镜像源python3.9:haili打一个tag为centos
2、推送python3.9镜像到私有仓库

docker push your-server-ip:5000/centos:v1

在这里插入图片描述

3、查看已推送的镜像

curl -X GET http://your-server-ip:5000/v2/_catalog

在这里插入图片描述
你想获取特定镜像库的详细信息,可以使用以下命令

curl -X GET http://your-server-ip:5000/v2/<repository-name>/tags/list

在这里插入图片描述
将替换为你想要查看的镜像库名称。这将返回该镜像库中可用的所有标签列表。

4、拉取仓库镜像

 docker pull your-server-ip:5000/centos:v1

在这里插入图片描述
注意ip前面不需要加http

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值