鉴于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 国际许可协议 进行许可。转载请注明原作者与文章出处。