Podman 容器设置开机启动

本文详细介绍如何使用systemd配置Podman容器的自动启动,确保容器在服务器重启后能够按顺序自动运行。通过创建和编辑service文件,设置依赖关系,最终实现容器的开机自启。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当你使用podman的时候,已经知道他没有额外的守护进程,这个时候需要通过systemd实现容器的开机自动启动。

假设你的服务器目前已经生成了3个容器,容器的名称分别是nginx1、nginx2、nginx3。注意三个容器一定要逐个启动,否则就会报错。

1.创建service文件

cd /usr/lib/systemd/system/
touch podman-container1.service
touch podman-container2.service
touch podman-container3.service

1.1 三个service文件内容如下:

###podman-container1.service###
[Unit]
Description=Podman container1

[Service]
Type=simple
ExecStart=/usr/bin/podman start -a nginx1
ExecStop=/usr/bin/podman stop -t 10 nginx1

[Install]
WantedBy=multi-user.target
###podman-container2.service###
[Unit]
Description=Podman container2
After=network.target
After=network-online.target
After=podman-container1.service

[Service]
Type=simple
ExecStart=/usr/bin/podman start -a  nginx2
ExecStop=/usr/bin/podman stop -t 20 nginx2

[Install]
WantedBy=multi-user.target
###podman-container3.service###
[Unit]
Description=Podman container3
After=network.target
After=network-online.target
After=podman-container2.service

[Service]
Type=simple
ExecStart=/usr/bin/podman start -a nginx3
ExecStop=/usr/bin/podman stop -t 22 nginx3

[Install]
WantedBy=multi-user.target

2.设置开机启动:

systemctl enable podman-container1.service
systemctl enable podman-container2.service
systemctl enable podman-container3.service

3.重启server验证

reboot
docker ps -a

源文件也可以在这里获取:https://github.com/byygyy/linux-best-practice/blob/master/podman-auto-start.service

### 设置Docker容器在系统启动时自动运行 为了使Docker容器能够在系统启动时自动运行,通常的做法是在启动Docker服务之后配置特定的容器随系统一同启动。这可以通过`docker update`命令结合`--restart-policy`选项来实现,也可以通过定义Docker Compose文件中的重启策略。 #### 方法一:使用 `docker run` 命令指定重启策略 当首次启动容器时,在`docker run`命令中加入`--restart unless-stopped`参数可以确保该容器会在主机重新启动后自动恢复运行[^1]: ```bash docker run --name my_container --restart unless-stopped -d my_image ``` 此命令会创建并命名一个新的名为`my_container`的容器实例,并应用了一个除非被手动停止否则总是尝试重启的策略。 #### 方法二:利用 Docker Compose 文件设定重启策略 对于更复杂的多容器应用程序部署场景,则推荐采用Docker Compose的方式来进行管理。编辑`docker-compose.yml`文件,为所需的服务添加`restart: unless-stopped`属性: ```yaml version: '3' services: webapp: image: "example/webapp" restart: unless-stopped ``` 保存更改后的YAML文件并通过执行`docker-compose up -d`命令来更新服务状态,这样就能保证所描述的服务将在下次开机时自启[^3]。 请注意,上述两种方法均依赖于Docker守护进程本身已经设置开机启动的状态。如果尚未完成这项工作,则需先按照如下指令操作以开启此项功能: ```bash systemctl start docker systemctl enable docker ``` 这些命令用于立即激活Docker服务以及将其设为默认引导加载项的一部分,从而保障后续任何基于它的自动化流程能够顺利运作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值