docker 容器老是自启
时间: 2023-11-28 18:45:30 浏览: 58
以下是解决docker容器老是自启的方法:
1. 批量关闭自启
```shell
docker update --restart=no $(docker ps -a -q)
```
2. 针对单个容器实时设置
```shell
docker update --restart=no <CONTAINER ID>
```
3. 配置docker-compose文件,禁止容器自启
```yaml
version: '3'
services:
web:
image: nginx
restart: no
```
相关问题
docker容器开机自动启动设置
### 设置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服务以及将其设为默认引导加载项的一部分,从而保障后续任何基于它的自动化流程能够顺利运作。
docker容器自启动
要使Docker容器在启动时自动启动,您可以使用以下方法之一:
1. 使用`--restart`标志:在运行`docker run`命令时,可以添加`--restart`标志,并指定希望容器在退出时重新启动的策略。例如,使用`--restart=always`将容器配置为总是在退出时重新启动。以下是一个示例命令:
```
docker run --restart=always <image>
```
这将使容器在Docker守护程序启动时自动启动,并在每次退出后重新启动。
2. 使用Docker Compose:如果您使用Docker Compose来管理容器,可以在Compose文件中为服务设置`restart`属性。以下是一个示例:
```yaml
version: '3'
services:
myservice:
image: <image>
restart: always
```
在此示例中,将服务的`restart`属性设置为`always`将使容器自动启动并在退出时重新启动。
无论您选择哪种方法,都会确保容器在Docker守护程序启动时自动启动,并在退出时重新启动。
阅读全文
相关推荐















