Docker容器运行脚本后马上就停止了


构建完一个镜像,运行了一个脚本,这个脚本会执行一个main,这个main会一直监听这个端口,但是我运行完脚本后,容器为什么会马上停止呢?
FROM xcszbdnl/boost-centos
COPY testproject.tar.gz /
RUN tar -xvf /testproject.tar.gz
WORKDIR testproject
RUN make
RUN cp ./scripts/run_booking_shale.sh ./
EXPOSE 11111
CMD 


sudo docker run -idt -p 11111:11111 4891

运行完之后netstat没有发现11111端口。
已邀请:

苦逼少侠 - 去哪儿网互联网研发工程师,docker爱好

赞同来自: xcszbdnl


command(./run_booking_shale.sh)运行完就会退出,需要卡住容器,比如用tail –f log

shlallen - DaoCloud软件工程师,合伙人

赞同来自:


容器停止,那说明容器内第一个进程结束了。你原本打算让你的脚本一直监听某端口,处于一个loop状态,但是容器内第一个进程却终止了。那说明你预期的与实际有初入了。

首先,查看进程运行日志,是一个比较好的方法。或者你也可以进入容器人为启动你的脚本,看看运行状况。

william - cSphere CEO

赞同来自:


容器进程应该运行在前台

junjun16818 - 菜bi

赞同来自:


sudo docker run --rm -it 4891 /bin/bash
先进入容器

手动执行 ./run_booking_shale.sh start 看看是否能正常启动进程

要回复问题请先登录注册