docker - 使用 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 版本)
解决方案
这个是正常的。
您正在使用bash
as 命令启动一个 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"]
在此示例中,您的容器将无限期地保持运行。
推荐阅读
- android - W/System:忽略标头 X-Firebase-Locale,因为它的值为 null
- reactjs - 我想在 Form.Item Ant 设计中处理错误状态。如何处理禁用按钮?
- sql - 获取用户和普通朋友的 SQL 查询
- groovy - 如何在詹金斯 delarative piepline 中获取会话数据
- windows - 传递参数时,带有 docker 命令的 Bash 脚本未运行 | 环境:带有 docker 桌面的 WSL2
- php - PHP / 高级自定义字段 (ACF) - 删除重复值
- r - 在没有循环函数的情况下增加情节持续时间向量的数据分辨率
- python - 使用 python psycopg2 到 postgres 执行数据更新插入时,哪个是首选选项?
- http-headers - 将 HTTP 响应 Content-Type 指定为 image/* 是否正确?
- javascript - 为什么我们应该在将一些数据放入这个缓冲区之前调用 webgl.bindBuffer?