[root@VM-8-16-centos ~]# docker run --name nginx-container -p 80:80 -d nginx c697df30ec69e891a27d09bf67032d5363edebb41787d92214ddad15872a8d9d docker: Error response from daemon: driver failed programming external connectivity on endpoint nginx-container (946920bceb47bc7836d819268a15f5bfb2416521d65c84ef34a3239bb04a050f): Error starting userland proxy: listen tcp4 0.0.0.0:80: bind: address already in use.
时间: 2024-02-29 10:56:30 浏览: 151
alpine-nginx.tar.gz
这个错误提示是因为在主机上的 80 端口已经被占用了,Docker 无法将容器内的 80 端口映射到主机的 80 端口上。可能是因为主机上已经运行了其他的 Web 服务,导致端口冲突。
你可以使用以下命令查看哪个进程占用了 80 端口:
```
sudo lsof -i :80
```
然后可以根据该命令的输出结果,杀掉占用 80 端口的进程。
如果不想杀掉该进程,可以考虑将 Docker 容器的端口映射到主机的其他端口上,比如将容器的 80 端口映射到主机的 8080 端口上:
```
docker run --name nginx-container -p 8080:80 -d nginx
```
这样,就可以通过访问 http://localhost:8080 来访问 Nginx 容器内的 Web 服务了。
阅读全文