docker - 容器在 Windows Docker Toolbox 中的本地主机上不可用

标签 docker windows-7 localhost docker-machine docker-toolbox

我尝试连接到 localhost/127.0.0.1/0.0.0.0 上的容器,但无法访问网站。

详细信息:

$ docker run -d -p 80:80 nginx:alpine

$ docker ps
CONTAINER ID        IMAGE                                   COMMAND                  CREATED             STATUS              PORTS
                                                                NAMES
d5b465ed1b18        nginx:alpine                            "nginx -g 'daemon of"   6 minutes ago       Up 6 minutes        0.0.0.
0:80->80/tcp                                                   quizzical_swirles
798b40ceec77        10.36.7.241:5000/facileexplorer:0.3.8   "/usr/bin/supervisor"   9 minutes ago       Up 9 minutes        4444/t
cp, 0.0.0.0:3838->3838/tcp, 0.0.0.0:8787->8787/tcp, 5900/tcp   vigilant_banach

我遵循了这个教程:https://blog.sixeyed.com/published-ports-on-windows-containers-dont-do-loopback/ :

$ docker inspect --format '{{ .NetworkSettings.Networks.nat.IPAddress }}' d5b465ed1b18
<no value>

但它不返回端口。

我还帮助自己阅读了本指南:https://www.iancollington.com/docker-and-cisco-anyconnect-vpn/因为我的一些 docker 镜像位于私有(private)注册表中,所以我执行了以下步骤:

  1. PATH=$PATH:"C:\Program Files\Oracle\VirtualBox";导出路径
  2. 导出 DOCKER_HOST="tcp://127.0.0.1:2376"
  3. docker-machine 默认停止
  4. VBoxManagemodifyvm“默认”--natpf1“docker,tcp,,2376,,2376”
  5. docker-machine 默认启动
  6. 别名 docker='docker --tlsverify=false'

你能帮忙吗?

最佳答案

当您使用 Docker Toolbox 时,运行 docker run -p 80:80 可能会产生误导。这意味着它将把容器的 80 端口转发到 Docker 机器的 80 端口,而不是 Windows 主机!

如果您想通过 Windows 主机访问容器,还需要将 Docker 机器的 80 端口转发到该主机。

我发现您正在使用 VirtualBox,您可以通过在“设置”>“网络”>“高级”>“端口转发”中添加一个条目来实现此目的。

带有图像的示例教程:https://www.howtogeek.com/122641/how-to-forward-ports-to-a-virtual-machine-and-use-it-as-a-server/

关于docker - 容器在 Windows Docker Toolbox 中的本地主机上不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50592890/

相关文章:

bash - 如何在不进入容器的情况下运行docker容器

docker - 如何为在Celery群集上部署的所有任务分配相同数量的资源?

windows-7 - 在 Windows 7 中设置命令提示符的当前目录时出现语法错误

php - 如何在笔记本电脑上快速创建LAMP开发服务器?

c# - 从本地主机和在线 asp.net 发送电子邮件

c - 无法在辅助接口(interface)上接收 UDP/IPv6 数据包

bash - 无法运行添加到现有Docker容器的脚本

docker - 无法连接到Docker守护程序

sql-server - Windows 7 上的 SQL Server 批量插入问题

node.js - 当我尝试连接本地主机时出现 ERR_SSL_PROTOCOL_ERROR