登录服务器导致 podman 容器重新启动

问题描述 投票:0回答:1

似乎每当我登录到我的家庭服务器时,podman 容器就会重新启动:

❯ ssh [email protected]
[email protected]'s password:
Web console: https://homeserver.localdomain:9090/ or https://192.168.1.116:9090/

Register this system with Red Hat Insights: insights-client --register
Create an account or view all your systems at https://red.ht/insights-dashboard
Last login: Wed Nov 22 21:38:24 2023 from ::ffff:192.168.1.111
[podman@homeserver ~]$ podman ps
CONTAINER ID  IMAGE                                                 COMMAND               CREATED        STATUS                   PORTS                                                                                                                                             NAMES
6a4b5a1ca375  docker.io/louislam/uptime-kuma:latest                 node server/serve...  2 seconds ago  Up 3 seconds (starting)  0.0.0.0:3001->3001/tcp                                                                                                                            uptime-kuma
3b97cda03874  lscr.io/linuxserver/unifi-network-application:latest                        2 seconds ago  Up 2 seconds (starting)  0.0.0.0:8080->8080/tcp, 0.0.0.0:8443->8443/tcp, 0.0.0.0:8843->8843/tcp, 0.0.0.0:8880->8880/tcp, 0.0.0.0:3478->3478/udp, 0.0.0.0:10001->10001/udp  systemd-unifi_network_application
a6b35bd7ccd7  docker.io/pihole/pihole:latest                                              2 seconds ago  Up 3 seconds (starting)  0.0.0.0:53->53/udp, 0.0.0.0:53->53/tcp, 0.0.0.0:80->80/tcp                                                                                        systemd-pihole
e45ca3fde4bf  docker.io/library/mongo:4.4.25                        mongod                2 seconds ago  Up 2 seconds (starting)  0.0.0.0:27017->27017/tcp                                                                                                                          unifi_mongodb

昨天 17:15 左右,当我通过 cockpit 登录时,也发生了同样的情况:所有容器在我登录后立即创建并重新启动。

我使用 Quadlet 文件来创建 systemd 服务,这是一个示例文件:

[Unit]
Description=UniFi MongoDB
After=local-fs.target

[Container]
Image=docker.io/mongo:4.4.25
ContainerName=unifi_mongodb
Environment=MONGO_INITDB_ROOT_USERNAME=root
Secret=unifi_mongodb_root_password,type=env,target=MONGO_INITDB_ROOT_PASSWORD
Network=unifi_network_application.network
Volume=unifi_mongodb_data:/data/db
PublishPort=27017:27017
HealthCmd=CMD-SHELL mongo --eval 'db.runCommand({ping:1})'
HealthInterval=30s
HealthRetries=2
HealthOnFailure=kill

[Service]
Restart=on-failure

[Install]
WantedBy=multi-user.target default.target

我不确定后者是否配置错误或者我遗漏了其他内容。

containers systemd podman
1个回答
0
投票

您的容器不会重新启动,它们只是在登录时启动因为它们在您注销时停止。(使用

journalctl -b
查看系统日志可能会揭示这一点。)

您使用 Quadlet 生成 user 服务,而不是系统服务(因此

systemctl --user
),并且这些服务由“用户服务管理器”实例管理,该实例在用户登录时自动启动并在注销时停止。

使用

loginctl enable-linger $USER
让您的用户服务管理器在启动时启动并保持运行直到系统关闭。

© www.soinside.com 2019 - 2024. All rights reserved.