我已经成功构建了 docker 并且服务器运行没有错误,但是当我浏览网站时它没有显示任何内容。
这是我正在使用的配置文件:
.env.dev
DEBUG=1
SECRET_KEY=foo
DJANGO_ALLOWED_HOSTS=localhost 127.0.0.1 [::1]
Dockerfile
FROM python:3.9.1-slim-buster
# set working directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# install dependencies
RUN pip install --upgrade pip
COPY ./requirements.txt .
RUN pip install -r requirements.txt
# add app
COPY . .
docker-compose.yml
version: '3.8'
services:
movies:
build: ./app
command: python core/manage.py runserver 0.0.0.0:8000
volumes:
- ./app/:/usr/src/app/
ports:
- 8009:8000
env_file:
- ./app/.env.dev
知道为什么它不浏览吗?
当您将
localhost
或 127.0.0.1
作为允许的主机时,您指的是容器,而不是主机。因此,即使您将容器的端口链接到主机的端口,服务器也不会接受连接,因为它们不是来自容器 IP。
docker 检查 97a0c720c605 | grep "IP 地址" *** 查找容器ipstep 1:
python3 manage.py runserver 172.17.0.2:8000“例如 ip chageable” *** 通过ip容器在容器中启动djangostep 2:
系统中的lcoal主机和端口容器step 3:
在浏览器中: localhost: -> 查找容器 -> 请求 容器(ip步骤1)