**【Docker 实践】**系列共包含以下几篇文章:
- Docker 实践(一):在 Docker 中部署第一个应用
- Docker 实践(二):什么是 Docker 的镜像
- Docker 实践(三):使用 Dockerfile 文件构建镜像
- Docker 实践(四):使用 Dockerfile 文件的综合案例
- Docker 实践(五):搭建私有镜像 Harbor
😊 如果您觉得这篇文章有用 ✔️ 的话,请给博主一个一键三连 🚀🚀🚀 吧 (点赞 🧡、关注 💛、收藏 💚)!!!您的支持 💖💖💖 将激励 🔥 博主输出更多优质内容!!!
Docker 实践(五):搭建私有镜像 Harbor
- [1.安装 Docker Compose](#1.安装 Docker Compose)
- [2.安装与配置 Harbor](#2.安装与配置 Harbor)
- [3.在 Docker 中使用 Harbor](#3.在 Docker 中使用 Harbor)
Harbor 是由 VMware 公司开发并开源的企业级的 Docker 镜像仓库的管理项目,它包括镜像的 权限管理(RBAC)、目录访问(LDAP)、日志审核、管理界面、自我注册、镜像复制 和 中文支持 等功能。
为了更好地演示 Harbor 的安装和部署,应该单独准备一台虚拟机或服务器作为运行 Harbor 的主机。
1.安装 Docker Compose
在 Harbor 的主机上关闭 Linux 防火墙和 SELinux。
bash
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
配置 Harbor 的主机的主机名和 IP 地址的映射,编辑文件 /etc/hosts
加入以下内容(如果是云服务器的话,xxx.xxx.xx.xx
表示外网地址)。
bash
xxx.xxx.xx.xx my.harbor.com
安装 Docker Compose。以下指令将从 GitHub 下载服务编排工具 Docker Compose,并保存到本地的 /usr/local/bin/docker-compose
文件中(下载下来的 docker-compose-linux-x86_64
会被重命名为 docker-compose
)。
bash
curl -L https://github.com/docker/compose/releases/download/v2.27.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
给 Docker Compose 加上可执行权限。
bash
chmod +x /usr/local/bin/docker-compose
确定 Docker Compose 的版本信息。
bash
docker-compose version
注意:其实这两条命令指向的 Compose Version 并不一样。下面一个指向的是安装 Docker 时自带的 docker-compose-plugin
。
2.安装与配置 Harbor
从 GitHub 下载 Harbor 的安装文件,这里使用的是 Harbor 1.6.2 版本。
bash
wget https://storage.googleapis.com/harbor-releases/release-1.6.0/harbor-offline-installer-v1.6.2.tgz
将 Harbor 安装文件解压缩到 /root/training/
目录下。
bash
mkdir /root/training/
tar -zxvf harbor-offline-installer-v1.6.2.tgz -C /root/training/
进入 /root/training/harbor
目录下。
bash
cd /root/training/harbor
编辑 Harbor 的核心配置文件 harbor.cfg
。下面展示了需要修改的参数值:将 Harbor 监听的地址设置为本机的主机名,并设置了 Harbor 管理员的登录密码(下面这两个参数在配置文件中都存在,请直接修改,不要注释掉原来的参数配置再新增一行,否则可能会与预期不符)。
bash
# 监听的地址
hostname = my.harbor.com
# 管理员的登录密码
harbor_admin_password = Welcome_1
执行脚本安装 Harbor。
bash
./install.sh
因为之前 docker-compose
安装的有点问题,报错了。
重新安装 docker-compose
后,再次执行脚本。
如果成功安装,将会启动 8 个容器。
这里踩了一个坑:虽然前文设置了 harbor_admin_password = Welcome_1
,但 Harbor 配置文件中默认有一个 harbor_admin_password = Harbor12345
,从而导致前面配置的密码未生效,登录失败了。
使用默认的密码,登录成功(不安全,请及时修改为强密码)。
3.在 Docker 中使用 Harbor
我们配置了私有镜像仓库 Harbor,但是我们还需要在 Docker 的客户机上进行设置才能使用它(我又找了一台服务器作为 Docker 的客户机)。
将 Harbor 主机的主机名和 IP 地址写入 Docker 客户机的 /etc/hosts
文件中。
bash
xxx.xxx.xx.xx my.harbor.com
在 /etc/docker/daemon.json
文件中添加相关参数(如果该文件不存在,则需要新建),在该文件中指定私有镜像仓库的地址。
bash
"insecure-registries":["my.harbor.com"]
重启 Docker 服务。
bash
systemctl daemon-reload
systemctl restart docker
使用 docker login
命令登录私有镜像仓库。
创建一个简单的 Dockerfile 文件进行测试。
bash
FROM centos
ENV TZ "Asia/Shanghai"
使用 docker build
命令编译 Dockerfile 文件生成镜像。
bash
docker build -t my.harbor.com/library/mycentos .
使用 docker images
命令查看生成的镜像。
执行以下命令将镜像上传到私有镜像仓库 Harbor 中。
bash
docker push my.harbor.com/library/mycentos
在 Harbor 的 Web 主页查看上传的镜像信息。可以看到成功将生成的 mycentos
镜像保存到了私有仓库中。