Docker 如何设置自动重启
时间: 2024-06-07 18:02:51 浏览: 215
Docker 可以通过添加 `--restart` 标志来设置容器自动重启。该标志允许您指定在容器退出时如何重新启动它。下面是 `--restart` 标志的几个选项:
1. `no`:默认选项,不重启容器
2. `always`:无论退出代码是什么,始终重启容器
3. `on-failure`:仅在退出代码非零时重启容器
4. `unless-stopped`:除非手动停止容器,否则始终重启容器
例如,要将名为 `my_container` 的容器设置为自动重启,您可以运行以下命令:
```
docker run --restart=always my_container
```
如果您想在已经运行的容器上设置自动重启,您可以使用以下命令:
```
docker update --restart=always my_container
```
相关问题
设定时间docker容器自动重启
在Docker中,通常容器会在应用或服务崩溃时自动重启。如果你希望无论容器内部运行的服务是否崩溃,容器都能在特定时间自动重启,可以通过一些额外的脚本或工具来实现这个功能。
一个简单的方法是使用`crontab`结合`docker`命令来定时重启容器。首先,你需要编写一个脚本,这个脚本会检查容器的状态,并在需要的时候重启容器。然后,你可以将这个脚本设置为定时任务执行。
以下是实现该功能的基本步骤:
1. 编写一个Shell脚本,脚本内容大致如下:
```bash
#!/bin/bash
# 检查容器是否在运行
container_name="你的容器名"
# 如果容器不在运行,则启动容器
if ! docker inspect -f '{{.State.Running}}' "$container_name" > /dev/null 2>&1; then
docker start "$container_name"
fi
```
2. 将这个脚本保存到一个文件中,比如`restart_container.sh`。
3. 设置Cron定时任务,以root用户的身份编辑crontab文件:
```bash
sudo crontab -e
```
4. 添加一行定时任务来定期执行你的脚本。例如,如果你想每天凌晨3点自动检查并重启容器,可以添加如下行:
```bash
0 3 * * * /path/to/restart_container.sh > /dev/null 2>&1
```
确保将`/path/to/restart_container.sh`替换为你的脚本实际的路径。
5. 保存并退出编辑器,Cron将自动加载新的定时任务。
需要注意的是,这种方法并不是Docker官方推荐的做法,因为Docker原生的容器重启策略已经很强大,通常用于处理大多数的自动重启需求。如果容器内部的服务应该在出错后自行重启,那么应该在容器内或容器镜像中进行设置,而不是依赖外部脚本来实现。
docker设置容器自动启动
要设置Docker容器自动启动,可以按照以下步骤:
1. 使用docker run命令启动容器时,添加--restart=always参数,例如:
```
docker run --restart=always image_name
```
这将使Docker容器在启动时自动重启。
2. 使用systemd或upstart等系统工具来管理Docker容器的启动。可以创建一个systemd或upstart服务文件,将其放置在/etc/systemd/system或/etc/init目录中,然后使用systemctl或service命令启动和管理服务。
3. 使用Docker Compose来管理多个容器的启动顺序和依赖关系。可以在Docker Compose文件中添加restart选项,例如:
```
version: '3'
services:
web:
image: nginx
restart: always
```
这将使Docker Compose在启动时自动重启容器。
注意:以上方法仅适用于Linux系统。如果您使用的是Windows或Mac,请参考相关文档来设置自动启动。
阅读全文