如何保持docker容器的正常运行



这是我的简单docker文件

FROM java:8
EXPOSE 4000

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

sudo docker run --name hello dockerfile

并且进行CCD_ 1,它将状态显示为已退出。我只想让这个容器保持正常运行,这样我就可以ssh到这个容器中,并可能传输文件等等。看起来容器主要用于运行服务器,我说得对吗?

你至少可以用docker run -d hello sleep infinity这样的东西来保持你的容器,但正如RenéM所说,你应该在Dockerfile中放一些在CMD或ENTRYPOINT中要做的事情,请参阅文档

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

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

这真的很简单。因为您的容器运行的时间不长。发生的情况是,这个容器启动,没有任何事情可做,然后停止。

你能做的是:

  1. 在附加tty的交互模式下运行容器。通过这种方式,您的控制台在容器启动后进入容器,并让他运行tty,这是要做的事情,并阻止容器停止。然后您可以在这个容器中工作,就像安装应用程序一样。如果这样做,您的工作将在停止容器后丢失。但是您可以在该容器上运行docker-commit,这将使您的更改持久化

docker run-i-t-name你好dockerfile

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

相关内容

最新更新