【赵渝强老师】Docker的私有镜像仓库:Harbor

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Harbor是由VMware开发的企业级Docker镜像仓库管理工具,支持权限管理、LDAP集成、日志审计、镜像复制及中文界面等功能。本文详细介绍了Harbor的安装、配置及在Docker中的实战应用流程,涵盖环境准备、部署步骤、基础操作和镜像上传等内容,适用于容器化应用的镜像管理场景。

b386.png

Harbor是由VMware公司开发并开源的企业级的Docker镜像仓库的管理项目,它包括镜像的权限管理(RBAC)、目录访问(LDAP)、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。


视频讲解如下


为了更好地演示Harbor的安装和部署的过程,这里单独准备一台虚拟机作为运行Harbor的主机。下图展示了Harbor主机的网络配置和主机名信息。

image.png


一、 安装Docker和Docker Compose


(1)在Harbor的主机上关闭Linux防火墙和SELinux。

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

(2)配置Harbor主机的主机名和IP地址的映射,编辑文件“/etc/hosts”加入以下的内容。

192.168.79.10 my.harbor.com

(3)使用yum安装Docker

yum -y install docker

(4)启动Docker的服务

systemctl start docker
systemctl enable docker

(5)安装Docker Compose。下面的指令将从GitHub上下载Docker Compose服务编排工具,并保存到本地的“/usr/local/bin/docker-compose”文件中。

curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 提示:Docker Compose是Docker的服务编排工具,
# 关于Docker Compose的使用会在后续课程中介绍。
# 登录GitHub网站可以查看Docker Compose的最新的版本信息。

(6)给Docker Compose加上可执行的权限:

chmod +x /usr/local/bin/docker-compose

(7)确定Docker Compose的版本信息,如下图所示。

image.png


二、 安装配置Harbor


(1)从GitHub上下载Harbor的安装,这里使用Harbor 1.6.2的版本。

wget https://storage.googleapis.com/harbor-releases/release-1.6.0/harbor-offline-installer-v1.6.2.tgz

(2)将Harbor解压缩到/root/training/目录下。

mkdir /root/training/
tar -zxvf harbor-offline-installer-v1.6.2.tgz -C /root/training/

(3)进入“/root/training/harbor”目录下。

cd /root/training/harbor

(4)编辑Harbor的核心配置文件harbor.cfg。下面展示了需要修改的参数值:将Harbor监听的地址设置为了本机的主机名,并设置了Harbor管理员的密码。

# 监听地址
hostname = my.harbor.com
# 管理员的登录密码
harbor_admin_password = Welcome_1

(5)执行install命令安装Harbor。下图展示了安装完成后的界面。

./install.sh

image.png

(6)通过浏览器访问Harbor主页“http://192.168.79.10/”,如下图所示。

image.png

(7)使用admin账号进行登录,密码为第(4)步中设置的Welcome_1。下图展示了Harbor主页面。

image.png


三、 【实战】在Docker中使用Harbor


在配置好Harbor的私有镜像仓库后,需要在Docker的客户机上进行设置才能使用Harbor。这里以master主机为例进行设置。


(1)将Harbor主机的主机名和IP地址写入Docker客户机的“/etc/hosts”文件。

192.168.79.10 my.harbor.com

(2)编辑文件“/usr/lib/systemd/system/docker.service”文件,输入以下内容。其中,my.harbor.com是Harbor运行主机的hostname。

ExecStart=/usr/bin/dockerd --insecure-registry my.harbor.com

(3)执行下面的语句创建“/etc/docker/daemon.json”文件,在该文件中指定私有镜像仓库的地址。

cat > /etc/docker/daemon.json << EOF
{ "insecure-registries":["my.harbor.com"] }
EOF

(4)重启Docker服务。

systemctl daemon-reload
systemctl restart docker

(5)使用“docker login”命令登录私有仓库,如下图所示。

image.png


(6)创建一个简单的Dockerfile文件进行测试。

FROM centos
ENV TZ "Asia/Shanghai"

(7)使用“docker build”命令编译Dockerfile文件生成镜像,如下图所示。

image.png


(8)使用“docker images”命令查看生成的镜像。

(9)执行下面的命令将镜像上传到私有的harbor镜像仓库。镜像上传完成后的效果如下图所示。

docker push my.harbor.com/library/mycentos

image.png

(10)在Harbor的Web主页上确定上传的镜像信息。可以看到成功将生成的mycentos镜像保存到了私有的镜像仓库中,如下图所示。

image.png

相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
2月前
|
监控 Linux 调度
【赵渝强老师】Docker容器的资源管理机制
本文介绍了Linux CGroup技术及其在Docker资源管理中的应用。通过实例演示了如何利用CGroup限制应用程序的CPU、内存和I/O带宽使用,实现系统资源的精细化控制,帮助理解Docker底层资源限制机制。
207 6
|
7月前
|
关系型数据库 MySQL 数据库
【赵渝强老师】数据库不适合Docker容器化部署的原因
本文介绍了在Docker中部署MySQL数据库并实现数据持久化的方法,同时分析了数据库不适合容器化的原因。通过具体步骤演示如何拉取镜像、创建持久化目录及启动容器,确保数据安全存储。然而,由于数据安全性、硬件资源争用、网络带宽限制及额外隔离层等问题,数据库服务并不完全适合Docker容器化部署。文中还提到数据库一旦部署通常无需频繁升级,与Docker易于重构和重新部署的特点不符。
400 19
【赵渝强老师】数据库不适合Docker容器化部署的原因
|
6月前
|
存储 数据可视化 数据安全/隐私保护
【赵渝强老师】Docker的图形化管理工具
本文介绍了三种主流的Docker图形化管理工具:Docker UI、Portainer和Shipyard。Docker UI(现名UI for Docker)适合初学者,支持容器管理并可显示容器关系图;Portainer轻量级且功能全面,支持单机与集群管理;Shipyard专注于多主机集群管理,提供镜像、容器及节点管理功能,并包含engine和rethinkdb两个核心组件。文中还通过图文结合的方式展示了各工具的安装与使用方法。
300 4
【赵渝强老师】Docker的图形化管理工具
|
存储 安全 应用服务中间件
【赵渝强老师】Docker的体系架构
Docker采用客户端-服务器架构,客户端与守护进程通过sockets或RESTful API通信。守护进程负责构建、运行和分发容器。镜像仓库(如Docker Hub和Harbor)存储镜像,容器则基于镜像创建,是运行应用的安全平台。
251 2
【赵渝强老师】Docker的体系架构
|
关系型数据库 数据管理 应用服务中间件
【赵渝强老师】Docker的数据持久化
在生产环境中使用Docker时,为了实现数据的持久化和共享,可以通过数据卷(Data Volumes)和数据卷容器(Data Volume Containers)两种方式来管理数据。数据卷是一个独立于容器的挂载目录,可以跨多个容器共享和重用。数据卷容器则是一种特殊容器,用于维护数据卷,便于数据迁移和共享。本文通过示例详细介绍了这两种方法的使用步骤。
204 1
|
Kubernetes 负载均衡 Linux
【赵渝强老师】Docker三剑客
本文介绍了Docker容器中的三个重要工具:Docker Compose、Docker Machine 和 Docker Swarm。Docker Compose用于定义和运行多容器应用,通过YAML文件简化容器管理。Docker Machine支持远程主机上的Docker安装和管理,适用于跨平台使用。Docker Swarm则提供集群管理功能,实现负载均衡和故障迁移,适合大规模部署。文中还提供了相关示例和架构图,帮助读者更好地理解和使用这些工具。
247 2
|
存储 关系型数据库 Linux
【赵渝强老师】什么是Docker的镜像
Docker镜像是一个只读模板,包含应用程序及其运行所需的依赖环境。镜像采用分层文件系统,每次修改都会以读写层形式添加到原只读模板上。内核bootfs用于加载Linux内核,根镜像相当于操作系统,上方为应用层。镜像在物理存储上是一系列文件的集合,默认存储路径为“/var/lib/docker”。
271 1
|
API Docker 容器
【赵渝强老师】构建Docker Swarm集群
本文介绍了如何使用三台虚拟主机构建Docker Swarm集群。首先在master节点上初始化集群,然后通过特定命令将node1和node2作为worker节点加入集群。最后,在master节点上查看集群的节点信息,确认集群构建成功。文中还提供了相关图片和视频教程,帮助读者更好地理解和操作。
165 0
|
调度 Docker 容器
【赵渝强老师】Docker Swarm集群的体系架构
Docker Swarm自1.12.0版本起集成至Docker引擎,无需单独安装。它内置服务发现功能,支持跨多服务器或宿主机创建容器,形成集群提供服务。相比之下,Docker Compose仅限于单个宿主机。Docker Swarm采用主从架构,Swarm Manager负责管理和调度集群中的容器资源,用户通过其接口发送指令,Swarm Node根据指令创建容器运行应用。
220 0
|
应用服务中间件 网络安全 数据安全/隐私保护
【赵渝强老师】使用Docker Machine远程管理Docker
Docker Machine 是 Docker 官方提供的远程管理工具,可帮助开发人员在远程主机或虚拟机上安装和管理 Docker 环境。本文介绍了如何在远程主机上安装 Docker 并配置免密码登录,以及使用 Docker Machine 管理远程 Docker 主机的常用命令。
294 0