Rob*_*air 3 docker docker-compose
我想在容器停止运行时自动重新启动容器(而不是运行图像)。
我看到的所有示例都提到了docker run,但我只想重新启动以前创建的容器。
我尝试将以下内容添加到 yml 文件中的服务定义中,但它没有执行任何操作:
restart: always
Run Code Online (Sandbox Code Playgroud)
我想restart: always没有做任何事情,因为您需要运行,docker-compose up以便它将创建一个具有此策略的新容器。Withrestart: always容器在任何情况下都会在未运行时重新启动。这不仅是在失败之后,而且是在重新启动之后。
使用重启策略是解决此问题的推荐方法,但它需要您重新创建容器一次才能应用该策略。如果您甚至不能容忍一次娱乐(有一些方法可以保留数据:请参阅docker cp, docker commit),您可以使用 cron 脚本:
* * * * * docker ps | grep -q container_name || docker start container_name
Run Code Online (Sandbox Code Playgroud)
每隔一分钟,这将检查容器是否已启动,如果未启动则重新启动它。
powershell 的片段:
if ( docker ps | Select-String -quiet container_name ) {} else { docker start container_name }
Run Code Online (Sandbox Code Playgroud)
小智 5
你可以试试这个docker_restart_policy
\n\xef\xbf\xbc\nversion: "3.9"\nservices:\n redis:\n image: redis:alpine\n deploy:\n restart_policy:\n condition: on-failure\n delay: 5s\n max_attempts: 3\n window: 120s\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
29634 次 |
| 最近记录: |