我无法通过容器中的端口连接到django。我使用此地址:0.0.0.0.:8000并查看:http://joxi.ru/Dr8MeGLhkBWnLm。我用一个命令创建了一个图像和一个容器:' docker-compose up -d'。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4fea50856eef docker_web "python manage.py ru…" 13 seconds ago Up 11 seconds 0.0.0.0:8000->8000/tcp docker_web_1
搬运工-compose.yaml
version: '3'
services:
web:
build:
context: .
dockerfile: /django.testsite/Dockerfile
ports:
- "8000:8000"
Dockerfile
FROM python:3
RUN easy_install pip
RUN pip install django==1.9.12
RUN pip install requests
ADD . /.
WORKDIR /django.testsite
CMD ["python", "manage.py", "runserver", "8000"]
如何解决此问题?
答案 0 :(得分:8)
您的问题:
CMD ["python", "manage.py", "runserver", "8000"]
为了使其正常工作,您需要将其更改为:
CMD ["python", "manage.py", "runserver", "0.0.0.0", 8000"]
最后,在浏览器中使用http://127.0.0.1:8000/。
为什么呢?好吧python认为你在127.0.0.1上暴露它,实际上你想要eth0地址,因为它可以改变,我们不想硬编码它,我们使用0.0.0.0这意味着&# 34; ALL"接口
记住docker 127.0.0.1不是你的主机127.0.0.1,每个docker容器都有自己的环回。
让它完全发挥作用:
docker-compose down
docker rmi docker_web
docker-compose up -d
或..(我喜欢80%确定这是语法)
docker-compose down
docker-compose up -d --rebuild
如果它真的不合作,请参阅docker ps -a
并确保没有正在运行。 (ps。你可以使用docker rm <id>
摆脱它;额外的功劳:docker ps -aq | xargs docker rm
为你做的一切;))
额外:如果你不想写出0.0.0.0
,你可以简单地写0
- 做同样的事情。