问答

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

作者:admin 2021-04-19 我要评论

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

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

问题描述

使用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就可以启动容器

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

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

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

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • nginx响应速度很慢

    nginx响应速度很慢

  • 点击选中的多选框,会在已选那一栏显示

    点击选中的多选框,会在已选那一栏显示

  • PHP 多态的理解

    PHP 多态的理解

  • 关于C语言中static的问题

    关于C语言中static的问题

腾讯云代理商
海外云服务器