gpt4 book ai didi

linux - Docker 中的 TCP、UDP 和 HTTP 服务器在启动容器后立即停止?

转载 作者:太空宇宙 更新时间:2023-11-04 10:46:48 25 4
gpt4 key购买 nike

我将在 java docker 容器中托管由 Java 开发的 TCP、UDP 和 HTTP 服务器。

dockerfile 中的所有内容都是服务器应用程序和用于运行服务器的 bash 文件的复制命令。

但是,服务器在运行容器几秒钟后停止了?

我使用以下命令运行容器:

docker run -d -p 8000:8000 -p 2701:2701 --name app_test_con_1 app_test_img_1

这是 dockerfile 中的引导命令:CMD ["/workspace/one_click.sh"]

有没有办法让服务器永远运行?因为如果我在主机操作系统中使用相同的 .sh 文件运行它,它就会这样做;当然只要终端没有关闭。

最佳答案

Docker 容器将在前台进程完成后立即退出。这意味着如果您的 one_click.sh 脚本执行类似 service apache2 start 的操作然后退出,容器将立即退出。我们的大多数 Java 图像都有以下一些变体来防止这种情况:

CMD service apache2 start && /bin/bash

使用 Docker 的首选方式是每个容器 1 个进程,如果您使用它来运行带有服务的完整虚拟机,那么您需要解决它。

关于linux - Docker 中的 TCP、UDP 和 HTTP 服务器在启动容器后立即停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32780389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com