当前位置: 首页 > 面试题库 >

运行Docker for Windows,暴露端口时出错

冉俊德
2023-03-14
问题内容

我知道关于在Windows上运行Docker有很多问题,但是这个问题是关于在Windows上运行全新的Windows Docker。
就我而言,我使用的是Windows 10 Pro 64位。根据站点,此版本应受支持。
我一直在遵循在这里找到的教程:https :
//prakhar.me/docker-curriculum/
我也尝试按照官方指南进行操作:https :
//docs.docker.com/docker-for-windows/

在这两个教程中,当尝试使用-P参数分配端口或尝试指定端口时,都会收到相同的错误消息-p 8080:5000

在官方指南中,我运行docker run -d -p 80:80 --name webserver nginx并获得:

C:\ Program Files \ Docker \ Docker \ Resources \ bin \
docker.exe:来自守护程序的错误响应:驱动程序无法对端点Web服务器上的外部连接进行编程(f9946544e4c6ad2dd9cb8cbccd251e4d48254e86562bd8e6da75c3bd42c7e45a):启动用户区代理时出错:mkdir
/0.0/tcp 80:tcp:172.17.0.2:80:输入/输出错误

按照非官方指南,我运行docker run -p 8888:5000 prakhar1989/catnip并得到基本相同的错误:

C:\ Program Files \ Docker \ Docker \ Resources \ bin \
docker.exe:来自守护程序的错误响应:驱动程序无法在端点focused_swartz上编程外部连接编程(48a0c005779c6e89bf525ead2ecff44a7f092495cd22ef7d19973002963cb232):启动用户区代理时出错:mkdir
/port/tcp:0.0.0.0: 8888:tcp:172.17.0.2:5000:输入/输出错误

如果我不尝试分配端口,容器将运行,但是我不知道如何访问它。

我正在运行的docker版本:

  • Docker版本1.12.3,内部版本6b644ec`
  • docker-compose版本1.8.1,内部版本004ddae`
  • docker-machine.exe版本0.8.2,内部版本e18a919`

任何帮助将不胜感激。谢谢。


问题答案:

这是由端口编号冲突引起的:github问题在这里https://github.com/docker/compose/issues/3277

本质上,该端口正在使用中!重置起作用的原因是因为它清除了其他映射。



 类似资料:
  • EXPOSE 声明端口 格式为 EXPOSE <端口1> [<端口2>...]。 EXPOSE 指令是声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务。在 Dockerfile 中写入这样的声明有两个好处,一个是帮助镜像使用者理解这个镜像服务的守护端口,以方便配置映射;另一个用处则是在运行时使用随机端口映射时,也就是 docker run -P 时,

  • 我想部署一个。Net Framework应用程序到具有web前端的ACI。该程序设置为在端口8090上启动web服务,因此我在ACI设置的“端口”部分中输入了该程序,并设置了DNS名称标签。据我所知,这应该足以使网站公开,但我得到了“网站不可用”的错误消息。 我在本地运行了容器,它运行得很好。我还向Dockerfile添加了EXPOSE命令,但这也没有帮助。这张图片是基于一张照片的。Net Fra

  • 此外,我还使用Hystrix进行断路。 我的问题是如何使Hystrix流暴露在执行器端口上? 目前,我仅通过以下代码在标准端口上公开它: 这些是我的一些依靠: 我不想使用Spring Cloud,因为这里有@EnableHystrix,它在执行器端口上提供流。

  • 我正在尝试用Docker和Selenium Grid建立一个自动化测试平台。在下图中,你可以看到我使用的结构。最上面是运行在计算引擎上的ubuntu服务器。左边是一个运行ubuntu 14.04的docker容器。该容器使用Google App Engine在localhost:8080上运行我们的项目。右边是Selenium集线器,有两个节点在端口4444上运行。 Docker和Selenium

  • 问题内容: 在我的工作中,我与docker一起工作,而该选项的工作方式就像将docker容器端口转发到机器的超级按钮一样。这使我可以通过示例添加使用某些端口的艰苦任务: 在9001端口为我的覆盖率报告提供帮助 我的应用程序的本地部署版本在端口9000中提供 手表实时重新加载端口35729 对于单元测试运行器,请使用9876端口 当我开始在Mac中使用Docker时,我遇到的第一个问题是:该选项不再

  • 本文向大家介绍Docker动态给容器Container暴露端口操作,包括了Docker动态给容器Container暴露端口操作的使用技巧和注意事项,需要的朋友参考一下 查看Container的IP地址 docker inspect <container name or id>| grep IPAddress 查看Container的映射的端口 用iptables查看容器映射情况 iptables