为什么基于 ubuntu 的容器不能从 docker-compose 文件运行,当它适用于类似的 nginx 容器时?

时间:2021-04-09 09:13:12

标签: docker docker-compose

我尝试使用 docker-compose 文件而不是长命令行来运行 docker 容器。

我想运行基于 ubuntu:latest 的 docker-compose 文件。容器已创建但无法运行。

version: "3.9"

services:

  ubuntu:
    image: ubuntu:latest
    container_name: nginx_from_scratch3
    ports:
     - "80:80"

但在我尝试添加我的 docker-compose 文件行之前

command: bash

并注意到变化。我认为运行容器后可以继续工作。但这并没有发生。

但另一方面,如果我使用 nginx 镜像,一切都可以完美运行。

version: "3.9"

services:

nginx1:
  image: nginx
  container_name: nginx_from_scratch4
  ports:
    - "80:80"

为什么 docker-compose 文件对 nginx 镜像有效,而对 ubuntu 镜像无效。

1 个答案:

答案 0 :(得分:0)

如果里面的任务完成,Docker 容器就会退出。因此,当您运行 nginx 时,它会自动启动 nginx 并使其保持活动状态。至于ubuntu,没有任何任务可以继续运行,容器立即结束。所以如果你想让它活着,即使它没有任何工作:添加 tail -f,像这样:

version: "3.9"
services:
  ubuntu:
    image: ubuntu
    command: tail -F anything

执行 docker container ps 后,您将看到它正在运行。

你可以用

移动到它
docker exec -it container_name bash