无法启动基于 Ubuntu 或 Debian 的 Docker

无法启动基于 Ubuntu 或 Debian 的 Docker

我尝试基于 Ubuntu 创建自己的容器(Debian 也一样)。我用它docker-compose来管理我的容器,也用它dockerfile来创建我的容器。

当我使用来docker-compose创建和启动我的容器时,我总是有一个状态Exited 0(没有日志或屏幕上的信息,当我使用简单的 docker 命令创建和启动时,它运行良好。

你知道为什么吗?

我的 dockerfile

ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get -y update
RUN apt-get -y upgrade
RUN apt-get install -y sqlite3 libsqlite3-dev apache2 php php-sqlite3
RUN /usr/bin/sqlite3 /etc/apache2/db/test.db
RUN apt-get clean autoclean
RUN apt-get autoremove --yes
RUN rm -rf /var/lib/apt/lists/*
CMD /bin/bash

我的 docker-compose

bdd:
container_name: bdd
build: /docker/bdd
image: image_bdd:latest

答案1

谢谢你的回答。我忘了把它写在我的问题里,但是这行代码FROM ubuntu:latest是存在的。为了回答这个问题,我找到了使用 CMD 行的解决方案,因为你可以在互联网上找到很多版本:

CMD ["/usr/sbin/apache2ctl", "-DFOREGROUND"]

线路CMD ["/bin/bash"]运行不正常。你知道原因是什么吗?

答案2

FROMDockerfile 中缺少指令

答案3

您需要指定您想要从哪个图像进行工作。

尝试修改Dockerfile像这些

FROM ubuntu:latest

RUN apt-get -y update && \
    apt-get -y upgrade && \
    apt-get install -y sqlite3 libsqlite3-dev apache2 php php-sqlite3 && \
    /usr/bin/sqlite3 /etc/apache2/db/test.db && \
    apt-get clean autoclean && \
    apt-get autoremove --yes && \
    rm -rf /var/lib/apt/lists/*

ENV DEBIAN_FRONTEND=noninteractive

CMD ["/bin/bash"]

docker-compose 文件需要像这些

version: '3'
services:
  bdd:
    build: /docker/bdd/

相关内容