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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Docker企业版的镜像仓库Docker Trusted Registry(DTR),DTR拥有很多很棒的镜像管理功能。

写在前面

与传统的虚拟机相比,使用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拥有很多很棒的镜像管理功能,例如镜像缓存、备份、扫描、签名,甚至是提供自动化的供给链策略。

相关实践学习
通过ACR快速部署网站应用
本次实验任务是在云上基于ECS部署Docker环境,制作网站镜像并上传至ACR镜像仓库,通过容器镜像运行网站应用,网站运行在Docker容器中、网站业务数据存储在Mariadb数据库中、网站文件数据存储在服务器ECS云盘中,通过公网地址进行访问。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
kde
|
11天前
|
运维 Ubuntu Linux
2025 最新 docker 可用镜像源仓库地址(9月记录)
本文分享运维组调研的稳定快速的Docker镜像源——轩辕镜像,支持多仓库且性价比高。提供Linux、macOS、Windows系统的一键及手动配置方法,适用于企业级长期使用场景。
kde
432 5
|
4月前
|
运维 监控 数据可视化
容器化部署革命:Docker实战指南
容器化部署革命:Docker实战指南
|
3月前
|
供应链 测试技术 开发者
用 Docker 轻松部署 ERPNext 15:多场景实战指南
ERPNext 15 是一款功能全面的开源企业资源规划系统,结合 Docker 容器化部署,具备高效、灵活、低成本等优势。适用于小微企业数字化起步、多分支机构协同办公、开发者测试环境搭建、短期项目管理及企业内部培训等多种场景。模块化设计支持按需扩展,满足不同规模企业需求,是实现高效企业管理的理想选择。
用 Docker 轻松部署 ERPNext 15:多场景实战指南
|
4月前
|
安全 Java Docker
Docker 部署 Java 应用实战指南与长尾优化方案
本文详细介绍了Docker容器化部署Java应用的最佳实践。首先阐述了采用多阶段构建和精简JRE的镜像优化技术,可将镜像体积减少60%。其次讲解了资源配置、健康检查、启动优化等容器化关键配置,并演示了Spring Boot微服务的多模块构建与Docker Compose编排方案。最后深入探讨了Kubernetes生产部署、监控日志集成、灰度发布策略以及性能调优和安全加固措施,为Java应用的容器化部署提供了完整的解决方案指南。文章还包含大量可落地的代码示例,涵盖从基础到高级的生产环境实践。
186 3
|
5月前
|
关系型数据库 MySQL 数据库
Docker Compose-实战
Docker Compose-实战
157 5
|
6月前
|
Ubuntu Linux Docker
Docker容器的实战讲解
这只是Docker的冰山一角,但是我希望这个简单的例子能帮助你理解Docker的基本概念和使用方法。Docker是一个强大的工具,它可以帮助你更有效地开发、部署和运行应用。
189 27
|
11月前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
12279 38
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
9月前
|
安全 数据安全/隐私保护 Docker
docker私有仓库harbor安装
通过以上步骤,您可以成功在企业内部安装和配置Harbor私有仓库,方便地管理和分发Docker镜像。Harbor不仅提供了基础的镜像管理功能,还增强了安全性、身份管理和审计功能,使其成为企业级容器镜像管理的理想选择。
400 22
|
10月前
|
关系型数据库 应用服务中间件 PHP
实战~如何组织一个多容器项目docker-compose
本文介绍了如何使用Docker搭建Nginx、PHP和MySQL的环境。首先启动Nginx容器并查看IP地址,接着启动Alpine容器并安装curl测试连通性。通过`--link`方式或`docker-compose`配置文件实现服务间的通信。最后展示了Nginx配置文件和PHP代码示例,验证了各服务的正常运行。
235 3
实战~如何组织一个多容器项目docker-compose

相关产品

  • 容器镜像服务