Linux问题--docker启动mysql时提示3306端口被占用

问题描述:

 解决方法:

1.如果需要kill掉mysqld服务可以先通过

lsof -i :3306

2. 查询到占用3306的PID,随后使用

kill -15 PID

来kill掉mysqld服务。

 

最后结果

### 解决方案 当遇到 Nginx 容器因端口已被占用而无法启动问题,可以采取以下方法来排查并解决问题。 #### 方法一:更改 Docker Compose 文件中的映射端口配置 如果默认的 `80` 端口已经被其他进程或容器占用,则可以通过修改 Docker Compose 配置文件中的端口映射设置来解决此问题。例如,在Compose文件中定义如下内容: ```yaml nginx: build: context: ./nginx dockerfile: Dockerfile.dev ports: - "8080:80" ``` 通过将宿主机上的 `80` 端口更改为未被占用端口(如 `8080`),从而避免冲突[^1]。 #### 方法二:检查当前已使用的端口号 在尝试重新运行 Nginx 容器之前,应先确认是否有其他程序正在使用目标端口。可以在 Linux 或 macOS 上执行以下命令以查找占用指定端口的服务: ```bash sudo lsof -i :80 ``` 或者对于 Windows 用户来说,可利用 PowerShell 运行下面这条指令获取相同的信息: ```powershell Get-Process -Id (Get-NetTCPConnection -LocalPort 80).OwningProcess ``` 一旦识别到具体哪个应用程序占用了该端口之后,可以选择停止它或将它的监听地址调整至另一个可用位置[^2]。 #### 方法三:强制移除旧版本容器实例 有即使删除了一个失败状态下的容器镜像及其关联数据卷后仍会残留一些资源影响新创建过程顺利完成。此建议清理所有相关联的对象再重试构建流程: ```bash docker ps -a | grep 'Exited' | awk '{print $1}'| xargs docker rm docker volume prune -f ``` 接着按照正常步骤继续操作直至成功部署完成为止[^3]: ```bash sh build.sh version 1.0.0 cd ../../auto_setup cp ../server/im-server-1.0.0.tar.gz im-server-1.0.0.tar.gz tar -zxvf im-server-1.0.0.tar.gz cd im-server-1.0.0 sh sync_lib_for_zip.sh mysql -uroot -p12345 source /TeamTalk/auto_setup/mariadb/conf/ttopen.sql; show tables; ``` 以上就是针对Docker环境中Nginx由于端口冲突引起错误情况的一些常见处理办法总结说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值