构建registry镜像仓库

  • 用途
  • 构建步骤
  • 一、拉取并运行Registry容器
  • 二、验证Registry容器是否运行:
  • 三、配置Docker客户端以使用私有镜像仓库--(如果是https请求可以跳过)
  • 四、推送查看拉取私有镜像仓库


用途

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

构建步骤

一、拉取并运行Registry容器

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

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

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

如何查docker源仓库镜像版本 docker查看远程仓库镜像_如何查docker源仓库镜像版本


创建并运行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源仓库镜像版本 docker查看远程仓库镜像_如何查docker源仓库镜像版本_02


如果遇到容器没有运行可以尝试一下步骤:

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

如何查docker源仓库镜像版本 docker查看远程仓库镜像_Docker_03


然后执行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

如何查docker源仓库镜像版本 docker查看远程仓库镜像_docker_04

3、查看已推送的镜像

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

如何查docker源仓库镜像版本 docker查看远程仓库镜像_centos_05


你想获取特定镜像库的详细信息,可以使用以下命令

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

如何查docker源仓库镜像版本 docker查看远程仓库镜像_centos_06


将替换为你想要查看的镜像库名称。这将返回该镜像库中可用的所有标签列表。

4、拉取仓库镜像

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

如何查docker源仓库镜像版本 docker查看远程仓库镜像_centos_07


注意ip前面不需要加http