如何保持Docker容器运行状态?

4

这是我的简单Docker文件

FROM java:8
EXPOSE 4000

现在,当我使用以下命令运行它时:

sudo docker run --name hello dockerfile

当我执行docker ps -a时,它显示容器的状态为退出。我只想保持此容器运行,以便我可以ssh进入此容器并可能传输文件等。看起来容器主要用于运行服务器,我是正确的吗?

2个回答

5

根据我的经验,这个奇怪的事实并不能保证无限的生命周期。容器在重启后不会继续运行(但它应该会)。 - user1472229
你的容器是否设置了“always”的重启策略? - user2915097

4
这很简单。因为您的容器没有持久运行的内容,所以发生的情况是:该容器启动,没有任务可执行并停止。
您可以采取以下措施:
1. 以交互模式和附加tty运行容器。这样,在容器启动后,您的控制台会进入该容器,并让它运行一个tty,这是有事可做的,并防止容器停止。然后,您可以在该容器内工作,例如安装应用程序。完成此操作后,您的工作将在停止容器后丢失。但是,您可以对该容器运行docker commit,从而使更改持久化。
示例代码:
docker run -i -t --name hello dockerfile 2. 在dockerfile中添加有用的内容。例如,将应用程序复制到容器中,并提供在容器启动时运行的CMD命令。完成此操作后,容器将持续时间与CMD命令相同。如果该命令是服务器或守护程序应用程序,则容器将永久持续,并且只有在停止它时才会停止。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接