微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法从我的主机我的 Windows 机器打开 docker 应用程序 - 本地主机没有发送任何数据

如何解决无法从我的主机我的 Windows 机器打开 docker 应用程序 - 本地主机没有发送任何数据

我的 docker 容器运行成功,但我仍然无法在我的主机上浏览应用程序。如果没有容器,我只是尝试在我的 windows m/c 中运行,我可以在 http://127.0.0.1:8000/ 中查看应用程序,这是我的本地主机。
我试过 0.0.0.0:8000 门户
并且还在 docker 文件中公开端口并通过使用 --publish 选项发布来运行 docker。我试图通过桥接网络分配的容器访问。尝试了在不同论坛上讨论的所有可能方法..但徒劳无功。有人可以帮我解决这个问题。可能有两个问题

  1. docker virtual Box 未与我的主机通信(但通过公开和发布选项打开了门户)
  2. 可能是我指的是错误的 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

Docker-compose.yml 文件在下面分享

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。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。