【Docker】创建mysql容器、挂载目录、Navicat客户端连接

本文档介绍了如何使用Docker从hub拉取MySQL5.7.37镜像,并进行配置、创建容器。首先,通过`docker pull`命令获取镜像,然后在宿主机创建配置文件夹并编写`my.cnf`,接着使用`docker run`命令创建并启动容器,挂载配置、数据和日志目录。最后,通过`docker exec`进入容器并连接MySQL,确保容器正常运行并能通过客户端连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.docker拉取mysql镜像

docker hub拉取5.7.37版本的mysql镜像

docker pull mysql:5.7.37

在这里插入图片描述
查看拉取的镜像

docker images

在这里插入图片描述

2.配置mysql

先在宿主机上创建三个文件夹

mkdir -p /opt/mysql/conf && mkdir -p /opt/mysql/data && mkdir -p /opt/mysql/log

在这里插入图片描述
进入conf目录并创建my.cnf文件

cd conf
vi my.cnf

写入配置:

[mysqld]
skip-name-resolve
character_set_server=utf8
datadir=/var/lib/mysql
server-id=1000

mysql 的默认配置在 /etc/mysql/my.cnf,其中子配置为/etc/mysql/conf.d或/etc/mysql/mysql.conf.d,即在/etc/mysql/my.cnf引入,不建议宿主机挂载目录直接覆盖/etc/mysql/my.cnf 而是挂载到在容器内conf.d目录下配置子配置文件.

3.docker创建mysql容器

docker run \
	--name mysql \
	-p 3306:3306 \
	--restart=always \
	-e MYSQL_ROOT_PASSWORD=tsq123456 \
	-v /opt/mysql/conf/my.cnf:/etc/mysql/conf.d/my.cnf \
	-v /opt/mysql/data:/var/lib/mysql \
	-v /opt/mysql/log:/var/log/mysql \
	-d mysql:5.7.37

–name:容器名称;
-p:端口映射,将容器的端口映射到宿主机端口(宿主机:容器)
–restart=always : 当Docker 重启时,容器会自动启动;
-e 设置参数 MYSQL_ROOT_PASSWORD 指定mysql登录密码;
-v 将宿主机目录挂载到容器mysql中的目录:配置文件、日志、数据;
-d: 后台运行容器。
在这里插入图片描述
返回容器id;
注意:尽量把参数 -d mysql:5.7.37 放最后不然有可能不能正常运行成功,具体原因不清楚,可能参数有顺序要求的原因吧。

查看容器是否正常运行

docker ps -a

容器正常运行状态:
在这里插入图片描述
容器异常终止状态:
在这里插入图片描述
如果容器发生了异常,查看报错日志:

docker logs mysql

3.客户端连接mysql

进入mysql容器内

docker exec -it mysql bash

命令行连接mysql

mysql -u root -p

在这里插入图片描述
Navicat连接mysql
如果是云服务器还需要配置安全组:
在这里插入图片描述
在这里插入图片描述

### 创建 MySQL 5.7 容器的步骤 在宝塔面板中使用 Docker 功能创建一个运行 MySQL 5.7 的容器,可以通过以下方式实现: #### 使用命令行操作 在宝塔面板中打开终端工具,执行如下命令来拉取镜像启动容器。 1. **拉取 MySQL 5.7 镜像** 如果尚未下载 MySQL 5.7 的官方镜像,则需要先执行以下命令: ```bash docker pull mysql:5.7 ``` 2. **创建启动容器** 可以通过 `docker run` 命令创建启动容器。为了持久化数据以及便于管理,建议挂载本地目录容器内部路径。以下是完整的命令示例[^3]: ```bash docker run -d \ --name=mysql57 \ -p 3306:3306 \ -v /www/server/docker/mysql/conf:/etc/mysql/conf.d \ -v /www/server/docker/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=your_password_here \ mysql:5.7 ``` 上述命令解释如下: - `-d`: 后台模式运行容器。 - `--name=mysql57`: 设置容器名称为 `mysql57`。 - `-p 3306:3306`: 将宿主机的 3306 端口映射到容器内的 3306 端口。 - `-v /www/server/docker/mysql/conf:/etc/mysql/conf.d`: 挂载配置文件目录。 - `-v /www/server/docker/mysql/data:/var/lib/mysql`: 挂载数据存储目录。 - `-e MYSQL_ROOT_PASSWORD=your_password_here`: 设置 root 用户密码为指定值。 #### 在宝塔面板图形界面操作 如果更倾向于使用图形界面完成上述过程,可按照以下方法操作: 1. 登录宝塔面板,在左侧菜单栏找到 **Docker** 点击进入。 2. 进入后选择 **镜像管理** 页面,输入关键词 `mysql` 查找所需版本(即 `mysql:5.7`),然后单击右侧按钮进行拉取。 3. 转到 **容器管理** 页面,点击右上角的 **新建容器** 按钮。 4. 在弹出窗口填写相关信息: - **镜像**: 输入已拉取好的镜像名 `mysql:5.7`。 - **容器名**: 自定义命名,例如 `mysql57`。 - **端口映射**: 添加一条记录,将宿主机的 3306 映射到容器中的 3306。 - **环境变量**: 新增键值对,其中 Key 设定为 `MYSQL_ROOT_PASSWORD`,Value 是自设的 root 密码。 - **卷绑定**: 若希望保存的数据不随容器销毁而丢失,需设置两处挂载点:一是 `/etc/mysql/conf.d` 对应于宿主机上的某个配置文件夹;二是 `/var/lib/mysql` 关联实际数据库文件所在位置。 5. 所有选项确认无误之后提交即可自动构建激活新实例。 #### 数据库初始化与访问测试 成功部署完毕以后,可通过 Navicat 或其他客户端尝试连接验证服务状态正常与否。注意调整防火墙策略允许外部 IP 访问目标端口号 (默认情况下仅限 localhost)[^4]。 --- ### 注意事项 - 确保宿主机有足够的磁盘空间供分配给虚拟机及其附属组件使用。 - 修改默认登录凭证以防潜在安全风险发生。 - 如遇性能瓶颈问题,考虑参照特定场景下的最佳实践指南进一步调优 InnoDB 缓冲池大小等相关参数设定[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沙糖橘

您的鼓励将是我创作的最大动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值