2024-09-21  2024-09-21    859 字  2 分钟

鉴于Harbor官方的安装无比混乱, 因此记录如何将有用的东西提取出来, 最终形成data目录, config目录, docker-compose.yml文件.

  • 修复因端口问题导致的docker login失败
  • 删除log容器和网络
  • 增加容器名称前缀

按照官方教程进行前期操作

下载执行官方配置脚本, 配置harbor.yml, 注意配置和记录端口, 密码和data目录

执行install.sh生成data目录, common目录和docker-compose.yml

修改目录位置

data目录最好一开始就填写正确位置, 这样后续就不需要修改, 如果需要更改则需要修改docker-compose.yml文件

config目录就在common目录中, 修改方法和data目录修改方法一致, 直接修改docker-compose.yml文件即可

更改log记录方式

官方将容器运行产生的log都存放在了文件里, 我不喜欢它占用主机1514端口, 且不需要记录log, 因此直接删除

log记录由下面这个容器提供, 直接删除

 1  log:
 2    image: goharbor/harbor-log:v2.11.1
 3    container_name: harbor-log
 4    restart: always
 5    cap_drop:
 6      - ALL
 7    cap_add:
 8      - CHOWN
 9      - DAC_OVERRIDE
10      - SETGID
11      - SETUID
12    volumes:
13      - /var/log/harbor/:/var/log/docker/:z
14      - type: bind
15        source: ./common/config/log/logrotate.conf
16        target: /etc/logrotate.d/logrotate.conf
17      - type: bind
18        source: ./common/config/log/rsyslog_docker.conf
19        target: /etc/rsyslog.d/rsyslog_docker.conf
20    ports:
21      - 127.0.0.1:1514:10514
22    networks:
23      - harbor

删除容器后, 还需要修改引用到此容器的容器

删除依赖

如果depends_on中只有log, 那就整个删除, 如果还有其他的, 则只删除log这行

1    depends_on:
2      - log

删除logging

将下面这个样式的直接删除

1    logging:
2      driver: "syslog"
3      options:
4        syslog-address: "tcp://localhost:1514"
5        tag: "registryctl"

删除网络

由于删除log后, 网络不再需要, 因此可以删除, 也就是下面这个

1    networks:
2      - harbor

最后删除networks配置

1networks:
2  harbor:
3    external: false

修复docker login端口

进入config目录执行如下命令, 查询引用到端口的地方(请将11191端口换成自己定义的端口)

1root@xxx:xxxx/common/config# grep -rn "11191"
2core/env:8:EXT_ENDPOINT=https://dockerhub.akvicor.com:11191
3nginx/nginx.conf:147:      return 308 https://$host:11191$request_uri;

修改后应该是这样

1core/env:8:EXT_ENDPOINT=https://dockerhub.akvicor.com
2nginx/nginx.conf:147:      return 308 https://$host$request_uri;

删除默认的container_name

删除所有容器的container_name, 方便安装时统一添加前缀

安装

执行如下命令安装并添加前缀, 这样每个容器的名字都会有个dockerhub前缀, 这样就不会与其他容器冲突了

1docker compose -p dockerhub up -d

除另有声明外本博客文章均采用 知识共享 (Creative Commons) 署名 4.0 国际许可协议 进行许可转载请注明原作者与文章出处