当前位置: 首页 > article >正文

使用Docker快速启动MySQL容器

MySQL 是世界上最流行的开源关系数据库管理系统之一,广泛应用于各种应用程序中。Docker 提供了一种便捷的方式来快速启动和管理 MySQL 服务。在本篇博客中,我们将介绍如何使用 Docker 启动 MySQL 容器,并将容器的端口映射到宿主机的 13306 端口。

为什么选择 Docker 来运行 MySQL?

  1. 快速部署:Docker 容器可以在几秒钟内启动,加快了开发和部署的速度。
  2. 环境一致性:容器化确保了开发、测试和生产环境之间的一致性。
  3. 资源隔离:容器提供了资源隔离,避免了不同应用之间的冲突。
  4. 易于迁移:容器可以在不同的机器和数据中心之间轻松迁移。

准备工作

在开始之前,请确保你已经安装了 Docker。你可以从 Docker 官网下载并安装 Docker Desktop 或 Docker Engine。

步骤 1: 拉取 MySQL 镜像

MySQL 官方提供了 Docker 镜像,你可以直接从 Docker Hub 拉取。打开你的命令行工具,执行以下命令:

docker pull mysql

这个命令会从 Docker Hub 下载最新的 MySQL 镜像到你的本地。

步骤 2: 启动 MySQL 容器并映射端口

为了能够从宿主机或其他设备访问 MySQL 容器,我们需要将容器的端口映射到宿主机的端口。使用以下命令启动 MySQL 容器并映射端口至 13306:

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d -p 13306:3306 mysql

这里的参数解释如下:

  • --name some-mysql:为你的容器指定一个名称。
  • -e MYSQL_ROOT_PASSWORD=my-secret-pw:设置 MySQL 的 root 用户密码。出于安全考虑,你应该设置一个强密码。
  • -d:表示在后台运行容器。
  • -p 13306:3306:将容器的 3306 端口映射到宿主机的 13306 端口。

端口映射解释

  • 宿主机端口:这是你的物理机器或虚拟机上监听的端口,其他设备通过这个端口与容器通信。在上面的命令中,宿主机端口是 13306
  • 容器端口:这是容器内部 MySQL 服务监听的端口,默认是 3306。在映射中,我们通常保持这两个端口不同,以便在宿主机上使用非默认端口访问 MySQL 服务。

步骤 3: 验证 MySQL 容器

要检查你的 MySQL 容器是否成功启动,可以使用以下命令:

docker ps

这个命令会列出所有正在运行的容器。你应该能在列表中看到你的 MySQL 容器。

步骤 4: 访问 MySQL 容器

你可以通过 MySQL 客户端连接到你的 MySQL 容器。首先,找到宿主机的 IP 地址或域名:

mysql -h localhost -P 13306 -u root -p

-p 后面跟上你的 MySQL root 用户密码。

步骤 5: 停止和删除容器

当你完成测试后,可以使用以下命令停止并删除容器:

docker stop some-mysql
docker rm some-mysql

总结

使用 Docker 启动 MySQL 容器并映射端口至 13306 是一个快速且高效的方法,它可以让你在隔离的环境中测试和运行 MySQL 服务,并且能够从外部访问。通过遵循上述步骤,你可以轻松地在你的本地机器或服务器上部署 MySQL。


http://www.kler.cn/a/301366.html

相关文章:

  • 【模块一】kubernetes容器编排进阶实战资源对象之Configmap与Secret简介
  • 3、C语言基本数据类型关键字
  • 跨平台WPF框架Avalonia教程 一
  • Linux之vim模式下全选命令
  • 鸿蒙网络编程系列48-仓颉版UDP回声服务器示例
  • MySQL的编程语言
  • Python知识点:如何使用Python进行文件压缩与解压缩
  • 证书学习(四)X.509数字证书整理
  • springcloud-GateWay
  • 大语言模型:AI 时代的文字计算器?
  • Vue2和Vue3子组件向父组件传值
  • INIC6081量产工具下载,initio6081开卡软件分享
  • 前端自定义下载文件名
  • 第一篇 第3章 不确定型分析 第4章 设备更新分析 第5章价值工程
  • 基于SpringBoot+Vue的超市外卖管理系统
  • vue3使用provide和inject传递异步请求数据子组件接收不到
  • 大文件切片上传-vue3.0
  • 如何在VUE3中使用函数式组件
  • ecmascript和javascript的区别?
  • 从底层原理上理解ClickHouse 中的稀疏索引
  • 相互作用先验下的 3D 分子生成扩散模型 - IPDiff 评测
  • Hbase的简单使用示例
  • 在 RT-Thread 上使用单色屏 UI 库 - U8G2
  • 【Shiro】Shiro 的学习教程(四)之 SpringBoot 集成 Shiro 原理
  • 海外云手机是否适合运营TikTok?
  • Kubernetes部署(haproxy+keepalived)高可用环境和办公网络打通