无法在 docker-compose 中给定的端口上在浏览器中打开 localhost
Can't open localhost in the browser on port given in docker-compose
我正在尝试使用 docker 和 docker-compose 构建 运行 django 应用程序。
docker-compose build example_app
和 docker-compose run example_app
运行 没有错误,但是当我转到 http://127.0.0.1:8000/
页面时无法打开,我只是在浏览器中收到“页面不可用”错误。
这是我的 Dockeffile,docker-compose.yml 和项目结构
Docker 文件
FROM python:3.9-buster
RUN mkdir app
WORKDIR /app
COPY ./requirements.txt /app/requirements.txt
COPY ./requirements_dev.txt /app/requirements_dev.txt
RUN pip install --upgrade pip
RUN pip install -r /app/requirements.txt
docker-compose.yml
version: '3'
services:
example_app:
image: example_app
build:
context: ../
dockerfile: ./docker/Dockerfile
command: bash -c "cd app_examples/drf_example && python manage.py runserver"
volumes:
- ..:/app
ports:
- 8000:8000
项目结构:
──app
──app_examples/drf_example/
────manage.py
────api
────drf_example
──requirements.txt
──requirements_dev.txt
──docker/
────docker-compose.yml
────Dockerfile
您需要在 Docker 文件中公开端口 8000
FROM python:3.9-buster
EXPOSE 8000
RUN mkdir app
WORKDIR /app
COPY ./requirements.txt /app/requirements.txt
COPY ./requirements_dev.txt /app/requirements_dev.txt
RUN pip install --upgrade pip
RUN pip install -r /app/requirements.txt
默认情况下,Django 应用程序 绑定 到 127.0.0.1 意味着它们将只接受来自本地机器的连接。在容器上下文中,本地计算机就是容器,因此您的应用不会接受来自容器外部的连接。
要让它接受来自任何地方的连接,请将绑定地址添加到 runserver
命令。在您的情况下,您需要将 docker-compose.yml 文件中的命令更改为
command: bash -c "cd app_examples/drf_example && python manage.py runserver 0.0.0.0:8000"
我正在尝试使用 docker 和 docker-compose 构建 运行 django 应用程序。
docker-compose build example_app
和 docker-compose run example_app
运行 没有错误,但是当我转到 http://127.0.0.1:8000/
页面时无法打开,我只是在浏览器中收到“页面不可用”错误。
这是我的 Dockeffile,docker-compose.yml 和项目结构
Docker 文件
FROM python:3.9-buster
RUN mkdir app
WORKDIR /app
COPY ./requirements.txt /app/requirements.txt
COPY ./requirements_dev.txt /app/requirements_dev.txt
RUN pip install --upgrade pip
RUN pip install -r /app/requirements.txt
docker-compose.yml
version: '3'
services:
example_app:
image: example_app
build:
context: ../
dockerfile: ./docker/Dockerfile
command: bash -c "cd app_examples/drf_example && python manage.py runserver"
volumes:
- ..:/app
ports:
- 8000:8000
项目结构:
──app
──app_examples/drf_example/
────manage.py
────api
────drf_example
──requirements.txt
──requirements_dev.txt
──docker/
────docker-compose.yml
────Dockerfile
您需要在 Docker 文件中公开端口 8000
FROM python:3.9-buster
EXPOSE 8000
RUN mkdir app
WORKDIR /app
COPY ./requirements.txt /app/requirements.txt
COPY ./requirements_dev.txt /app/requirements_dev.txt
RUN pip install --upgrade pip
RUN pip install -r /app/requirements.txt
默认情况下,Django 应用程序 绑定 到 127.0.0.1 意味着它们将只接受来自本地机器的连接。在容器上下文中,本地计算机就是容器,因此您的应用不会接受来自容器外部的连接。
要让它接受来自任何地方的连接,请将绑定地址添加到 runserver
命令。在您的情况下,您需要将 docker-compose.yml 文件中的命令更改为
command: bash -c "cd app_examples/drf_example && python manage.py runserver 0.0.0.0:8000"