如何继续已退出的Docker容器

时间:2014-02-21 08:05:16

标签: docker

考虑:

docker run -it centos /bin/bash

我按 Ctrl + D 退出。

我想继续运行这个容器,但我发现我不能。

唯一的方法是

docker commit `docker ps -q -l` my_image
docker run -it my_image /bin/bash

我是对的吗?有更好的方法吗? (我使用的是docker 0.8.0。)

13 个答案:

答案 0 :(得分:221)

您可以在退出后重新启动现有容器,并且您的更改仍然存在。

docker start  `docker ps -q -l` # restart it in the background
docker attach `docker ps -q -l` # reattach the terminal & stdin

答案 1 :(得分:114)

docker start -a -i `docker ps -q -l`

说明:

docker start启动容器(需要名称或ID)
-a附在容器上 -i互动模式
docker ps列出容器
-q仅列出容器ID
-l仅列出最后创建的容器

答案 2 :(得分:39)

使用:

docker start $(docker ps -a -q --filter "status=exited")

这将启动所有处于退出状态的容器。

docker exec -it <container-id> /bin/bash

这将连接到特定容器。

答案 3 :(得分:13)

如果您想继续使用一个已知名称的一个Docker容器:

docker start  `docker ps -a -q --filter "name=elas"`

答案 4 :(得分:11)

如果要使用多个易于记忆的命令进行操作:

  1. 列出已停止的容器:

docker ps -a

  1. 复制要附加到的容器的名称或容器ID,并以以下内容启动容器:

docker start -i <name/id>

-i标志告诉docker将其附加到容器的标准输入。

如果容器不是以要连接的交互式外壳启动的,则需要执行此操作以运行外壳:

docker start <name/id>
docker exec -it <name/id> /bin/sh

/bin/sh是通常用于基于高山的图像的外壳。

答案 5 :(得分:8)

如果您有一个命名容器,则可以通过运行

启动它
docker container start container_name

其中 container_name 是创建容器时必须提供的容器的名称。如果容器未命名,您可以使用容器ID替换container_name。可以通过运行以下命令找到容器ID:

docker ps -a

答案 6 :(得分:6)

请按照以下步骤操作:

  1. 运行以下命令可查看所有容器服务正在运行还是已停止。使用选项-a可以看到容器也停止了

    docker ps -a
    
  2. 然后通过container_id或容器标签名称启动docker容器

    docker start <CONTAINER_ID> or <NAMES>
    

    enter image description here

    从上图说,容器ID 4b161b302337
    所以要运行的命令是

    docker start 4b161b302337
    
  3. 一个人可以验证容器是否正在运行

    docker ps
    

答案 7 :(得分:1)

按名称

sudo docker start bob_the_container

或通过ID

sudo docker start aa3f365f0f4e

这将重新启动已停止的容器,使用-i附加容器的STDIN 或代替-i,您可以附加到容器会话(如果使用-it运行)

sudo docker attach bob_the_container

答案 8 :(得分:0)

docker start `docker ps -a | awk '{print $1}'`

这将启动所有处于“已退出”状态的容器

答案 9 :(得分:0)

这些命令将适用于任何容器(不仅是最后退出的容器)。 即使您的系统重新启动后,这种方式仍然可以使用。 为此,这些命令将使用“容器ID”。

步骤:

  1. 使用此命令列出所有docker,并记下要重新启动的容器的容器ID: docker ps -a

  2. 使用容器ID启动容器: docker start <container_id>

  3. 附加并运行容器: docker attach <container_id>

注意:我已经在linux系统上尝试过

希望这对某人有帮助!

答案 10 :(得分:0)

使用 --privileged 标志运行您的容器。

docker run -it --privileged ...

答案 11 :(得分:0)

对于那些在 2021 年及以后来到这里的人,以下命令将执行已接受的答案将在一行中执行的操作。

<html>
<head>
     <meta charset="UTF-8"/>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"
          type="text/css" media="all"/>
    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Amatic+SC%3A400%2C700%7CLato%3A400%2C700%2C400italic%2C700italic&amp;ver=4.9.8"
          type="text/css" media="screen"/>
      <link rel="stylesheet" href="zorbet.css" type="text/css" media="screen"/>
    <link rel="stylesheet" href="print.css" type="text/css" media="print"/>

<title>Pass to comann form!</title>
</head>

<body>

    <h2 style="text-align: center; color: orange;">Pass to comann: </h2>
    <table boder="0" width="1000">
    <form method = "GET" action ="totalclient.php">
        <tr><td>
        Full Name : <input type = "text" name="full_name"></br></td></tr>
        <tr><td>
        Flavour : <input type="text" name="flavour"></br></td></tr>
        <tr><td>
        Number of cups(qty) : <input type="Number" name = "num_of_cups"></br></td></tr>
        <tr><td>
        Address <input type="text" name = "h_add"></br></td></tr>
        <tr><td>
        Number : <input type = "Number" name = "c_num"></br></td></tr>
        <tr><td>
        <input type="submit" name="submit" value="add"></br></td></tr>

<tr><td>
        <a href="insertxml.php">
        <input type="button" style="color: red;" value="Delete to comman"></button></a></td></tr>
    </form>
</table>
</body>
</html>

答案 12 :(得分:0)

如果您只想启动一个状态为“已退出”的容器,只需输入:

sudo docker start container_name

没有sudo。 See more

docker start container_name

如果容器名称不起作用,请将名称替换为容器 id