S. *_*ior 6 python django docker docker-compose
我无法通过容器中的端口连接到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
Run Code Online (Sandbox Code Playgroud)
泊坞窗,compose.yaml
version: '3'
services:
web:
build:
context: .
dockerfile: /django.testsite/Dockerfile
ports:
- "8000:8000"
Run Code Online (Sandbox Code Playgroud)
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"]
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
Jav*_*zzi 11
你的问题:
CMD ["python", "manage.py", "runserver", "8000"]
Run Code Online (Sandbox Code Playgroud)
为了使其工作,您需要将其更改为:
CMD ["python", "manage.py", "runserver", "0.0.0.0", 8000"]
Run Code Online (Sandbox Code Playgroud)
最后,在浏览器中使用http://127.0.0.1:8000/.
为什么?好吧python认为你在127.0.0.1上暴露它,而实际上你想要eth0地址,因为它可以改变,我们不想硬编码它,我们使用0.0.0.0这意味着"所有"接口.
记住docker 127.0.0.1不是你的主机127.0.0.1,每个docker容器都有自己的环回.
为了让它完全发挥作用:
docker-compose down
docker rmi docker_web
docker-compose up -d
Run Code Online (Sandbox Code Playgroud)
或.. ..(我喜欢80%确定这是语法)
docker-compose down
docker-compose up -d --rebuild
Run Code Online (Sandbox Code Playgroud)
如果它真的不合作,请查看docker ps -a并确保没有运行.(ps.你可以使用它来摆脱它docker rm <id>;额外的功劳:docker ps -aq | xargs docker rm为你做的一切;))
额外:如果你不想写出来,0.0.0.0你可以简单地写0- 做同样的事情.
| 归档时间: |
|
| 查看次数: |
4321 次 |
| 最近记录: |