2021-05-17-podman添加开机自启

podman因为不像docker那样有daemon进程,启动容器不再支持 restart 参数,对于系统重启后,需要自启的容器需要手动做一些配置,如通过 systemd 来管理。

podman 提供了命令生成 systemd 配置文件。前提是容器已经创建。

# 先看下容器名称,最后一个参数  
 [root@bastion ~]# podman ps
CONTAINER ID  IMAGE                           COMMAND               CREATED       STATUS             PORTS                   NAMES
396f8e6b7bf3  docker.io/library/registry:2.6  /etc/docker/regis...  4 months ago  Up 11 minutes ago  0.0.0.0:5000->5000/tcp  mirror-registry

# systemd 后面跟容器名称  

[root@bastion ~]# podman generate systemd mirror-registry 
# container-396f8e6b7bf3bb2f0b92f0f0073da54c68b17905fd4456156e9cbcae035bba38.service
# autogenerated by Podman 1.6.4
# Mon May 17 16:43:07 CST 2021

[Unit]
Description=Podman container-396f8e6b7bf3bb2f0b92f0f0073da54c68b17905fd4456156e9cbcae035bba38.service
Documentation=man:podman-generate-systemd(1)

[Service]
Restart=on-failure
ExecStart=/usr/bin/podman start 396f8e6b7bf3bb2f0b92f0f0073da54c68b17905fd4456156e9cbcae035bba38
ExecStop=/usr/bin/podman stop -t 10 396f8e6b7bf3bb2f0b92f0f0073da54c68b17905fd4456156e9cbcae035bba38
KillMode=none
Type=forking
PIDFile=/var/run/containers/storage/overlay-containers/396f8e6b7bf3bb2f0b92f0f0073da54c68b17905fd4456156e9cbcae035bba38/userdata/conmon.pid

[Install]
WantedBy=multi-user.target

生成配置文件,并移到目录 /usr/lib/systemd/system/ 并设置开机自启

测试一下,要确保此容器停止不影响业务。

第一次systemctl stop 没有成功,可能和当前还没有 PIDFile 有关,手动 stop 一下。 然后再测试 start, stop ,系统重启

重启系统测试下能不能自启动

Last updated