Mac端解决docker创建容器时端口3306被占用的错误

Posted 平原上的维克多

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mac端解决docker创建容器时端口3306被占用的错误相关的知识,希望对你有一定的参考价值。

创建容器命令如下:

docker run -it -p 8000:8000 -p 8082:8082 -p 3000:3000 -p 3306:3306 --name seafile-dev-img -v /Users/wysdu/Documents/seafile-develop:/root/dev/source-code ubuntu:18.04  bash

docker: Error response from daemon: driver failed programming external connectivity on endpoint seafile-dev-img
(5d88ccc1089eff8b2ff24fb9cc25f5f4e940837a440d95b469d2913150df1c52):
Error starting userland proxy: listen tcp 0.0.0.0:3306: bind: address already in use.

查看占用端口3306的进程

sudo lsof -i tcp:3306               

结果如下:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 102 _mysql 27u IPv6 0x2135a76727b4822b 0t0 TCP *:mysql (LISTEN)

可以看到, mac 开机后mysql自动启动占用了TCP端口3306,从而造成上面的错误。
进入 系统偏好设置 关闭MySQL服务即可。

以上是关于Mac端解决docker创建容器时端口3306被占用的错误的主要内容,如果未能解决你的问题,请参考以下文章

无法连接docker端口映射问题的解决

Docker - mysql

Docker端口映射与进入容器内部

docker 部署mysql

phpstudy80端口被占用时的解决方案

docker常用命令