Harbor 容器在 docker 启动时无法自启动

容器

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" 

Issue:https://github.com/goharbor/harbor/issues/7008