局域网内部署 Docker Registry 是一种常见的场景,可以为团队内部提供一个高效、安全的容器镜像存储与管理解决方案。下面是完整的攻略过程。
准备工作
首先,需要一台物理机或者虚拟机,安装 Docker Engine。另外,需要准备好一份自签名的 SSL 证书,以确保 Docker Registry 镜像仓库服务能够享受到 HTTPS 加密传输的好处。
步骤一:创建 Registry 存储目录
创建存储 Registry 镜像仓库的目录,并赋予读写权限给当前用户:
$ mkdir -p /home/user/registry/data
$ sudo chown -R $(whoami) /home/user/registry/data
其中,/home/user/registry/data
是存储 Registry 镜像仓库的目录。
步骤二:启动 Docker Registry 容器
使用 Docker 命令启动 Registry,同时指定 SSL 证书的路径和制定存储数据的目录。示例代码如下:
$ docker run -d \
--name registry \
-p 5000:5000 \
-v /home/user/registry/data:/var/lib/registry \
-v /path/to/registry.crt:/certs/registry.crt \
-v /path/to/registry.key:/certs/registry.key \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/registry.key \
registry:2
其中,--name registry
指定了容器的名称,-p 5000:5000
表示容器内部的 5000 端口映射到本地的 5000 端口, -v /home/user/registry/data:/var/lib/registry
表示将存储 Registry 镜像仓库的目录挂载到容器内部,-v /path/to/registry.crt:/certs/registry.crt
和 -v /path/to/registry.key:/certs/registry.key
表示将 SSL 证书挂载到容器内部。-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.crt
和 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.key
则是指定使用 SSL 证书来启用 HTTPS 传输。
启动完成之后,访问 https://localhost:5000/v2/_catalog
会出现“{}”的情况,代表 Registry 镜像仓库启动成功。
示例一:推送镜像到 Registry
假设有一个名为 myimage
的镜像,现在要将其推送到刚刚启动的 Registry 镜像仓库中。示例代码如下:
$ docker pull myimage
$ docker tag myimage localhost:5000/myimage
$ docker push localhost:5000/myimage
其中,docker pull myimage
是从 Docker Hub 下载镜像,docker tag myimage localhost:5000/myimage
将镜像 myimage 打上 localhost:5000 的 tag,最后使用 docker push localhost:5000/myimage
将镜像推送到刚刚搭建的 Registry 镜像仓库。
示例二:从 Registry 拉取镜像
示例代码如下:
$ docker pull localhost:5000/myimage
其中,docker pull localhost:5000/myimage
表示从 Registry 镜像仓库中拉取名为 myimage
的镜像。
至此,局域网内部署 Docker Registry 的攻略就完成了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:局域网内部署 Docker Registry(推荐) - Python技术站