这里我们容器里面有个服务,并写了一个脚本 start.sh来启动这个服务。
但是这个容器经常挂掉,需要容器自动重启
并且需要这个脚本不需要我们手工 attach进行执行
那么就进行如下操作。
修改start.sh脚本

#!/bin/sh
/bin/serviceA start   #启动服务
/bin/bash             #保留一个终端,防止容器自动退出

使用 容器启动参数

--restart=always 

启动run的时候加上这个参数,总是启动

--restart=on-failure:10

如上是10次
还可以设置重启最大次数

–restart具体参数值详细信息:

  
       no -  容器退出时,不重启容器;

       on-failure - 只有在非0状态退出时才从新启动容器;

       always - 无论退出状态是如何,都重启容器;

好了,我们把修改完脚本的容器打成镜像后。
如下命令启动镜像

sudo docker run -d -t -v /var/cowrie:/data/ -p 22:2222 --restart=always  --name cowrie_auto xxxxx /xx.sh

这是启动容器 xxx
并且命名为 cowrie_auto
把主机 /var/cowrie 目录映射到 容器/data/目录
映射主机的22端口到容器的2222端口
并设置总是重启
最后 启动执行 xx.sh脚本

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐