Harbor 容器在 docker 启动时无法自启动
问题描述
harbor容器不能在docker启动时全部自启动
Harbor containers fail to start on docker startup
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fa39d6232ab6 goharbor/nginx-photon:v2.13.0 "nginx -g 'daemon of…" 7 minutes ago Restarting (1) 43 seconds ago nginx
796223a22f94 goharbor/harbor-jobservice:v2.13.0 "/harbor/entrypoint.…" 7 minutes ago Restarting (2) 43 seconds ago harbor-jobservice
307f9a092bae goharbor/harbor-core:v2.13.0 "/harbor/entrypoint.…" 7 minutes ago Exited (128) About a minute ago harbor-core
85c554aee3cf goharbor/harbor-registryctl:v2.13.0 "/home/harbor/start.…" 7 minutes ago Up About a minute (healthy) registryctl
e9bf06c549de goharbor/harbor-db:v2.13.0 "/docker-entrypoint.…" 7 minutes ago Exited (128) About a minute ago harbor-db
ae8ac4f03cdf goharbor/harbor-portal:v2.13.0 "nginx -g 'daemon of…" 7 minutes ago Exited (128) About a minute ago harbor-portal
c696ddf877f2 goharbor/registry-photon:v2.13.0 "/home/harbor/entryp…" 7 minutes ago Up About a minute (healthy) registry
bea784a28a5e goharbor/redis-photon:v2.13.0 "redis-server /etc/r…" 7 minutes ago Up About a minute (healthy)
解决办法
有两种,二选一
(推荐)1.创建 systemd 服务(请参阅下面的配置)。使用 systemd 启动所有 Harbor Docker 容器。
[Unit]
Description=Harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
Documentation=http://github.com/vmware/harbor
[Service]
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/local/bin/docker-compose -f {{ harbor_install_path }}/harbor/docker-compose.yml up
ExecStop=/usr/local/bin/docker-compose -f {{ harbor_install_path }}/harbor/docker-compose.yml down
[Install]
WantedBy=multi-user.target
配置示例
[root@server ~]# docker compose version
Docker Compose version v2.27.1
[root@server ~]# cat /etc/systemd/system/harbor.service
[Unit]
Description=Harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
Documentation=http://github.com/vmware/harbor
[Service]
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/libexec/docker/cli-plugins/docker-compose -f /home/harbor/docker-compose.yml up
ExecStop=/usr/libexec/docker/cli-plugins/docker-compose -f /home/harbor/docker-compose.yml down
[Install]
WantedBy=multi-user.target
2.在 docker-compose.yml
文件中配置日志记录驱动程序选项 mode: “non-blocking”
(每个容器都配置)
logging:
driver: "syslog"
options:
syslog-address: "tcp://127.0.0.1:1514"
tag: "registry"
mode: "non-blocking"