似乎每当我登录到我的家庭服务器时,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
我不确定后者是否配置错误或者我遗漏了其他内容。
您的容器不会重新启动,它们只是在登录时启动,因为它们在您注销时停止。(使用
journalctl -b
查看系统日志可能会揭示这一点。)
您使用 Quadlet 生成 user 服务,而不是系统服务(因此
systemctl --user
),并且这些服务由“用户服务管理器”实例管理,该实例在用户登录时自动启动并在注销时停止。
使用
loginctl enable-linger $USER
让您的用户服务管理器在启动时启动并保持运行直到系统关闭。