如何使用 docker compose 运行 -it?

9 docker docker-compose

docker run -idt ubuntu:16.04, 之后我们可以使用docker ps来查看容器的启动情况。

但是如果使用 docker compose as next 和 docker-compose up,我们可以看到docker ps找不到容器,从docker ps -a我们可以看到它退出了。

version: '2'
services:
  me:
    image: 'ubuntu:16.04'
Run Code Online (Sandbox Code Playgroud)

问题:我们如何实现-idt使用 docker compose?

Von*_*onC 11

ubuntu 镜像的默认CMD是一个 bash:

# overwrite this with 'CMD []' in a dependent Dockerfile
CMD ["/bin/bash"]
Run Code Online (Sandbox Code Playgroud)

从“使用 Docker Compose 的交互式 shell ”,看看添加这些行是否有帮助:

stdin_open: true
tty: true
Run Code Online (Sandbox Code Playgroud)

在 docker-compose 文件中,我们可以添加command标签为

command: /bin/bash
Run Code Online (Sandbox Code Playgroud)


Rai*_*inb 5

docker-compose run {image} /bin/bash它将已经是交互式的

对于 docker-compose up,您不应该以交互方式运行它,而应该将其作为服务运行。

您也可以通过 docker-compose 组合它们,使用 docker ps 找到它们的镜像,然后执行它们。如果您的映像正在加载守护进程(服务器),则这将起作用,如果您的映像执行脚本然后退出,它也会退出映像,从而无法进入它。请参阅这个问题解释如何做到这一点。