Docker 运行 Docker 撰写文件中的选项?

Docker Run Options in a Docker Compose File?

我有一道 Docker Compose 101 问题。我可以用 docker run:

启动一个简单的 Docker 容器
me@host1:~/dc$
me@host1:~/dc$ sudo docker run -dit --name myContainer 54c9d81cbb44
60d254728f0a763bdda3078bd1c708176ca21e3eced475cb7e2c3edc7859a12c
me@host1:~/dc$
me@host1:~/dc$ sudo docker ps
CONTAINER ID   IMAGE          COMMAND   CREATED         STATUS         PORTS     NAMES
60d254728f0a   54c9d81cbb44   "bash"    2 minutes ago   Up 2 minutes             myContainer
me@host1:~/dc$

简单!那么,我将上面的内容翻译成一个 docker-compose.yaml 文件:

version: "2"
services:
   myService:
      container_name: myContainer2
      image: 54c9d81cbb44

当我运行上述文件时,容器立即退出:

me@host1:~/dockerCompose$
me@host1:~/dockerCompose$ sudo docker-compose up
Creating myContainer2 ...
Creating myContainer2 ... done
Attaching to myContainer2
myContainer2 exited with code 0
me@host1:~/dockerCompose$
me@host1:~/dockerCompose$
me@host1:~/dockerCompose$ sudo docker ps  --all
CONTAINER ID   IMAGE          COMMAND   CREATED          STATUS                      PORTS     NAMES
110f648fadbe   54c9d81cbb44   "bash"    14 seconds ago   Exited (0) 13 seconds ago             myContainer2
60d254728f0a   54c9d81cbb44   "bash"    6 minutes ago    Up 6 minutes                          myContainer
me@host1:~/dockerCompose$

(即使我尝试在没有 myContainer 运行ning 的情况下启动 myContainer2 时也会发生上述情况。)

那么是什么原因呢?我很想说 docker 运行 "-dit" 选项在这里有所不同;这是我在 docker rundocker-compose 版本之间看到的唯一区别。我一直在谷歌搜索“How to set docker 运行 options in docker-compose file”一个小时,但提取的信息是不适用于此处。我显然缺少一些基本的东西。有人看到什么了吗?谢谢。

如果您将 stdin_opentty 设置为 true,它会一直运行。这些等同于 it 选项。

version: "2"
services:
   myService:
      container_name: myContainer2
      image: 54c9d81cbb44
      stdin_open: true
      tty: true

启动容器 docker-compose up -d 到 运行 它分离。