问题描述
我的 docker 容器运行成功,但我仍然无法在我的主机上浏览应用程序。如果没有容器,我只是尝试在我的 windows m/c 中运行,我可以在 http://127.0.0.1:8000/ 中查看应用程序,这是我的本地主机。
我试过 0.0.0.0:8000 门户
并且还在 docker 文件中公开端口并通过使用 --publish 选项发布来运行 docker。我试图通过桥接网络分配的容器访问。尝试了在不同论坛上讨论的所有可能方法..但徒劳无功。有人可以帮我解决这个问题。可能有两个问题
- docker virtual Box 未与我的主机通信(但通过公开和发布选项打开了门户)
- 可能是我指的是错误的 IP 地址来查看我的主机 m/c 中的应用程序: 但是我使用 docker inspect 命令检查了 ip 地址并尝试了 码头工人网络检查 -f '{{range .IPAM.Config}}{{.subnet}}{{end}}' 329dd26d7270 我尝试将 Mc Cafe 防火墙设置为 OFF :( 当我尝试在没有 docker 的 Windows 机器上浏览我的应用程序(在 WSL 中运行)时,存在同样的问题。问题是我的 Windows 门户无法访问任何类型的虚拟框,无论是 docker 还是 WSL。我正在遭受这个问题的困扰,我的项目下一步受到很大阻碍。 期待正解
Dockerfile
# Pull base image
FROM python:3.9
# Set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# Set work directory
workdir /code
ADD . /code
# Install dependencies
# runs the pip install command for all packages listed in the requirements.txt file
RUN pip install -r requirements.txt
# copy project
copY . /code/
EXPOSE 8000
version: '3.9'
services:
web:
build: .
command: python manage.py runserver
ports:
- 8000:8000
$ docker ps
容器 ID 图像命令创建状态端口名称
24fe92f6c14c hello_web "python3" 16 minutes ago Up 10 minutes hello-cc
e797bcd9629b hello_web "/bin/bash" 2 days ago Up 3 seconds 0.0.0.0:8000->8000/tcp,:::8000->8000/tcp hello-c1
83bc3424cf9d postgres "docker-entrypoint.s…" 2 days ago Up About an hour 0.0.0.0:5432->5432/tcp,:::5432->5432/tcp bee_project_db_1
hello-c1 容器也无法通过 172.27.112.1:8000 访问
使用 ipconfig 获得 windows m/c 的 ip 地址
以太网适配器 vEthernet (WSL):
特定于连接的 DNS 后缀。 : 链路本地 IPv6 地址。 . . . . :fe80::89c0:5e11:3776:9980%39
IPv4 地址。 . . . . . . . . . . : 172.27.112.1
子网掩码。 . . . . . . . . . . : 255.255.240.0
默认网关。 . . . . . . . . :
解决方法
如果您在 Windows 下使用 docker 工具箱,请执行
def data_scv():
with open('data.csv') as csv_file:
csv_reader = csv.reader(csv_file)
next(csv_reader)
mean = 0
n = 0
for line in csv_reader:
mean += float(line[2])
n += 1
ave_height = str((mean / n) * 2.54)
for line in csv_reader:
mean += float(line[3])
n += 1
ave_weight = str((mean / n) / 2.205)
return f'Average Height(Centimeters) is - {ave_height} <br> Average Height(Kilograms) is - {ave_weight}'
或 docker-machine env
你会发现这样的东西:
docker-machine ip
你会发现你的 docker 机器 ip 也在那里列出。获取 IP 并将其与您刚刚创建的映射端口配对。
如果您在 Windows 下使用 docker 工具箱,那么 127.0.0.1 不属于您的 docker。上面显示的 192.168.99.103 是运行 Docker 的 linux VM 的 IP ..,这是该 VM 的默认 IP。