Docker容器立即退出
使用Docker容器立即退出,docker,dockerfile,Docker,Dockerfile,使用 docker run-it-v/root/apache-cassandra-3.9:/root/apache-cassandra-3.9--name=cassan_8 cassan_8 但立即退出,事件中没有错误。 图像是从dockerfile创建的 [root@ip-10-0-1-186~]#cat Dockerfile 从centos开始:6 运行yum安装-y httpd 运行yum安装-y centos发布scl 运行yum安装-y python27 运行yum安装-y java-
docker run-it-v/root/apache-cassandra-3.9:/root/apache-cassandra-3.9--name=cassan_8 cassan_8
但立即退出,事件中没有错误。
图像是从dockerfile创建的
[root@ip-10-0-1-186~]#cat Dockerfile
从centos开始:6
运行yum安装-y httpd
运行yum安装-y centos发布scl
运行yum安装-y python27
运行yum安装-y java-1.8.0-openjdk
添加apache-cassandra-3.9/bin/cassandra/usr/local/bin
添加cassandra.sh/usr/local
运行chmod 755/usr/local/cassandra.sh
暴露7000 7001 7199 9042 9160
WORKDIR/root/apache-cassandra-3.9/bin
CMD[“/usr/local/cassandra.sh”]
您使用的是
cassandra
作为入口点,但也将其发送到后台:
/root/apache-cassandra-3.9/bin/cassandra -R & >> naresh.txt
因此,该行立即返回。对于Docker,一旦命令完成,容器就完成了它的目的,因此,容器被关闭
防止这种情况的可能办法:
- 通过省略
(假设cassandra一直在前台运行并且没有分叉)使cassandra保持在前台&
- 在
的末尾添加另一个永远不会返回的命令(一个好的候选命令是cassandra.sh
)tail-f
- 用
waitpid
/root/apache-cassandra-3.9/bin/cassandra -R & >> naresh.txt
childPID=$!
wait $childPID
(我从中窃取了这个想法)您使用
cassandra
作为入口点,但您也将其发送到后台:
/root/apache-cassandra-3.9/bin/cassandra -R & >> naresh.txt
因此,该行立即返回。对于Docker,一旦命令完成,容器就完成了它的目的,因此,容器被关闭
防止这种情况的可能办法:
- 通过省略
(假设cassandra一直在前台运行并且没有分叉)使cassandra保持在前台&
- 在
的末尾添加另一个永远不会返回的命令(一个好的候选命令是cassandra.sh
)tail-f
- 用
waitpid
/root/apache-cassandra-3.9/bin/cassandra -R & >> naresh.txt
childPID=$!
wait $childPID
(这个想法是我从别人那里偷来的)