修改已创建的docker容器的--restart=always参数

创建容器时没有添加参数 --restart=always ,导致的后果是:当 Docker 重启时,容器未能自动启动。

现在要添加该参数怎么办呢,方法有二:

1、Docker 命令修改

docker container update --restart=always 容器名字

实例操作如下:

[root@rabbitmq ~]# docker container update --restart=always rabbitmq 
rabbitmq
[root@rabbitmq ~]# systemctl restart docker
[root@rabbitmq ~]# docker ps 
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                                                                        NAMES
043b63bbda84        redis:5.0.5           "docker-entrypoint.s…"   46 hours ago        Up 7 seconds        0.0.0.0:7005->7005/tcp, 6379/tcp, 0.0.0.0:17005->17005/tcp                                   redis-7005
670ddcd33d91        redis:5.0.5           "docker-entrypoint.s…"   46 hours ago        Up 7 seconds        0.0.0.0:7004->7004/tcp, 6379/tcp, 0.0.0.0:17004->17004/tcp                                   redis-7004
b3785e9796c6        redis:5.0.5           "docker-entrypoint.s…"   46 hours ago        Up 7 seconds        0.0.0.0:7003->7003/tcp, 6379/tcp, 0.0.0.0:17003->17003/tcp                                   redis-7003
42f19c26df01        redis:5.0.5           "docker-entrypoint.s…"   46 hours ago        Up 8 seconds        0.0.0.0:7002->7002/tcp, 6379/tcp, 0.0.0.0:17002->17002/tcp                                   redis-7002
d7f31eec4052        redis:5.0.5           "docker-entrypoint.s…"   46 hours ago        Up 8 seconds        0.0.0.0:7001->7001/tcp, 6379/tcp, 0.0.0.0:17001->17001/tcp                                   redis-7001
874b9667b48c        redis:5.0.5           "docker-entrypoint.s…"   46 hours ago        Up 8 seconds        0.0.0.0:7000->7000/tcp, 6379/tcp, 0.0.0.0:17000->17000/tcp                                   redis-7000
b045b37d244d        rabbitmq:management   "docker-entrypoint.s…"   2 days ago          Up 8 seconds        4369/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, 15671/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp   rabbitmq
[root@rabbitmq ~]# 

2、直接改配置文件

经测试后无效,修改配置文件后,启动容器后,该参数有自动变成了no,修改不生效

首先停止容器,不然无法修改配置文件
配置文件路径为:/var/lib/docker/containers/容器ID
在该目录下找到一个文件 hostconfig.json ,找到该文件中关键字 RestartPolicy
修改前配置:"RestartPolicy":{"Name":"no","MaximumRetryCount":0}
修改后配置:"RestartPolicy":{"Name":"always","MaximumRetryCount":0}
最后启动容器。
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: docker run --restart=always 的意思是在容器退出时自动重启容器,并且在Docker守护进程启动时启动容器。这个命令可以保证容器的持续运行,即使容器出现故障或崩溃也会自动重启。 ### 回答2: docker run --restart=always 是docker命令中的一个参数,作用是设置在docker服务异常退出时自动重启容器。 在容器运行过程中,可能会出现一些问题导致容器异常退出,如应用程序或服务崩溃、内存溢出、网络故障等。如果不进行设置自动重启,这就需要手动对容器进行重启,否则服务将会中断,造成不必要的麻烦和时间浪费。 使用 --restart=always 参数可以在容器运行过程中自动重启,保证服务的不间断提供,提高了容器的可靠性和稳定性。无论是容器异常退出还是物理机或虚拟机故障,都能自动重启,保证应用可以及时恢复。同时,该参数还能让开发者更加便捷地进行容器的管理,提高了开发效率。 例如,使用命令 docker run --restart=always -d nginx ,启动nginx容器,如果在运行过程中nginx服务异常退出,docker服务会自动重启该容器,保证服务可以及时恢复,提高了应用程序的可靠性和稳定性。 总之,使用 docker run --restart=always 参数可以保证服务的可靠性,提高容器的稳定性和可靠性,为应用程序的开发和部署提供了保障。 ### 回答3: docker run --restart=always是一条Docker命令,用于在容器启动时自动重启容器。当容器运行出现故障或其他问题导致容器停止,自动重启容器可以确保应用程序始终处于运行状态,保持高可用性。 该命令中的--restart参数有多个选项,其中最常见的是always。使用该选项时,Docker会在容器异常退出时自动重启容器,直到手动停止容器。 为了实现容器的自动重启,Docker会在后台运行一个重启策略。当Docker检测到容器退出时,该策略会尝试根据预定义的规则自动重启容器。 在使用Docker部署应用程序时,特别是在生产环境中,使用--restart=always是一个很好的实践,可以确保应用程序在任何情况下都可以正常运行。 总之,Docker的--restart选项是一个很实用的功能,能够确保应用程序的高可用性和稳定性。在使用该选项时,需要根据实际情况选择适当的重启策略,以确保应用程序的恢复能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值