docker 容器运行后不退出

启动容器后,通过docker ps -a 查看结果容器退出了。

1.启动容器

方案一

docker run -d <image_name> tail -f /dev/null

docker run -d configserver tail -f /dev/null
或者
docker run -d configserver /bin/bash ping 127.0.0.1
或者
docker run -d configserver /bin/bash -c "while true;do echo hello docker;sleep 1;done"

方案二

1.使用交互式启动,使主进程不退出

docker run -i [CONTAINER_NAME or CONTAINER_ID]

2.使用后台模式和tty选项,使主进程不退出

docker run -dit [CONTAINER_NAME or CONTAINER_ID]

  # -i interactive=true 开启 stdin
  # -t tty=true 分配会话终端
 # -d 后台方式

   这种方式需要在启动容器时创建/bin/bash的进程

  dockerfile文件中:

  

创建容器:

docker run  --name=docker_nginx --cap-add NET_ADMIN -dit docker_nginx

2.DockerFile

方式1: 

      修改dockerfile创建一个守护进程方式实现

# dockerfile文件中设置后台执行shell脚本或者可执行jar
cmd shell.sh && tail -f /dev/null
或者cmd shell.sh &
或者 cmd shell.sh > shello.log
或者 cmd java -jar xxx.jar
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果Docker容器运行后立即退出,有几种可能的原因和解决方法。 一种常见的原因是容器启动后没有应用在后台运行进程,并且没有任何终端连接到容器中。在这种情况下,容器任务完成后会立即退出。为了使容器继续运行,可以使用一个无限循环或者一个守护进程在容器中。可以通过在Dockerfile或者docker run命令中添加合适的命令来实现。比如,可以在Dockerfile中使用CMD或者ENTRYPOINT指令来指定一个脚本,脚本的最后包含一个无限循环来阻止容器退出。 另一种可能的原因是容器启动后遇到错误而退出。这可能是由于配置问题、依赖项缺失等原因导致的。要解决这个问题,可以通过查看容器的日志输出来分析错误原因。可以使用docker logs命令来查看容器的日志输出,并查找有关错误的提示。一旦找到错误原因,可以尝试通过更新配置文件、安装依赖项等方式来解决问题。 最后,容器可能会因为资源限制或者配置不当而被操作系统或者Docker守护程序终止。这可能是由于内存不足、CPU使用过高、磁盘空间不足等原因导致的。要解决这个问题,可以尝试增加容器的资源限制,比如分配更多的内存、增加CPU配额等。另外,还可以检查Docker守护程序的配置,确保它的资源限制设置正确。 综上所述,要使Docker容器持续运行,我们需要确保容器中有一个持续运行的进程,以及适当的配置和资源限制。通过分析容器的日志输出,检查配置文件和资源限制,可以找到并解决导致容器退出的问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值