使用docker搭建mysql需通过-p参数映射端口,如docker run -d –name mysql-container -p 3306:3306 -e MYSQL_ROOT_PASSword=yourpassword mysql:8,可自定义宿主机端口避免冲突,用docker ps或docker port验证映射,最后通过宿主机IP和映射端口连接数据库。

在使用 Docker 搭建 MySQL 环境时,映射端口是让宿主机能够访问容器内数据库的关键步骤。默认情况下,MySQL 使用 3306 端口,我们可以通过 -p 参数将容器的 3306 端口映射到宿主机的一个端口上。
1. 基本端口映射命令
运行 MySQL 容器并映射端口的最常见方式如下:
docker run -d –name mysql-container -p 3306:3306 -e MYSQL_ROOT_PASSWORD=yourpassword mysql:8
说明:
- -d:后台运行容器
- –name mysql-container:为容器指定名称
- -p 3306:3306:将宿主机的 3306 端口映射到容器的 3306 端口
- -e MYSQL_ROOT_PASSWORD=yourpassword:设置 root 用户密码
- mysql:8:使用的镜像版本
2. 自定义宿主机端口
如果宿主机的 3306 端口已被占用,可以映射到其他端口,例如 3307:
docker run -d –name mysql-custom -p 3307:3306 -e MYSQL_ROOT_PASSWORD=yourpassword mysql:8
此时连接 MySQL 应使用宿主机 IP + 3307 端口。
3. 验证端口映射是否生效
使用以下命令检查容器运行状态和端口绑定情况:
docker ps | grep mysql
输出中会显示类似 0.0.0.0:3306->3306/tcp,表示端口映射成功。
也可通过以下命令查看具体端口映射:
docker port mysql-container
4. 连接 MySQL 容器
映射成功后,可通过客户端连接:
- 主机:宿主机 IP(如 127.0.0.1)
- 端口:映射的宿主机端口(如 3306 或 3307)
- 用户名:root
- 密码:启动容器时设置的密码
例如使用命令行连接:
mysql -h 127.0.0.1 -P 3306 -u root -p
基本上就这些。只要正确使用 -p 参数,确保容器正常运行,端口映射就能顺利生效。


