7-搭建私服

搭建本地私有仓库

1.下载Docker Registry

registry 是一个开源的基于 Go 语言编写的Docker镜像仓库,它提供了存储和分发 Docker 镜像的功能。通过运行 docker pull registry 命令,可以将 registry 镜像下载到本地,并在本地运行一个 Docker 仓库。这样您就可以使用自己的私有仓库来管理和分发自己的镜像,而无需使用第三方的镜像仓库服务。

docker pull registry

2.运行私服容器

​ 运行私有库Registry,相当于本地有个私有Docker hub

docker run -d -p 5000:5000 -v /krisswen/myregistry/:/tmp/registry --privileged=true registry

这个命令用于启动一个基于 registry 镜像的 Docker 仓库,并在本地的 5000 端口上监听请求。解释如下:

  • docker run: 运行 Docker 容器的命令。

  • -d: 让容器在后台运行。

  • -p 5000:5000: 将主机的 5000 端口映射到容器的 5000 端口,以便外部可以访问该 Docker 仓库服务。

  • -v /krisswen/myregistry/:/tmp/registry: 将主机上 /krisswen/myregistry/ 目录挂载到容器中的 /tmp/registry 目录,以便在主机和容器之间共享数据。

  • --privileged=true: 赋予容器特权,以便它可以执行一些需要特权的操作。

  • registry: 使用的镜像名称。

当容器启动后,您可以使用 docker pushdocker pull 命令将 Docker 镜像推送到或从该 Docker 仓库服务拉取。通过 -v 参数指定的目录将存储在容器内的所有镜像文件保存到本地主机上。

我的示例

docker run -d -p 5000:5000 -v /home/menu/myregistry/:/tmp/registry --privileged=true registry

使用本地私有仓库

1.创建一个镜像

docker commit -m="new" -a="yunyin" 8b4bcfd9196e ubuntu1:1.1

2.使用curl工具查看私服镜像

curl -XGET http://192.168.10.145:5000/v2/_catalog

我的示例

curl -XGET http://127.0.0.1:5000/v2/_catalog

3.修改镜像tag

docker tag ubuntu1:1.1 192.168.10.145:5000/ubuntu1:1.1

这个命令用于为一个本地的 Docker 镜像打标签(tag),以便将其推送到指定的 Docker 仓库。解释如下:

  • docker tag: 打标签的命令。

  • ubuntu1:1.1: 要打标签的本地镜像名称和标签,其中 ubuntu1 是镜像名称,1.1 是标签。

  • 192.168.10.145:5000/ubuntu1:1.1: 新的镜像标签,其中 192.168.10.145:5000 是 Docker 仓库地址,ubuntu1 是镜像名称,1.1 是新的标签。

4.使用http推送镜像

​ docker默认禁用http推送镜像,而是建议使用https推送。https需要为docker引擎配置一个有效的证书,因此此处采用http推送。

vim /etc/docker/daemon.json		#修改docker配置文件,使支持http

添加以下内容:

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

重启docker:

systemctl restart docker

5.push到私有仓库

​ 重启docker后,重新运行registry容器

docker start 容器ID

​ 推送:

docker push 192.168.10.145:5000/ubuntu1:1.1

示例

docker start c2d0bd6cd0fd	#再次启动容器
docker push 127.0.0.1:5000/ubuntu1:1.1 #推送到本地仓库

6.从私有仓库pull镜像

docker pull 127.0.0.1:5000/ubuntu1:1.1