podman/docker重启后自动运行容器
背景
今天发现云主机 oom 重启之后podman 的容器没有自动运行,大概看了一下,是因为 Podman 不试用 Daemon 守护进城,所以 podman 启动后不自动启动容器。
这里试用 systemd 进行自启动管理。
方案#
可以使用podman generate systemd生成并管理
生成 systemd 文件#
# podman generate systemd --restart-policy=always -t 1 --name -f vaultwarden
WARN[0000] Container ad911cfea63127a434d135106d89ccbe5158d169a5f787596cbc93968d84e676 has restart policy "always" which can lead to issues on shutdown: consider recreating the container without a restart policy and use systemd's restart mechanism instead
/root/container-vaultwarden.service
这里有提示使用restart=always可能会导致 pod 关闭失败。
配置 systemd#
将文件复制到/etc/systemd/system/目录,并使能生效
# mv /root/container-vaultwarden.service /etc/systemd/system/
# systemctl daemon-reload
# systemctl enable container-vaultwarden
Created symlink /etc/systemd/system/default.target.wants/container-vaultwarden.service → /etc/systemd/system/container-vaultwarden.service.
至此,容器重启后的 pod 会通过 systemd自动拉起并运行。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统