首页 > 解决方案 > 使用 docker compose 在后台运行 ubuntu 容器

问题描述

我可以使用以下 docker 命令运行 docker 容器:

docker run -it  ubuntu /bin/bash

现在我正在尝试使用 docker-compose 来做到这一点:

version: "3"
services:
  ubuntu:
    container_name: ubuntu
    image: ubuntu
    restart: on-failure
    command: "/bin/bash"

现在当我这样做时:

 docker-compose up -d

可以看到 docker 容器立即启动和退出。

我试着查看日志:

docker logs b8 //b8 is container id

但是没有错误日志。

如何使用 docker 让 ubuntu 容器在后台运行。(我在 windows 上使用 docker,linux 版本)

标签: dockerdocker-composeubuntu-18.04

解决方案


这个是正常的。

您正在使用bashas 命令启动一个 ubuntu 容器(因此是根进程)。问题是要让 bash 保持活力,您需要将其与终端连接。这就是为什么当你想在容器中获取bash 时,你使用-ti你的命令:

docker container exec -ti [my_container_id] bash

因此,如果您想让您的 ubuntu 容器保持活动状态并且不想将其附加到终端,那么您必须使用一个可以保持活动状态的进程,只要您愿意。
下面是一个示例,sleep infinity作为您的主要流程

version: "3"
services:
  ubuntu:
    container_name: ubuntu
    image: ubuntu
    restart: on-failure
    command: ["sleep","infinity"]

在此示例中,您的容器将无限期地保持运行。


推荐阅读