问题产生及原因
docker容器在运行下方命令时发生错误
docker run --detach --publish 80:80 --name webserver nginx
错误是这样说的
docker: Error response from daemon: driver failed programming external connectivity on
endpoint webserver (1d0b21c3f7848b58738ab19b2f0c7a3b3001d3c7cb799cc8348ab292faaef44b):
Error starting userland proxy: listen tcp 0.0.0.0:80: bind: An attempt was made to access
a socket in a way forbidden by its access permissions.
其大致是说守护程序响应错误:驱动程序在端点web服务器上编程外部连接失败,启动用户代理时出错:侦听tcp 0.0.0.0:80: 约束:试图以其访问权限禁止的方式访问套接字。
那么是为什么呢?
这里错误产生的原因是端口映射发生错误,即--publish 80:80
这一段命令执行报错,那为什么无法映射呢?肯定是端口被占用了啊,于是小编干脆用浏览器直接搜索http://localhost/:80
,果然端口被IIS占用了
解决方案
1.关闭IIS服务
2.把执行命令中端口号换掉(不推荐,端口映射最好与docker端口对应)
关闭IIS后小编再次去浏览