Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker compose分离模式不工作_Docker_Docker Compose - Fatal编程技术网

Docker compose分离模式不工作

Docker compose分离模式不工作,docker,docker-compose,Docker,Docker Compose,如何在分离模式下运行docker compose 我正在尝试在分离模式下运行docker compose,但它在运行后将退出,但我可以使用“docker run”命令在分离模式下运行相同的图像 使用“docker Run”命令运行图像(在分离模式下工作) 下面是“docker ps-a”命令的输出 CONTAINER ID IMAGE COMMAND CREATED STATUS

如何在分离模式下运行docker compose

我正在尝试在分离模式下运行docker compose,但它在运行后将退出,但我可以使用“docker run”命令在分离模式下运行相同的图像

  • 使用“docker Run”命令运行图像(在分离模式下工作)

    下面是“docker ps-a”命令的输出

    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
    d84edc987359        ubuntu:16.04        "/bin/bash"         4 seconds ago       Up 3 seconds                                   romantic_albattani
    
  • 使用“docker compose up-d”命令运行相同的映像(在分离模式下不工作)

    下面是我的docker-compose.yml文件

    version: '3'
    services:
    ubuntu:
        image: ubuntu:16.04
    
    “docker compose ps”命令输出

             Name              Command    State    Ports 
    ----------------------------------------------------
    composetesting_ubuntu_1   /bin/bash   Exit 0 
    
更新:在docker-compose.yml文件中使用tty:true参数时,如下所示


然后控制台将不执行任何命令,就像我键入“ls-l”命令控制台将不响应一样。

我只需将tty:true添加到我的docker-compose.yml中

    version: '2'
    services: 
      ubuntu:
        image: ubuntu:16.04
        tty: true 
Docker版本1.12.5,构建7392c3b


docker compose version 1.7.1,build 0a9ab35

以上@fewtile42的答案对于我的问题是正确的。但仅使用“tty:true”参数用户将无法执行任何命令,因此,如果用户还希望执行或与控制台交互,则还应使用'stdin\u open:true'参数

version: '2'
services: 
  ubuntu:
    image: ubuntu:16.04
    tty: true 
    stdin_open: true

是的,但它是如何工作的。这里的“tty:true”也不是文档的一部分。非常感谢:)@AnandSuthar该链接指向撰写版本3格式-请注意,此示例为版本2;该文档确实包括
tty
@AnandSuthar并回答您的问题,
tty:true
只是模拟一个tty,与
docker run-t
所做的相同(如您在问题中的示例中所用)。当tty存在时,如果处于分离模式,外壳将保持运行;如果没有tty,它将找不到其他操作并退出。但在连接到容器后,我无法执行任何类似“ls-l”的命令。Whit不会显示任何结果:(
    version: '2'
    services: 
      ubuntu:
        image: ubuntu:16.04
        tty: true 
version: '2'
services: 
  ubuntu:
    image: ubuntu:16.04
    tty: true 
    stdin_open: true