Docker-Windows 上的机器端口转发不工作
Docker-machine Port Forwarding on Windows not working
我正试图在 windows 机器上的 Docker 内访问我的 django 应用程序 运行ning。我正在使用 docker-机器。我已经研究了好几个小时了。
这是我的 Docker我的 Django 应用的文件:
FROM python:3.4-slim
RUN apt-get update && apt-get install -y \
gcc \
gettext \
vim \
curl \
postgresql-client libpq-dev \
--no-install-recommends && rm -rf /var/lib/apt/lists/*
EXPOSE 8000
WORKDIR /home/
# add app files from git repo
ADD . server/
WORKDIR /home/server
RUN pip install -r requirements.txt
CMD ["python", "manage.py", "runserver", "8000"]
因此应该公开(至少在容器中)端口 8000。
当我使用命令 docker-machine ip default
时,我获得了 IP 192.168.99.101。我转到端口 8000 上的那个 IP,但没有得到任何响应。
我进入 VirtualBox 以查看转发这些端口是否有效。这是配置:
我也试过使用 127.0.0.1
作为主机 IP。我还尝试禁用 windows 防火墙。
这是我启动容器的命令:
docker run --rm -it -p 8000:8000 <imagename>
我不知道为什么我无法连接到那个端口。当我 运行 docker-machine ls
时,它给我的 url 是 tcp://192.168.99.101:2376
,当我去那里时,它给我某种文件,所以我知道 docker-机器在该端口上处于活动状态。
另外当我 运行 docker ps
我得到这个:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5c00cc28a2bd <image name> "python manage.py run" 7 minutes ago Up 7 minutes 0.0.0.0:8000->8000/tcp drunk_knuth
如有任何帮助,我们将不胜感激。
问题是服务器在 127.0.0.1
上 运行 而本应在 0.0.0.0
上 运行。
我将 Dockerfile 中的 CMD
行从
更改为
CMD ["python", "manage.py", "runserver", "8000"]
到
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
现在可以使用了。
我正试图在 windows 机器上的 Docker 内访问我的 django 应用程序 运行ning。我正在使用 docker-机器。我已经研究了好几个小时了。
这是我的 Docker我的 Django 应用的文件:
FROM python:3.4-slim
RUN apt-get update && apt-get install -y \
gcc \
gettext \
vim \
curl \
postgresql-client libpq-dev \
--no-install-recommends && rm -rf /var/lib/apt/lists/*
EXPOSE 8000
WORKDIR /home/
# add app files from git repo
ADD . server/
WORKDIR /home/server
RUN pip install -r requirements.txt
CMD ["python", "manage.py", "runserver", "8000"]
因此应该公开(至少在容器中)端口 8000。
当我使用命令 docker-machine ip default
时,我获得了 IP 192.168.99.101。我转到端口 8000 上的那个 IP,但没有得到任何响应。
我进入 VirtualBox 以查看转发这些端口是否有效。这是配置:
我也试过使用 127.0.0.1
作为主机 IP。我还尝试禁用 windows 防火墙。
这是我启动容器的命令:
docker run --rm -it -p 8000:8000 <imagename>
我不知道为什么我无法连接到那个端口。当我 运行 docker-machine ls
时,它给我的 url 是 tcp://192.168.99.101:2376
,当我去那里时,它给我某种文件,所以我知道 docker-机器在该端口上处于活动状态。
另外当我 运行 docker ps
我得到这个:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5c00cc28a2bd <image name> "python manage.py run" 7 minutes ago Up 7 minutes 0.0.0.0:8000->8000/tcp drunk_knuth
如有任何帮助,我们将不胜感激。
问题是服务器在 127.0.0.1
上 运行 而本应在 0.0.0.0
上 运行。
我将 Dockerfile 中的 CMD
行从
CMD ["python", "manage.py", "runserver", "8000"]
到
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
现在可以使用了。