美文网首页
运行镜像成容器后,容器自动退出

运行镜像成容器后,容器自动退出

作者: 晨曦_zdq | 来源:发表于2020-05-07 11:18 被阅读0次
1. 问题描述

使用dockerfile构建一个新的镜像,运行镜像成容器后大概三秒容器退出

2. 原因

Docker容器后台运行,就必须有一个前台进程.

我构建的镜像在执行CMD [ "/usr/local/emqttd/bin/emqttd", "start" ] 后,emqttd进程以后台的方式运行,程序启动命令执行完毕后,前台任务没有了,容器也就退出了

3. 解决

将程序的启动命令写入脚本里,脚本里添加一个一直在前台执行的任务:tail -f /dev/null
运行镜像时用后台方式:# docker run -itd local/emqttd1:latest

[root@aaa emqttd]# cat Dockerfile 
FROM daocloud.io/library/centos:7.7.1908
ENV mydir /usr/local
WORKDIR $mydir
ADD emqttd.tar.gz /usr/local/
ADD start.sh /
CMD [ "/bin/sh", "-c", "/start.sh" ]

[root@aaa emqttd]# cat start.sh 
#!/bin/bash
/usr/local/emqttd/bin/emqttd start
tail -f /dev/null

# cat Dockerfile2 
FROM daocloud.io/library/centos:7.7.1908

ENV mydir /usr/local
WORKDIR $mydir
ADD emqttd.tar.gz /usr/local/
ADD start.sh /
EXPOSE 18083
CMD  /usr/local/emqttd/bin/emqttd start && tail -F /dev/null

相关文章

  • 运行镜像成容器后,容器自动退出

    1. 问题描述 使用dockerfile构建一个新的镜像,运行镜像成容器后大概三秒容器退出 2. 原因 Docke...

  • Docker命令

    镜像命令 运行并进入容器:docker run -it mysql 容器命令运行容器 退出容器 删除容器 启动和停...

  • 01 常用docker命令

    镜像命令 容器命令 退出容器 启动并停止容器 进入当前正在运行的容器 删除容器命令

  • 《Docker 从入门到实践》笔记

    镜像 从 Docker 镜像仓库获取镜像 以镜像为基础启动并运行一个容器 退出容器 列出已经下载下来的镜像 查看镜...

  • Docker清理none镜像和Exited容器

    1、虚悬镜像与Exited退出状态容器 1、Exited表示退出的容器,一般情况在运行容器的时候不设定 -- re...

  • docker 常用命令

    docker镜像命令 查看容器运行状态 容器命令 把正在运行的容器直接导出成tar包的镜像文件 导入镜像归档文件到...

  • docker常见命令

    docker镜像命令 查看容器运行状态 容器命令 把正在运行的容器直接导出成tar包的镜像文件 导入镜像归档文件到...

  • Docker常用命令

    启动容器 退出容器 删除容器 启动和停止容器 进入当前正在运行的容器 从容器内拷贝文件到宿主机上 查看镜像变更历史...

  • 2019-07 第四、八章 容器的创建、启

    镜像是静止的。 容器是动态的,状态分为:创建、运行、退出、挂起、被删除 运行: A.新的容器: doc...

  • docker容器相关命令

    查看运行容器 查看所有的容器(包含运行和退出) 启动容器 启动容器有二种方式,一种是基于镜像新建一个容器并启动,一...

网友评论

      本文标题:运行镜像成容器后,容器自动退出

      本文链接:https://www.haomeiwen.com/subject/mzmoghtx.html