Docker - 使用 docker-compose 配置的某些容器上出现无法连接到总线错误

Docker - 使用 docker-compose 配置的某些容器上出现无法连接到总线错误

我有 3 个集群要部署在使用 docker-compose 配置的容器上,每个集群有 3、4 和 14 个节点。所有容器都是从 Rocky Linux 8 的同一映像构建的,并且具有 SystemD,上面运行着多个服务。每个 docker-compose.yml/sys/fs/cgroup:/sys/fs/cgroup:ro都添加到卷中。但是,无论我配置每个集群的顺序如何,我都只能在最先启动的 14 个容器上运行 SystemD。序列中的第 15 个容器以及之后的每个其他容器都会启动,但没有运行服务,并且 systemctl 给出错误,即:

# systemctl status sshd
Failed to connect to bus: No such file or directory

当我使用 docker exec 进入容器时,我可以看到 cgroup 挂载已到位,但ps aux仅显示:

# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  89084  7556 ?        Ss   13:00   0:00 /usr/sbin/init
root         6  0.0  0.0  21324  3796 pts/0    Ss   13:03   0:00 bash
root        23  0.0  0.0  53952  3848 pts/0    R+   13:15   0:00 ps aux

而好的容器则有更多:

# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0 171716 10104 ?        Ss   13:00   0:00 /usr/sbin/init
root        28  0.0  0.0  89464 13432 ?        Ss   13:00   0:00 /usr/lib/systemd/systemd-journald
rpc         30  0.0  0.0  67196  5596 ?        Ss   13:00   0:00 /usr/bin/rpcbind -w -f
root        32  0.0  0.0 202388 14172 ?        Ss   13:00   0:00 /usr/sbin/sssd -i --logger=files
root        45  0.0  0.0  78648  7028 ?        Ss   13:00   0:00 /usr/sbin/sshd -D [email protected],[email protected],aes256-ctr
root        47  0.0  0.0 209484  7108 ?        Ssl  13:00   0:00 /usr/sbin/rsyslogd -n
root        49  0.0  0.0 106028  3708 ?        Ssl  13:00   0:00 /usr/sbin/gssproxy -D
dbus        61  0.0  0.0  76488  5424 ?        Ss   13:00   0:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation 
root        62  0.0  0.0 212680 15516 ?        S    13:00   0:00 /usr/libexec/sssd/sssd_be --domain implicit_files --uid 0 --gid 0 --logger=files
root        63  0.0  0.1 224344 40632 ?        S    13:00   0:00 /usr/libexec/sssd/sssd_nss --uid 0 --gid 0 --logger=files
root        67  0.0  0.0  90364  7420 ?        Ss   13:01   0:00 /usr/lib/systemd/systemd-logind
root       645  0.3  0.0  30364  3796 pts/0    Ss   13:15   0:00 bash
root       663  0.0  0.0  62992  3976 pts/0    R+   13:15   0:00 ps aux

当我尝试在损坏的容器上启动 dbus-daemon 时出现此错误:

# /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
dbus-daemon[24]: Failed to start message bus: No socket received.

最让我困惑的是两件事:

  1. 它曾经在 CentOS 7 图像上运行良好,没有出现此类问题。
  2. 可以正确配置的容器的硬限制为 14 个。

回复 #2。如果我减少正在运行的容器数量,则损坏的容器在重新启动后会使 SystemD 工作,因此似乎在某处设置了限制,但我还找不到在哪里,因此任何有助于解释或解决此问题的评论或答案都将不胜感激。

相关内容