RHEL8服务器重启后Podman MySQL容器无法自启,如何设置非临时状态?
解决Podman MySQL容器重启服务器后自动启动的问题
方法1:给容器设置重启策略
如果容器还没启动,或者可以重新启动,直接在启动命令里加--restart参数:
- 要让容器随服务器重启自动启动,用
--restart always:
podman run -d --name mysql-container --restart always -e MYSQL_ROOT_PASSWORD=你的密码 -p 3306:3306 mysql:latest
- 要是只想在容器异常退出时重启,换成
--restart on-failure
如果已经有现成的停止状态容器,直接更新它的重启策略就行:
podman update --restart always mysql-container
方法2:注册成systemd服务(生产环境更稳妥)
RHEL8用的是systemd,把容器做成systemd服务是更可靠的开机自启方式:
- 生成对应的systemd unit文件(如果用root用户运行容器,去掉
--user参数):
podman generate systemd --name mysql-container --files --restart-policy always
执行完当前目录会多出一个container-mysql-container.service文件
- 把这个文件移到systemd的用户配置目录(root用户的话移到
/etc/systemd/system/):
mv container-mysql-container.service ~/.config/systemd/user/
- 重新加载systemd的配置:
systemctl --user daemon-reload
- 设置开机自启并立刻启动服务:
systemctl --user enable --now container-mysql-container.service
- 检查服务状态确认没问题:
systemctl --user status container-mysql-container.service
关于storage.conf的说明
你看的/etc/containers/storage.conf是管容器存储驱动的,和开机自启完全没关系,不用在这上面折腾。容器的临时状态(ephemeral)是启动时加了--rm参数导致的,退出就删;你的容器还能在存储目录找到,说明没加--rm,只是没设置重启策略而已。
内容的提问来源于stack exchange,提问作者DaeYoung
相关产品推荐
相关产品推荐

