搭建本地私有仓库
1.下载Docker Registry
registry
是一个开源的基于 Go 语言编写的Docker镜像仓库,它提供了存储和分发 Docker 镜像的功能。通过运行 docker pull registry
命令,可以将 registry
镜像下载到本地,并在本地运行一个 Docker 仓库。这样您就可以使用自己的私有仓库来管理和分发自己的镜像,而无需使用第三方的镜像仓库服务。
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 push
和 docker 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 仓库。解释如下:
4.使用http推送镜像
docker默认禁用http推送镜像,而是建议使用https推送。https需要为docker引擎配置一个有效的证书,因此此处采用http推送。
vim /etc/docker/daemon.json #修改docker配置文件,使支持http
|
添加以下内容:
"insecure-registries": ["192.168.10.145:5000"]
|
重启docker:
5.push到私有仓库
重启docker后,重新运行registry
容器
推送:
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
|