使用docker-compose安装harbor教程&&运维记录

安装过程

参考官方文档:Harbor docs | Harbor Installation and Configuration

这里不做赘述,主要说一下配置部分,有如下几个配置需要自定义:

# hostname:当前服务的域名配置
hostname: harbor.xxx.com
http:
  port: 80
https:
  # https port for harbor, default is 443
  port: 443
  # The path of cert and key files for nginx
  certificate: /path/tls/hostname.crt
  private_key: /path/tls/hostname.key

# 这玩意可以自定义,也可以用默认的密码
harbor_admin_password: Demo@password_123

# The default data volume
# 指定数据持久化的本地存储路径 - 关键
data_volume: /path/harbor/data

log:
  local:
    # The directory on your host that store log
    # 日志的持久化本地存储路径
    location: /path/harbor/log

# 其他配置暂且不需要,有需要后续在添加、更新就行。
  • 注意:如果没有tls证书,可以将https部分注释掉,但是在使用的时候需要将harbor的hostname添加至本地docker服务的信任列表。 

安装命令:

# 安装命令
bash ./install.sh   # 这是最简化安装

#插件全安装 - 镜像安全、漏洞扫描、helm chart仓库,都装上吧!
sudo ./install.sh --with-notary --with-trivy --with-chartmuseum

基础运维操作

单纯重启

# Stop Harbor.
# 记得带上 -v,卸载volumes
docker-compose down -v
 
# Restart Harbor.
docker-compose up -d

更新tls证书

# 单独停止nginx对应的service服务(参见docker-compose.yml)
docker-compose stop proxy
 
# 删除容器,同时清理挂载的volumes
docker-compose rm -v proxy
 
# 替换对应的tls证书
# 参考harbor.yml内容
 
# 根据新配置重新生成各类资源和配置
./prepare --with-notary --with-trivy --with-chartmuseum
 
# 构建并启动服务
docker-compose up -d proxy

BUG修复

docker版本低导致DB文件读写问题,DB服务restart失败

# 报错内容:
Error response from daemon: configured logging driver does not support reading.

# 如果读取DB日志的话,会看到DB文件读写之类的问题
#解决方法有三个:

1、删除DB文件夹,重建整个harbor服务(仅限于还没有使用的服务),治标不治本,下次重启依然会有问题, 
   baidu上绝大部分都是这个解决方案.....垃圾!
2、修改docker-compose.yaml文件,在postgresql服务中增加privileged: true  :也OK,不想升级docker的同学可以采用此方案,在对应service下添加此配置之后,重启对应服务即可。
3、还有一个类似方法,将DB文件整体做个权限修改:chown 999:999 XXX,这个就有点冒险了,在数据备份了的情况下可以试试,不建议。

docker升级步骤

# 原有环境处理:
# 停止当前环境的相关容器
# 停止当前docker服务
systemctl stop docker
yum remove docker  docker-common docker-selinux docker-engine
yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce
sudo systemctl start docker
systemctl enable docker
systemctl status docker

你可能感兴趣的:(容器,docker,运维,容器,1024程序员节)