【问题标题】:Unable to connect to server when running docker django container运行docker django容器时无法连接到服务器
【发布时间】:2017-06-02 06:30:46
【问题描述】:

我查看了此站点上的问题,但无法解决此问题。

我创建并运行了我的 django 应用程序的图像,但是当我尝试从浏览器查看应用程序时,页面无法加载(无法建立与服务器的连接)

我使用的是 docker 工具箱,我使用的是 OS X El Capitan,而 Macbook 是 2009 年的。

容器IP为:192.168.99.100

django 项目根目录名为“Web app”,是包含manage.py 的目录。我的 Dockerfile 和 requirements.txt 文件都在这个目录中。

我的 dockerfile 是:

FROM python:3.5
WORKDIR /usr/src/app
COPY requirements.txt ./
RUN pip install -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]  

我的 requirements.txt 有 django 和 mysqlclient

我的 django 应用程序使用 Mysql,我尝试在浏览器中查看 dockerized django 应用程序,无论是否将其链接到标准 mysql 映像。在这两种情况下,我只看到以下错误:

问题加载页面无法建立与服务器的连接

当我尝试将 django 容器链接到我使用的 mysql 容器时:

docker run --link mysqlapp:mysql -d app

其中 mysqlapp 是我的 mysql 映像,“app”是我的 django 映像。

在我的 django settings.py 中,允许的主机是:

ALLOWED_HOSTS: ['localhost', '127.0.0.1', '0.0.0.0', '192.168.99.100']

再一次,我使用docker build时镜像创建成功,并且作为容器成功运行。为什么页面没有在浏览器中加载?

【问题讨论】:

    标签: python mysql django docker docker-machine


    【解决方案1】:

    我建议使用 yml 文件和 docker compose。以下是帮助您入门的模板:

    [Dockerfile]

    FROM python:2.7
    RUN pip install Django
    RUN mkdir /code
    WORKDIR /code
    COPY code/ /code/
    

    您的文件在代码目录中的位置。

    [docker-compose.yml]

    version: '2'
    services:
      db:
        image: mysql
    
      web0:
        build: .
        command: python manage.py runserver 0.0.0.0:8000
        ports:
          - "8000:8000"
        depends_on:
          - db
    

    您在 Dockerfile 中定义的工作目录路径可能存在问题。希望以上有所帮助。

    【讨论】:

      【解决方案2】:

      salehinejad 提供的解决方案似乎已经足够好了,虽然我没有亲自测试过,但是如果你不想使用 yml 文件并想按照自己的方式进行,那么你应该通过添加来公开端口

      -p 0:8000

      在你的运行命令中

      所以你应该看起来像这样:

      docker run -p 0:8000 --link mysqlapp:mysql -d app 
      

      【讨论】:

        【解决方案3】:

        我怀疑您没有告诉 Docker 与您的虚拟机对话,并且您的容器正在您的主机上运行(如果您可以在 localhost 访问,这就是问题所在)。

        请参阅此帖子以获得解决方案:

        Connect to docker container using IP

        【讨论】:

          猜你喜欢
          • 2022-01-16
          • 1970-01-01
          • 2021-07-02
          • 1970-01-01
          • 1970-01-01
          • 2020-09-28
          • 1970-01-01
          • 1970-01-01
          • 2021-08-21
          相关资源
          最近更新 更多