部署私有Docker Registry

部署私有Docker Registry

安装部署一个私有的Docker Registry是引入、学习和使用Docker这门技术的必经之路之一。尤其是当Docker被所在组织接受,更多人、项目和产品开始接触和使用Docker时,存储和分发自制的Docker image便成了刚需。

Docker的开发者也一直在致力于改善Registry安装和使用的体验,通过提供官方Registry Image以及Docker Compose工具等来简化Registry的配置。不过在本文中,我们只是利用Docker以及Registry的官方Image来部署Registry,这样更便于全面了解Registry的部署配置细节。

一、环境

这里还是复用以往文章中的Docker环境:

组件名

Ip

版本

Docker Registry Server

192.168.1.212

docker1.13.1

docker  Server

192.168.1.106

Docker version 19.03.11, build 42e35e61f3

本次Registry使用当前最新stable版本:Registry 2.3.0

二、registry搭建

本以为Docker Registry的搭建是何其简单的,甚至简单到通过一行命令就可以完成的。比如我们在Registry Server上执行:

$sudo docker run -d -p 5000:5000 --restart=always --name registry registry:latest
$ docker psCONTAINER ID        IMAGE                                                COMMAND                  CREATED             STATUS              PORTS                    NAMES
22b4515859fb        docker.mirrors.ustc.edu.cn/library/registry:latest   "/entrypoint.sh /e..."   2 hours ago         Up 2 hours          0.0.0.0:5000->5000/tcp

Registry container已经跑起来了,其启动日志可以通过:docker logs registry查看。

检出nginx 示例容器

docker pull nginx:alpine

就能下载到基于 alpine 的最新版本的 nginx 服务器镜像, 然后再输入:

docker run \
    --detach \
    --name nginx \
    --publish 80:80 \
    --restart unless-stopped \
    nginx:alpine

我们在192.168.1.212本地给nginx:alpine打一个tag,并尝试将新tag下的image pushRegistry中去:

docker tag nginx:alpine 127.0.0.1:5000/nginx:v1

pushRegistry中:

现在可以上传这个镜像:

docker push 127.0.0.1:5000/nginx:v1

 

现在来浏览 http://127.0.0.1:5000/v2/_catalog  将会看到这样的结果:

{"repositories":["nginx"]}

表示已经有了 nginx 这个镜像, 如果要看这个镜像有什么版本, 需要输入地址 http://127.0.0.1:5000/v2/nginx/tags/list  结果如下:

{"name":"nginx","tags":["v1"]}

 

三、docker  配置

如果要在其它装了 docker 的电脑上获取这个镜像, 或者下载局域网其它 registry 服务器上的镜像,新版本的docker,由于安全策略, 有两个选择:

  1. 配置 HTTPS 证书, 因为是内网分发, 没有必要去折腾证书。
  2. docker 的 /etc/docker/daemon.json 文件, 配置 insecure-registries 选项。
cat > /etc/docker/daemon.json <<EOF

{
    "registry-mirrors":["https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn"],

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

}

EOF

检出镜像

docker pull 192.168.1.212:5000/nginx:v1

使用镜像启动

docker run --detach --name nginx --publish 80:80 --restart unless-stopped 192.168.1.212:5000/nginx:v1

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将Docker仓库私有部署,你可以考虑使用Docker Registry来实现。Docker Registry一个存储、分发和管理Docker镜像的服务器端应用程序。 以下是一些步骤来部署私有Docker Registry: 1. 安装Docker Registry:首先,在你想要部署Docker Registry的服务器上安装Docker。然后,使用以下命令来拉取并运行官方的Docker Registry镜像: ``` docker run -d -p 5000:5000 --restart=always --name registry registry:2 ``` 这将在端口5000上启动一个私有Docker Registry。 2. 配置防火墙规则:如果你的服务器上有防火墙,确保允许通过5000端口的流量。 3. 配置TLS证书(可选):如果你希望通过HTTPS访问私有Docker Registry,你需要为Registry配置TLS证书。你可以使用自签名证书或购买一个有效的证书。将证书和私钥放置在适当的位置,并在Docker Registry的启动命令中指定证书路径。 4. 配置客户端:在需要使用私有Docker Registry的机器上,你需要配置Docker客户端以允许与私有Registry通信。编辑或创建`/etc/docker/daemon.json`文件,并添加以下内容: ``` { "insecure-registries": ["your-registry-domain:5000"] } ``` 将`your-registry-domain`替换为你的Docker Registry的域名或IP地址。 5. 重启Docker服务:在配置完客户端后,重启Docker服务以使更改生效: ``` systemctl restart docker ``` 6. 推送和拉取镜像:现在,你可以使用`docker push`和`docker pull`命令将镜像推送到和从私有Docker Registry拉取镜像。 这样,你就成功地将Docker仓库私有部署了。请注意,这只是一个基本的示例,你可以根据自己的需求进行更高级的配置和管理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值