docker-compose up 无法启动容器,但是手动创建镜像,在启动容器就是正常的

发布于 2022-09-12 22:54:59 字数 1259 浏览 21 评论 0

问题描述

使用docker-compose up 部署两个容器,但使用Dockerfile构建的,镜像可以构建成功,但是容器无法启动! 但是先docker build,然后docker run就没有问题。

  • Dockerfile文件内容
FROM python:3.9.2-buster
WORKDIR /usr/src/flask_app
ADD . /usr/src/flask_app
RUN pip install --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
EXPOSE 1195
VOLUME /usr/src/flask_app
CMD ["python", "manage.py", "runserver","--host=0.0.0.0 --port=1195"]
  • docker-compose.yml文件内容
version: "3.2"
services:
  mongo:
    image: mongo:4.4.4
    container_name: mongo
    ports:
      - "27017:27017"
 networks:
      - fckm
  flask_app:
    build: .
    container_name: flask_app
    ports:
      - "1195:1195"
 volumes:
      - /home/tiven/data:/usr/src/flask_app
    networks:
      - fckm
    depends_on:
      - mongo
networks:
  fckm:
  • 报错信息,说找不到文件

但是docker exec进入容器,这个文件明明就摆在那儿!

image.png

image.png

手动先执行docker build构建镜像,然后再使用docker run就可以启动容器

那个大佬给看看呢?,这两者之间是有什么区别吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

柠檬色的秋千 2022-09-19 22:54:59
  1. 先回答为什么你docker run可以直接启动起来,你的dockerfile中启动时用manage.py启动的然后直接run的时候用/bin/bash覆盖了CMD启动指令所以你的容器进去了,但并不是的python启动起来了。
  2. 为什么docker-compose为什么没启动 应该时
- /home/tiven/data:/usr/src/flask_app

/home/tiven/data 这个目录下并没有的你脚本把 你挂载后直接把容器里的目录覆盖了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文