一、首先要安装docker
二、然后安装docker-compose
compose简介
Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。
Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
为何需要compose?
Harbor在物理机上部署是非常难的,而为了简化Harbor的应用,Harbor官方直接把Harbor做成了在容器中运行的应用,而且这个容器在Harbor中依赖类似redis、mysql、pgsql等很多存储系统,所以它需要编排很多容器协同起来工作,因此VMWare Harbor在部署和使用时,需要借助于Docker的单机编排工具(Docker compose)来实现。
# 删除原来不能执行的/usr/local/bin/docker-compose
sudo rm /usr/local/bin/docker-compose
# 下载安装docker-compose sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 添加权限 sudo chmod +x /usr/local/bin/docker-compose
然后执行docker-compose version 或docker compose version 查看docker-compose版本看是否安装成功
个人建议还是去github上下载最新版的docker-compose Releases · docker/compose · GitHub
否者会出现报错例如:docker-compose up
启动容器报“no configuration file provided: not found”,配置文件未找到。其中最常见的原因是没有在有docker-compose.yaml的路径下执行该命令。(然而压根儿也找不到docker-compose.yaml文件或docker-compose.yml文件)同类型还有
ERROR:
Can't find a suitable configuration file in this directory or any
parent. Are you in the right directory?Supported filenames: docker-compose.yml, docker-compose.yaml
- 可以先在对应路径中执行find . -name "docker-compose.yml",确保确实存在该文件
- 通过docker-compose -version查询docker-compose版本,有时候是因为版本过低找不到文件
docker-compose工具命令
docker-compose up //启动所有服务,默认读取名为docker-compose.yml文件
docker-compose up -d //在后台启动所有服务
docker-compose build //在运行项目前先构建项目所需镜像
docker-compose ps //列出本地docker-compose.yml文件里定义的正在运行的所有服务
docker-compose stop //停止所有服务,如果服务没有停止,可以使用docker-compose kill强制杀死服务
docker-compose start //开启所有服务
docker-compose rm //删除所有服务
三、安装harbor
1.下载harbor压缩包
wget https://github.com/goharbor/harbor/releases/download/v2.4.3/harbor-offline-installer-v2.4.3.tgz
若下载速度过慢,可以尝试去官网下载,之后再上传到服务器Releases · goharbor/harbor (github.com)
2.把harbor解压至/usr/local目录下
tar xf harbor-offline-installer-v2.4.3.tgz -C /usr/local/
3.进入harbor目录
cd /usr/local/harbor/
4.把配置文件模板拷贝一份出来
cp harbor.yml.tmpl harbor.yml
5.查看当前主机的主机名全称
hostname
6.编辑harbor.yml文件
vim harbor.yml
//这里的主机名换成本机的主机名或IP地址
//把https这行及子行都注释掉,因为没有弄ssl证书加密
7.启动harbor
./install.sh
出现报错
Network harbor_harbor Error 0.0s
failed to create network harbor_harbor: Error response from daemon: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables --wait -t nat -I DOCKER -i br-0d7e5e7656ca -j RETURN: iptables: No chain/target/match by that name.
说明docker网关是关闭的,docker network无法对新的container进行网络配置,重启一下docker就行。
解决办法:重启docker服务 systemctl restart docker
再次运行./install.sh 成功运行docker ps查看是否成功运行
查看harbor的登录账号密码
cat harbor.yml
登录成功:80端口
上传镜像:
新建项目
1.使用docker登录到harbor
docker login 192.168.30.172
admin(harbro 用户名)
password(harbor密码)
报错:说拒绝连接,可能harbor容器没有正常运行可以执行docker ps 进行查看,若没有运行,可通过docker-compose up 进行拉起,若docker-compose也无法正常使用,可直接进入harbor(/usr/local/harbor) 执行./install.sh 重新拉取镜像创建容器
其他主机要登录到harbor,不能直接登录,会出现报错。
需要更改配置文件vi /etc/docker/daemon.json
systemctl daemon-reload
systemctl restart docker
之后即可连接成功。
上传镜像到harbor仓库
1先要给镜像打上标签
docker tag kicbase/stable:v0.0.39 192.168.30.172/library/minikube:v0.0.39
上传到harbor仓库
docker push 192.168.30.172/library/minikube:v0.0.39