gpt4 book ai didi

docker - 解封80端口/nginx/docker

转载 作者:行者123 更新时间:2023-12-04 04:13:40 32 4
gpt4 key购买 nike

我想让一个 Laravel 应用程序在 Docker 中运行,但在第一个障碍上失败了,我尝试通过以下命令使用 docker/getting started Docker 镜像,但遇到以下阻塞。

$docker run -p 80:80 docker/getting-started

docker: Error response from daemon: Ports are not available: listen tcp 0.0.0.0:80: bind: address already in use.

在这里列出正在运行的内容:

$sudo lsof -i :80

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 143 root 6u IPv4 0x17106caf335097c7 0t0 TCP localhost:http (LISTEN)
nginx 10145 Jeremyrrsmith 6u IPv4 0x17106caf335097c7 0t0 TCP localhost:http (LISTEN)
nginx 10218 Jeremyrrsmith 6u IPv4 0x17106caf335097c7 0t0 TCP localhost:http (LISTEN)
nginx 10296 Jeremyrrsmith 6u IPv4 0x17106caf335097c7 0t0 TCP localhost:http (LISTEN)
nginx 10372 Jeremyrrsmith 6u IPv4 0x17106caf335097c7 0t0 TCP localhost:http (LISTEN)

根据我的阅读,我需要杀死在端口 80 上运行的任何东西,所以已经杀死了它们(143 错误除外),但它们以新的 PID 重新启动。我真的应该杀死这些吗?

Docker:来自守护进程的错误响应:端口不可用:listen tcp 0.0.0.0:80: bind: address already in use. 错误让我头疼。

netstat -ltnp | grep 80 是根据其他线程运行的常用命令,但我得到 netstat: option requires an argument -- p 作为响应。读到后,第一个是 Linux 命令(在其他线程中我不清楚)。我在 Mac 上。 lsof -n -i4TCP:80 | grep LISTEN 是mac上的命令(希望对大家有帮助)。这提供了

nginx   10145 Jeremyrrsmith    6u  IPv4 0x17106caf335097c7      0t0  TCP 127.0.0.1:http (LISTEN)
nginx 10218 Jeremyrrsmith 6u IPv4 0x17106caf335097c7 0t0 TCP 127.0.0.1:http (LISTEN)
nginx 10296 Jeremyrrsmith 6u IPv4 0x17106caf335097c7 0t0 TCP 127.0.0.1:http (LISTEN)
nginx 10372 Jeremyrrsmith 6u IPv4 0x17106caf335097c7 0t0 TCP 127.0.0.1:http (LISTEN)

我杀死了这些 PID,它们只是用一个新的 PID 重新启动,我认为我不需要它们,但它们与系统相关吗?我该如何永远杀死它们,它们是否真的阻止我将端口 80 用于 Docker?

最佳答案

围绕已用端口最简单和最常见的方法是使用不同的端口映射,例如 docker run -p 8080:80 docker/getting-started并通过 localhost:8080 访问

如果你想使用端口80你可能必须停止 nginx服务而不是终止进程。

关于docker - 解封80端口/nginx/docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61202945/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com