使用docker创建mysql容器并映射端口远程访问

创建mysql容器

该过程会消耗较长时间(根据查询可知,官方的镜像名称就叫做 mysql)

docker pull mysql

启动 mysql 镜像

// 暴露至宿主机 3306 端口,持久化数据到宿主机 /lib/mysql/data 目录下

docker run  --name mysql5 -v /lib/mysql/data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=0000 -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

–name → image 命名为 mysql5
-p → Docker 端口映射,Docker 容器 3306 映射到宿主机器 3306 (冒号前指代宿主机端口号,冒号后指代 Docker 容器端口号)
-e → 运行环境变量 此处为初始化 root 用户密码为 0000(其他可配参数见 Docker Hub mysql 官方文档)
-d → 后台运行 mysql → 指定 Mysql 版本号(版本号列表见 Docker Hub mysql 官方文档)

2.外网访问 Docker 数据库

楼主使用的阿里云服务器,以阿里云服务器为例:进入控制台找到安全,防火墙,添加mysql3306端口
在这里插入图片描述
确保宿主机对外开放 3306 端口后,客户端 Host 填写宿主机公网 IP,端口号填写为 3306,账户:root 密码:0000
即可外网访问 Docker 下的 Mysql 服务

3.访问 mysql 容器

docker ps -a // 查询所有容器 id 、name

docker exec -it {容器 id 或者 name} bash // 进入目标容器并使用 bash 命令控制

mysql -u{你的 mysql 账号} -p // 连接上容器内部的 mysql

//手动输入密码 回车

退出容器

exit;// + 回车

4.使用navicat远程连接我们的mysql容器

连接名使用我们服务器的IP地址即可,
然后端口默认3306
账号为我们刚刚设置的root
密码为0000
然后这个时候就已经显示连接上了
在这里插入图片描述

完结。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐