【问题标题】:"The connection was reset" in localhost:8000 using django and docker使用 django 和 docker 在 localhost:8000 中“重置连接”
【发布时间】:2020-05-27 17:08:24
【问题描述】:

运行docker-compose up后,

正在启动 docker_django ...完成

附加到 docker_django

docker_django |使用 StatReloader 监视文件更改

docker_django |正在执行系统检查...

docker_django |系统检查未发现任何问题(0 已静音)。

docker_django | 2020 年 2 月 12 日 - 07:26:35

docker_django | Django 3.0.3 版,使用设置'backend.settings'

docker_django |在http://127.0.0.1:8000/启动开发服务器

docker_django |使用 CONTROL-C 退出服务器。

当我连接到http://127.0.0.1:8000/ 时,它会显示这个 运行 docker-compose 命令没有问题/错误,但仅在访问该站点时。

我使用的是 ubuntu 19.10,该项目有 django v3。

Dockerfile

FROM python:3

ENV PYTHONUNBUFFERED 1

RUN mkdir /code
WORKDIR /code

COPY . /code/

RUN pip install -r requirements.txt

docker-compose.yml

version: '3'

services:
    web:
        build: .
        container_name: docker_django
        command: python manage.py runserver
        volumes:
            - .:/code
        ports:
            - "8000:8000"

【问题讨论】:

    标签: django docker docker-compose


    【解决方案1】:

    您的应用程序仅侦听来自本地主机的请求,如果是容器,则是来自容器内部的请求。

    试试这个撰写文件:

    version: '3'
    
    services:
        web:
            build: .
            container_name: docker_django
            command: python manage.py runserver 0.0.0.0:8000
            volumes:
                - .:/code
            ports:
                - "8000:8000"
    

    按照建议更正了端口号的拼写错误

    【讨论】:

    • 谢谢,它有效。只需要将0.0.0.0:8080 更改为0.0.0.0:8000
    • 这也适用于php内置web服务器,运行php -S 0.0.0.0:5001后问题解决
    【解决方案2】:

    最终对我有用的是:

    1. 停止所有 docker 实例
    2. 在管理员模式下打开命令提示符
    3. 执行命令“netsh winsock reset”
    4. 重启机器
    5. 重新启动 docker 容器

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-19
      • 2019-09-18
      • 2016-05-24
      • 1970-01-01
      • 2020-04-09
      • 1970-01-01
      • 2019-11-20
      相关资源
      最近更新 更多