docker容器设置自动重启,设置容器启动就执行某个服务(脚本启动)

这里我们容器里面有个服务,并写了一个脚本 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脚本

  • 4
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要保证Docker容器启动顺序,可以通过Docker Compose或Docker Swarm等编排工具来实现。 在Docker Compose中,可以使用`depends_on`关键字来指定容器启动的依赖关系。例如,如果一个容器需要先启动另一个容器,可以在docker-compose.yml文件中添加以下配置: ``` version: '3' services: service1: image: 'service1:latest' restart: always service2: image: 'service2:latest' restart: always depends_on: - service1 ``` 在上面的示例中,`service2`容器依赖于`service1`容器,因此Docker Compose会在启动`service2`之前先启动`service1`。如果`service1`容器崩溃并自动重启Docker Compose会确保在启动`service2`之前重新启动`service1`。 在Docker Swarm中,可以使用`--depends-on`参数来指定服务之间的启动顺序。例如,如果一个服务需要依赖于另一个服务,可以使用以下命令启动服务: ``` docker service create --name service1 --replicas 1 --restart-condition any service1:latest docker service create --name service2 --replicas 1 --restart-condition any --depends-on service1 service2:latest ``` 在上面的示例中,`service2`服务依赖于`service1`服务,因此Docker Swarm会在启动`service2`之前先启动`service1`。如果`service1`服务崩溃并自动重启Docker Swarm会确保在启动`service2`之前重新启动`service1`。 当容器内部有Feign调用其他容器时,可以通过在容器启动时等待所依赖的容器就绪来保证容器启动顺序。可以在启动脚本中使用`curl`等命令检查所依赖的服务是否已经启动。只有当所依赖的服务启动并响应时,才启动当前容器。这样可以确保容器启动顺序,并且避免Feign调用失败的问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值