django - Docker 拉取 Django 镜像并运行容器
问题描述
因此,我按照Docker 的本教程创建了 Django 映像。
它完全可以在我的本地机器上运行,只需docker-compose up
从我的项目的根目录运行一个命令。
但是,将图像推送到 docker hub https://hub.docker.com/repository/docker/vivanks/firsttry
我将图像拉到另一台机器上,然后运行:
docker run -p 8020:8020 vivanks/firsttry
但它没有开始并显示此错误:
退出(0)
谁能帮助我如何提取此图像并运行它?
我的 Dockerfile
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/
我的 docker-compose.yml
version: '3'
services:
db:
image: postgres
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
解决方案
您Dockerfile
没有指定 aCMD
或ENTRYPOINT
。当你跑...
docker run -p 8020:8020 vivanks/firsttry
...容器无关(这意味着它实际上会尝试启动 Python 交互式 shell,但由于您没有使用 分配终端-t
,所以 shell 会退出。成功)。在您的docker-compose.yml
中,您正在传递一个显式命令:
command: python manage.py runserver 0.0.0.0:8000
所以等效的docker run
命令行看起来像:
docker run -docker run -p 8020:8020 vivanks/firsttry python manage.py runserver 0.0.0.0:8000
但你可能想把它烤成Dockerfile
这样:
CMD python manage.py runserver 0.0.0.0:8000
推荐阅读
- python - 用于基于方面的情感分析的乌尔都语语言数据集
- azure - 如何在 Azure DevOps 发布管道中保存测试结果
- reactjs - Thunk 动作创建者派出另一个 thunk 动作创建者,但 typescript 抛出错误。我应该添加什么类型?
- java - 文件未上传到 Google 存储桶
- xpath - 排除某些特定元素的 xpath
- linux - 在 awk 命令行中使用 unix 命令处理字段
- python - 通过网络服务(例如 FLASK)在命令上运行 python gui
- css - 表第一个固定列中菜单的位置(z-index)
- mysql - “AttributeError:‘str’对象没有‘cursor’属性”
- css - 以与其周围相同的字体大小显示等宽字体