能!
启动容器的时候,可以指定容器在某些可预测(docker engine重启)与不可预测(机器宕机重启)时的重启行为,利用这个功能,我们可以放心当重启docker engine,也不用担心机器重启导致应用不可用。
这个神奇的功能是“restart polices”,定义了当容器因为某种原因停掉之后的行为,有四种police:
- no,无论什么时候容器因为什么原因宕掉,都不重启;
- on-failure,如果容器因为某种错误宕掉,就重启;
- always,与no相反,无论什么时候容器因为什么原因宕掉,都会尝试重启;
- unless-stopped,除了执行过docker stop,否则都会重启。
咋用啊
很简单,可以在docker run中指定,也可以在compose文件中指定:
如我启动一个nginx:docker run -d nginx:1.17.2-alpine,那么其restart policy就是默认值no,不会重启;如果:docker run -d --restart always