docker容器如何重新启动?

docker容器如何重新启动?,docker,containers,Docker,Containers,例如,当docker容器有100个进程正在运行时,我们使用docker restart container name重新启动容器,docker如何重新启动所有这100个进程 它是否会存储所有流程详细信息并重新启动它们 编辑: 以下是我想回答的具体问题: 启动容器后,我使用docker exec-it container name bash登录容器,并启动一些后台进程。然后我退出容器,执行docker重新启动或停止,然后执行启动。我会让那些手动启动的进程自动重新运行吗?Docker以内部格式存储所

例如,当docker容器有100个进程正在运行时,我们使用
docker restart container name
重新启动容器,docker如何重新启动所有这100个进程

它是否会存储所有流程详细信息并重新启动它们

编辑:

以下是我想回答的具体问题:


启动容器后,我使用
docker exec-it container name bash登录容器,并启动一些后台进程。然后我退出容器,执行
docker重新启动
停止
,然后执行
启动
。我会让那些手动启动的进程自动重新运行吗?

Docker以内部格式存储所有上下文、变量等。要查看Docker对容器的了解,可以运行Docker inspect并了解容器的内部情况

试着跑步
docker-inspect--format='{{.GraphDriver.Data.LowerDir}}'容器\u-Id

它将为您提供存储容器数据的路径。但是,您需要root访问权限才能打开该文件夹

用外行的话说,Docker重启是:Docker停止,然后是Docker 开始


Docker以内部格式存储所有上下文、变量等。要查看Docker对容器的了解,可以运行Docker inspect并了解容器的内部情况

试着跑步
docker-inspect--format='{{.GraphDriver.Data.LowerDir}}'容器\u-Id

它将为您提供存储容器数据的路径。但是,您需要root访问权限才能打开该文件夹

用外行的话说,Docker重启是:Docker停止,然后是Docker 开始


首先,根据中的指导原则,在一个容器中运行100个进程听起来不太好。只是需要记住的东西;如果它对你有用,那没关系

如果这100个进程是容器启动过程的一部分,那么在重启之后,您将让它们再次运行。这完全取决于您的容器应该做什么,以及如何做,即您的
入口点在做什么

重启
是一个
停止
,然后是一个
启动
。所以我想你的电脑会有一个非常松散的相似之处。重新启动后,它将运行您拥有的启动程序,例如网络管理等。但它不会重启你的浏览器,除非你明确地连接你的操作系统


如果,作为容器运行的一部分,文件被写入磁盘,那么在重新启动后,您将在磁盘上保存它们。这也是您可能不应该利用的东西,除非它真的适合您的用例。这是因为容器本来就是这样的。

首先,根据中的指导原则,容器中运行100个进程听起来不太好。只是需要记住的东西;如果它对你有用,那没关系

如果这100个进程是容器启动过程的一部分,那么在重启之后,您将让它们再次运行。这完全取决于您的容器应该做什么,以及如何做,即您的
入口点在做什么

重启
是一个
停止
,然后是一个
启动
。所以我想你的电脑会有一个非常松散的相似之处。重新启动后,它将运行您拥有的启动程序,例如网络管理等。但它不会重启你的浏览器,除非你明确地连接你的操作系统


如果,作为容器运行的一部分,文件被写入磁盘,那么在重新启动后,您将在磁盘上保存它们。这也是您可能不应该利用的东西,除非它真的适合您的用例。这是因为容器应该是。Docker容器有一个主进程<代码>docker restart
执行两项操作:

  • 它相当于
    docker stop
    。它将SIGTERM发送到其主进程(仅限);如果在10秒内没有终止,它将发送SIGKILL。如果主进程仍有子进程
  • 它相当于
    docker start
    。在已经存在的容器中,它运行容器的命令,该命令通过连接其入口点和命令列表构建

  • 请注意,这两者都集中在一个流程上。如果该流程是一个专门的流程管理器,比如supervisord,那么
    docker stop
    序列将有希望使主管优雅地停止其管理的每个流程,这样您就没事了。如果它是一个shell脚本,启动一系列后台进程并忽略它们,那么它们将在没有任何警告的情况下被杀死。类似地,如果主容器进程知道如何启动其子进程,那么
    docker start
    将导致再次发生这种情况,但是如果它是一个交互式shell,并且您手动启动了后台进程,则它们将丢失


    Docker没有任何类型的“快照”机制。一般的模型是容器总是从一个干净和已知的状态开始,并且可以从那里重建它们所需要的任何东西。与再次尝试
    docker启动
    相比,
    docker rm
    停止的容器和
    docker运行一个新容器更适合此模型。

    docker容器有一个主进程<代码>docker restart
    执行两项操作:

  • 它相当于
    docker stop
    。它将SIGTERM发送到其主进程(仅限);如果在10秒内没有终止,它将发送SIGKILL。如果主进程仍有子进程
  • 它相当于
    docker start
    。在已经存在的容器中,它运行容器的命令,该命令通过连接其入口点和命令列表构建
  • 请注意,这两者都集中在一个流程上。如果这个过程