如果你想在 Docker 容器中运行一个应用,并且希望容器在启动时自动设置进程不会退出,即使没有在 Dockerfile
中明确配置 CMD
或 ENTRYPOINT
,有几种方法可以实现这一点:
1. 使用长期运行的主进程
通常,容器需要一个长期运行的主进程来保持活跃状态。如果你的应用本身是一个长期运行的服务(比如 Flask Web 应用),它会自然保持容器运行。确保你的应用在 Dockerfile
中被正确启动,即使没有用 CMD
显式指定。例如,你可以在代码中直接启动 Flask 应用。
2. 使用 tail -f /dev/null
如果没有明确的长期运行服务,一种常见的技巧是在容器中运行一个永不结束的命令来保持容器活跃。这通常通过在 CMD
或 ENTRYPOINT
脚本中添加以下命令完成:
如果你想在 Docker 容器中运行一个应用,并且希望容器在启动时自动设置进程不会退出,即使没有在 Dockerfile
中明确配置 CMD
或 ENTRYPOINT
,有几种方法可以实现这一点:
1. 使用长期运行的主进程
通常,容器需要一个长期运行的主进程来保持活跃状态。如果你的应用本身是一个长期运行的服务(比如 Flask Web 应用),它会自然保持容器运行。确保你的应用在 Dockerfile
中被正确启动,即使没有用 CMD
显式指定。例如,你可以在代码中直接启动 Flask 应用。
2. 使用 tail -f /dev/null
如果没有明确的长期运行服务,一种常见的技巧是在容器中运行一个永不结束的命令来保持容器活跃。这通常通过在
CMD
或ENTRYPOINT
脚本中添加以下命令完成:
podman run -d -p 5000:5000 my-flask-app tail -f /dev/null
启动成功
截图是中文乱码,容器不支持中文,安装即可:
sudo apt-get install -y fonts-wqy-zenhei