【问题标题】:Why my docker-compose container is not running?为什么我的 docker-compose 容器没有运行?
【发布时间】:2023-01-22 06:56:56
【问题描述】:

我有一个运行 debian 10.11 和 docker 的 Virtualbox VM,一切都是最新的。 我想使用 docker-compose 从 debian 镜像启动一个非常基本的容器。

我有以下 docker-compose.yml 文件

version: "3"
services:
  deb1:
    image: debian:latest

我运行命令sudo docker-compose up -d,但在运行sudo docker ps -a时容器没有运行,所以我尝试手动启动sudo docker start <container_id>,但容器仍然没有运行,我有一个成功的返回代码(echo $?)。

当我使用 docker 命令创建容器时效果很好 sudo docker run -td --name deb1 --hostname deb1 debian:latest

有人有解决办法吗?

谢谢 路易斯

【问题讨论】:

  • debian 图像没有内置任何应用程序。您有自定义 Dockerfile 或更有趣的东西要运行吗? (您期望主要的容器进程是什么?)
  • 我没有任何其他 Dockerfile 或配置脚本。我只是想部署容器来做一些 ping 来学习和测试 docker,特别是网络。你的意思是只有当服务在里面运行时才能运行容器吗?
  • 更新:我真的认为我需要在这个容器中运行一个进程,在我的例子中,我尝试在我的 docker-compose.yml 中使用 sleep 作为入口点
  • 你应该把容器想象成一个单一的包装器过程;从概念上讲,就您通常使用它执行的操作而言,将它想象成您的浏览器而不是终端窗口。 (因此,例如,您能否在浏览器中“获得一个外壳”;或者您的浏览器在退出后“保持运行”是否有意义?)运行未修改的 debian 容器与启动救援 CD 没有什么不同到 RAM 磁盘:如果你愿意,你可以玩它,但一旦它退出,你将失去你所做的一切。

标签: docker docker-compose debian


【解决方案1】:

更新:容器只有在服务在内部运行时才能工作。正如 David Maze 所说,Debian 映像可以在 Dockerfile 中进行扩展。

【讨论】:

    【解决方案2】:

    您可以将 command: tail -f /dev/null 添加到您撰写的文件中以保持容器运行:

    version: "3"
    services:
      deb1:
        image: debian:latest
        command: tail -f /dev/null
    

    【讨论】:

      猜你喜欢
      • 2022-11-18
      • 1970-01-01
      • 1970-01-01
      • 2021-12-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 2023-03-21
      • 1970-01-01
      相关资源
      最近更新 更多