实战演练丨在Docker 企业版中打造专属的私人镜像仓库


出品丨Docker公司(ID:docker-cn)

编译丨小东

每周一、三、五晚6点10分  与您不见不散


说在前面


与传统的虚拟机相比,使用Docker真的是一件很酷的事,您可以轻松的移动Docker镜像。如果您已经使用了Docker,那么可以肯定您是从Docker Hub中下载的镜像。Docker Hub是Docker基于云的镜像仓库,拥有数以万计的Docker镜像可供用户选择。如果您正在开发自己的软件并创建了自己的Docker镜像,尤其是当您的镜像拥有专利许可证,或是您构建的系统具有复杂的持续集成(CI)过程时,那么您就一定想要打造一个私人的Docker镜像仓库了。


Docker企业版包含了Docker Trusted Registry(DTR),这是一个具有安全镜像管理功能的高可用性的镜像仓库,您可以放心的在自己的数据中心内,或者在基于云的基础架构上构建、运行它。在接下来的几周内,我们将介绍DTR是如何成为提供安全、可重复和一致性软件交付链链的关键组成部分。今天,您可以通过这篇演示案例来开启您的Docker之旅。下面将为您介绍安装的详细步骤。



安装Docker企业版


DTR在通用控制层(UCP)之上运行,所以让我们开始安装一个单节点集群吧!如果你已经有了自己的UCP集群,那么您可以跳过这一步。在docker主机上,运行以下命令:


#下载并安装UCP


docker run -it –rm -v /var/run/docker.sock:/var/run/docker.sock –name ucp docker/ucp:latest install


现在,您的UCP已经完成安装并且可以启动、运行了,接下来在安装DTR之前我们还应该做一些其它的准备工作。打开您刚刚安装UCP中的浏览器,您可以在日志的末尾处发现一个链接。如果您已经拥有Docker企业版许可证,那么您就可以通过用户界面上传许可证。如果您没有许可证,那么就需要您访问Docker Store,在那里您可以获得一个免费的30天试用版。


一旦您获得了授权许可,您可能就想要更改运行UCP的端口了。由于这是一个单节点集群,因此DTR和UCP将要使用相同的TCP(传输控制协议)端口来运行其Web服务。如果您拥有一个以上节点的UCP集群,这可能就不成问题了,因为DTR将寻找一个具有所需空闲端口的节点。在UCP内部,点击Admin Settings(管理设置)——Cluster Configuration(集群配置),并将Controller Port(控制端口)更改为5443这样的设定。


安装DTR


我们将安装一个简单的单节点的DTR实例。如果您正在为生产用途设置DTR,那么您可能需要设置高可用性(HA)模式,这需要使用不同类型的存储,例如基于云对象的存储或NFS。由于这是一个单节点实例,我们将使用默认的本地存储。


首先我们需要下载DTR引导程序镜像。这个引导程序镜像非常小巧而且自己包含安装程序,它会自动连接UCP并建立全部所需的容器、卷和逻辑网络来启动并运行DTR。


使用以下命令下载并运行DTR引导程序:


#下载并运行DTR引导程序


docker run -it –rm docker/dtr:latest install –ucp-insecure-tls


DTR引导镜像会让您进行一些设置,例如UCP安装的URL和UCP管理员的用户名和密码。您只需要一两分钟就可以把所有的DTR图像下载下来并完成全部的设置。


保持一切安全


一旦所有的东西都运行起来了,您就可以准备从镜像仓库中上传和下载镜像了。在我们开始这一步之前,让我们先来设置TLS证书,以便我们可以安全地与DTR进行通信。


在Linux上,我们可以使用以下命令:


#从DTR下载CA证书(如果不能使用curl,则可以使用wget)


DTR_HOSTNAME=<Your DTR hostname>

curl -k https://$(DTR_HOSTNAME)/ca > $(DTR_HOSTNAME).crt

sudo mkdir /etc/docker/certs.d/$(DTR_HOSTNAME)

sudo cp $(DTR_HOSTNAME) /etc/docker/certs.d/$(DTR_HOSTNAME)


#重启Docker守护进程


sudo systemctl restart docker


在Docker for Mac和Windows平台上,我们设置的客户端的方式将有些许不同。进入Settings(设置)——守护进程(Daemon),然后在 Insecure Registries(不安全镜像仓库)部分,输入你的DTR主机名。点击Apply(应用),您的Docker守护进程就可以重新启动了。


上传和下载像


我们现在需要建立一个镜像仓库来保存镜像。这与Docker Hub有点不同,如果在执行docker push时没有发现镜像仓库的话,Docker Hub会自动创建一个仓库。要创建镜像仓库,请将浏览器指向https:// <您的DTR主机名>,然后在出现提示时使用您的管理员凭证进行登录。如果您向UCP添加了许可证,该许可证将自动由DTR提取。如果没有,请现在上传您的许可证。


进入之后,点击“New Repository”按钮并创建一个新的镜像仓库。现在让我们回到shell并输入以下命令:


#下载最新版本的Alpine Linux


docker pull alpine:latest


#登录到您的DTR实例


docker login <Your DTR hostname>


#为Alpine添加标签使其能够上传到DTR


docker tag alpine:latest <Your DTR hostname>/admin/alpine:latest


#将镜像上传到DTR


docker push <Your DTR hostname>/admin/alpine:latest


就是这样,我们刚刚下载了一个最新的Alpine Linux镜像,重新标记它以便我们可以将其存储在DTR中,然后将其上传到我们的私人镜像仓库中。如果您想将该镜像下载到不同的Docker引擎中,请按照上面所示设置您的DTR证书,然后输入以下命令:

#从DTR中下载镜像


docker pull <Your DTR hostname>/admin/alpine:latest


DTR拥有很多很棒的镜像管理功能,例如镜像缓存,备份,扫描,签名,甚至是提供自动化的供给链策略。了解更多详情,请关注Docker公司官方公众号。



点击下列标题,阅读更多干货



如果本文对你有帮助,欢迎分享到朋友圈!获取更多Docker实用技巧,扫描下图二维码!

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值