如何保持docker集装箱运行?

这是我简单的泊坞窗文件

FROM java:8 EXPOSE 4000 

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

 sudo docker run --name hello dockerfile 

并做docker ps -a它显示状态退出。 我只是想保持这个容器的运行,所以我可以SSH入这个容器,可能传输文件等。 它看起来像容器主要用来运行服务器我是否正确?

你至less可以用docker run -d hello sleep infinity你的容器, docker run -d hello sleep infinity但是如RenéM所说,你应该在你的CMD或者入口点放入你的Dockerfile,参见doc

https://docs.docker.com/engine/reference/builder/#cmd

https://docs.docker.com/engine/reference/builder/#entrypoint

这真是简单。 因为你的容器运行时间不长。 会发生什么,这个容器启动,无所事事,停止。

你可以做的是:

  1. 以交互模式运行容器与附加的tty。 这样你的控制台在启动后就进入了容器,让他运行一个tty,这是一个可以做的事情,并且预防容器停止运行。 然后你可以在这个容器内工作,就像安装一个应用程序一样 这样做你的工作将在停止容器后丢失。 但是你可以在该容器上运行docker commit,这会使你的更改持久化。

docker运行-i -t –name你好docker文件

  1. 用一些有用的东西来增强你的dockerfile。 就像将应用程序复制到容器中一样,并提供一个CMD命令来运行,当容器启动时。 在此之后,容器将持续只要您的CMD命令运行。 如果该命令是一个服务器或deamon应用程序,该容器将永远持续下去,只有当你停止时才会停止。