运行 在后台使用 docker 组合的 ubuntu 容器
Running a ubuntu container in background using docker compose
我可以使用以下 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 容器 运行ning。
(我在 windows 上使用 docker,linux 版本)
这很正常。
您正在使用 bash
作为命令启动一个 ubuntu 容器( 因此是根进程 )。事情是保持 bash 活动 你需要用终端连接它。这就是为什么当你想在容器中 get a 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"]
在这个例子中,您的容器将无限期地保持 运行。
我可以使用以下 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 容器 运行ning。 (我在 windows 上使用 docker,linux 版本)
这很正常。
您正在使用 bash
作为命令启动一个 ubuntu 容器( 因此是根进程 )。事情是保持 bash 活动 你需要用终端连接它。这就是为什么当你想在容器中 get a 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"]
在这个例子中,您的容器将无限期地保持 运行。