You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac端口22被launchd占用,无法杀进程启动Docker容器怎么办?

关于Mac上22端口占用与Docker映射的问题解答

首先明确说:绝对不要尝试杀死PID为1的launchd进程——这是macOS的初始化进程,是系统所有其他进程的父进程,强行终止它会直接导致系统崩溃、强制重启,而且即使你用sudo kill -9也会因为系统核心保护机制无法执行,就像你遇到的“Operation not permitted”错误一样。

从你提供的进程信息来看,22端口被launchd监听,本质是因为Mac系统自带的远程登录(SSH)服务处于开启状态,launchd是负责管理这个系统服务的核心进程。

可行的解决方案有两个:

方案1:关闭系统自带的SSH服务,释放22端口

这是最直接的方式,操作步骤如下:

  • 图形界面:打开「系统设置」→ 「通用」→ 「共享」,取消勾选「远程登录」选项,此时22端口会立即被释放。
  • 命令行方式:执行以下命令关闭服务:
    sudo systemsetup -setremotelogin off
    

关闭后再运行你的Docker命令:

docker run -it --name new_ubutu_ssh_container -p 22:22 ubuntu_ssh:23.04

就能正常映射端口了。如果之后需要重新开启系统SSH服务,再勾选「远程登录」或者执行sudo systemsetup -setremotelogin on即可。

方案2:修改Docker端口映射,避开22端口

如果你不想关闭系统的SSH服务,可以把容器的22端口映射到主机的其他空闲端口(比如2222),命令修改为:

docker run -it --name new_ubutu_ssh_container -p 2222:22 ubuntu_ssh:23.04

之后要连接容器内的SSH服务时,使用端口2222即可:

ssh localhost -p 2222

内容的提问来源于stack exchange,提问作者Sushant Thakur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 10:22:54