执行第8步./vendor/bin/sail up -d最后报错Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306

写这个主要是记录一下遇到错误的解决办法,还有就是帮助后续和我遇到同样问题的伙伴快速解决,其中1、2分类是命令行和桌面启动的报错及处理办法

1.我在执行第8步的时候报错图如下:

执行第8步./vendor/bin/sail up -d最后报错Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306
该错误是由于本地3306端口被占用,很可能是本地已经安装了mysql,mysql服务已经启动导致的

解决办法一:打开服务,找到mysql服务,将其停止,或者更换端口

然后执行命令

docker run --name MYSQL -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -itd mysql:latest /bin/bash

解决办法二:更换端口映射

docker run --name MYSQL -e MYSQL_ROOT_PASSWORD=123456 -p 3309:3306 -itd mysql:latest /bin/bash
说明:-p 3309:3306-p 宿主机端口:容器端口,即将宿主机3309端口映射到容器的3306端口,在宿主机登录容器数据库的时候,使用宿主机端口,如3309

2。在docker 桌面系统里启动example-app 里的mysql报错信息如下:

Error invoking remote method 'docker-start-container': Error: (HTTP code 500) server error - Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.

首先重启计算机(宿主),重启后在命令行(或WSL2)执行

docker ps -a

查看无法启动的容器ID,接着执行

docker restart 容器ID

如果还无法启动,尝试允许Windows(Linux)防火墙通过该端口,确定不是防火墙拦截

于江
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!