【发布时间】:2019-07-08 19:27:51
【问题描述】:
我已经为 django rest 项目创建了一个 docker 镜像,下面有 Dockerfile 和 docker-compose 文件,
Dockerfile
FROM python:3
# Set environment variables
ENV PYTHONUNBUFFERED 1
COPY requirements.txt /
# Install dependencies.
RUN pip install -r /requirements.txt
# Set work directory.
RUN mkdir /app
WORKDIR /app
# Copy project code.
COPY . /app/
EXPOSE 8000
docker-compose文件
version: "3"
services:
dj:
container_name: dj
build: django
command: python manage.py runserver 0.0.0.0:8000
volumes:
- ./django:/app
ports:
- "8000:8000"
而docker-compose up 命令像这样启动服务器,
但在网络浏览器中我无法访问服务器,浏览器显示ERR_ADDRESS_INVALID
Docker 版本 18.09.2
【问题讨论】:
-
您使用的是什么网址?你得到什么错误?你有什么版本/风格的 Docker?
-
我使用这个作为 url
http://0.0.0.0:8000并且浏览器说网站无法访问 -
0.0.0.0 是“无处不在”的 IPv4;您通常无法与其建立出站连接。如果您有 Docker 桌面应用程序,请尝试
http://localhost:8000;如果是 Docker Toolbox,你需要docker-machine ip地址,通常是http://192.168.99.100:8000。 -
@DavidMaze 明白了,
http://localhost:8000网址有效! thanx,但问题在docker-compose文件中定义0.0.0.0:8000,一旦我尝试127.0.0.1,它说权限被拒绝。为什么会这样? -
每个容器都有自己的
localhost概念。如果你在容器中设置一个进程只监听容器的localhost,它不会接受来自容器外的任何流量。
标签: django docker docker-compose