Docker部署Harbor

191 阅读2分钟

一、部署Docker compose

为何需要compose?

Harbor在物理机上部署是非常难的,而为了简化Harbor的应用,Harbor官方直接把Harbor做成了在容器中运行的应用,而且这个容器在Harbor中依赖类似redis、mysql、pgsql等很多存储系统,所以它需要编排很多容器协同起来工作,因此VMWare Harbor在部署和使用时,需要借助于Docker的单机编排工具(Docker compose)来实现。

//下载并安装compose
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.15.0/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose

//给该二进制文件执行权限
chmod +x .docker/cli-plugins/docker-compose
cp docker-compose /usr/local/bin/docker-compose
//查看版本
docker-compose version
Docker Compose version v2.15.0

二、部署harbor

//下载harbor压缩包
[root@harbor_node01 ~]# wget https://github.com/goharbor/harbor/releases/download/v2.5.5/harbor-offline-installer-v2.5.5.tgz
//把harbor解压至/usr/local目录下
[root@harbor_node01 ~]# tar zxvf harbor-offline-installer-v2.5.5.tgz -C /usr/local/soft
//进入harbor目录
[root@harbor_node01 ~]# cd /usr/local/soft/harbor/
[root@harbor_node01 harbor]# ls
common.sh  harbor.v2.4.3.tar.gz  harbor.yml.tmpl  install.sh  LICENSE  prepare
//把配置文件模板拷贝一份出来
root@harbor_node01 harbor]# cp harbor.yml.tmpl harbor.yml
//查看当前主机的主机名全称
[root@harbor_node01 harbor]# hostname
harbor_node01.example.com
[root@harbor_node01 harbor]# vim harbor.yml
..........
hostname: harbor_node01.example.com		//这里的主机名换成本机的主机名或IP地址
.........
#https:									//把https这行及子行都注释掉,因为没有弄ssl证书加密
  # https port for harbor, default is 443
  #port: 443
  # The path of cert and key files for nginx
  #certificate: /your/certificate/path
  #private_key: /your/private/key/path
.........
//启动harbor
[root@harbor_node01 harbor]# ./install.sh
..........启动过程略.............
✔ ----Harbor has been installed and started successfully.----	 //显示此行说明启动成功!
//查看harbor运行起来的容器
[root@harbor_node01 harbor]# docker ps
//查看启用的端口
[root@harbor_node01 harbor]# ss -anlt

三、访问

地址:http://ip/account/sign-in

用户名与密码可在harbor.yml配置文件中找到,修改密码的话也在这里面改

默认用户名:admin,密码:Harbor12345

image.png

四、推送镜像

最好换一台虚拟机执行

# 使用insecure-registries参数添加http支持
vim /etc/docker/daemon.json

# 添加以下内容 ip是部署harbor主机ip,记住如果文件里有其它内容,比如阿里云镜像加速地址,记得后面跟逗号,再添加这行内容
"insecure-registries": ["192.168.232.128"] 

# 配置生效
systemctl daemon-reload
systemctl restart docker

# 登录
docker login 192.168.xx.xx (harbor服务器地址,用户名密码就是登录harbor网页的)

image.png

//修改镜像名与标签,把该镜像上传至harbor的library项目里
docker tag hello-world:latest 192.168.232.128/library/hello-world:latest

//推送
docker push 192.168.232.128/library/hello-world:latest

image.png

五、拉取镜像

需要先登录,harbor页面里有镜像的拉取命令