docker 官方地址
1. harbor的概述
harbor是VMware公司开源的企业级docker registry项目。主要是实现为用户去迅速搭建一个docker registry服务。
提供了可视化UI界面,提供了多个项目的镜像权限管理及控制功能。安装后可以体验下。
Harbor的每个组件都是以Docker 容器的形式构建的,使用docker - compose来对它进行部署。用于部署Harbor 的docker- compose模板位于 harbor/ docker-compose.yml。
2. harbor 的核心组件
1、Proxy: Harbor 的Registry、UI、Token 服务等组件,都处在nginx 反向代理后边。该代理将来自浏览器、docker clients 的请求转发到后端不同的服务上。
2、Registry:负责储存Docker 镜像,并处理Docker push/pull 命令。
由于要对用户进行访问控制,即不同用户对Docker镜像有不同的读写权限,Registry 会指向一个Token 服务,强制用户的每次Docker pull/push 请求都要携带一个合法的Token,Registry会通过公钥对Token 进行解密验证。
3、core services: Harbor的核心功能,主要提供以下3个服务
- UI (harbor-ui) :提供图形化界面,帮助用户管理Registry. 上的镜像(image) ,并对用户进行授权。
- WebHook: 为了及时获取Registry上 image状态变化的情况,在Registry上配置Webhook, 把状态变化传递给UI模块。
- Token 服务:负责根据用户权限给每个Docker push/pull 命令签发Token。 Docker 客户端向Registry 服务发起的请求,如果不包含Token, 会被重定向到Token 服务,获得Token 后再重新向Registry 进行请求。
4、Database (harbor-db) :为core services提 供数据库服务,负责储存用户权限、审计日志、Docker镜像分组信息等数据。
5、Job services:主要用于镜像复制,本地镜像可以被同步到远程Harbor实例上。
**6、Log collector (harbor-log) :负责收集其它组件的log,供日后进行分析,健康检查等 **
3.Harbor构建Docker私有仓库
1.环境准备:
CentOS7.6、docker 、docker-compose 、harbor 包。
2.安装并启动docker
1.检查内核版本,必须是3.10及以上
# yum list installed | grep docker
2、检查内核版本,必须是3.10及以上
# uname -r
3.把yum包更新到最新
# yum update
4.存在旧版本_删除旧版本
#sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
5.需要的安装包
# sudo yum install -y yum-utils
6.设置镜像的仓库
# sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
7.更新 yum安装包
# yum makecache fast
8.安装docker
# sudo yum install docker-ce docker-ce-cli containerd.io
9、启动docker
# systemctl start docker
设置开机启动docker
# systemctl enable docker
关闭docker命令
# systemctl stop docker
10、查看版本
# docker version
11、检测是否启动成功,可以使用search命令
# docker search mysql
3.安装Docker-compose
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
Compose 使用的三个步骤:
- 使用 Dockerfile 定义应用程序的环境。
- 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
- 最后,执行 docker-compose up 命令来启动并运行整个应用程
下载最新版本 docker-compose 等待自动安装。
curl -L https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
二进制文件赋可执行权限
chmod +x /usr/local/bin/docker-compose
测试下docker-compose是否安装成功: docker-compose --version
4、Harbor服务搭建及启动
1、下载Harbor安装文件
# mkdir -p /harbor
# cd /harbor/
# wget https://github.com/goharbor/harbor/releases/download/v1.10.10/harbor-online-installer-v1.10.10.tgz
# tar -zxf harbor-online-installer-v1.10.10.tgz
2、修改配置Harbor
[root@localhost harbor]# ls
harbor harbor-online-installer-v1.10.10.tgz
[root@localhost harbor]# cd harbor
[root@localhost harbor]# ls
LICENSE common common.sh docker-compose.yml harbor.yml install.sh prepare
[root@localhost harbor]# vi harbor.yml
注意:
首先要修改hostname为机器地址,使用的是http,所以https部分需要注掉。端口自定义
3、启动Harbor
在Harbor目录下
./install.sh
docker-compose up -d
注意:启动时 docker、docker-compose是正常运行状态。
修改配置文件后 ,避免修改不生效,执行:
systemctl daemon-reload
systemctl restart docker
Harbor依赖的镜像及启动服务如下:
4、访问Harbor
根据上面的配置。我这里访问 http://192.168.87.131:5100/
默认用户 和登录密码 可以从 harbor.yml 中找到,官网有个地方也有说明。可以修改中的密码。
admin Harbor12345
页面
5.docker 私有仓库的使用
1、仓库登录:
docker login -u admin -p Harbor12345 http://192.168.87.131:5100
2、制作镜像:可以是下载的镜像、通过dockerFile制作的镜像
docker pull mysql
docker build -f DockerFile
docker save -o my_image.tar my_image:latest
docker save -o images.tar image1:tag1 image2:tag2 image3:tag3
这个命令将会把名为 my_image:latest 的 Docker 镜像保存为一个名为 my_image.tar 的 tar 归档文件
docker load -i my_image.tar : 这个命令将会加载 my_image.tar 文件中的镜像到 Docker 环境中。
3、然后为该镜像打上新的标签,标签格式为:Harbor地址/项目名/镜像名称:镜像标签。如:192.168.87.131:5100/test/action:2403086585
docker tag 1d01459ee952 192.168.87.131:5100/test/action:2403086585
4、将镜像上传到私有仓库
docker push 192.168.87.131:5100/test/action:2403086585
5、下载私有仓库的镜像
docker pull 192.168.87.131:5100/test/action:2403086585
版权归原作者 近咫尺 所有, 如有侵权,请联系我们删除。