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

Mac OS 配置Docker+Mysql

目录

1. 拉取 MySQL Docker 镜像

2.查看本地镜像

3.设置 Docker 卷

4.运行一个 MySQL Docker 容器

5. 连接到 MySQL 容器 


1. 拉取 MySQL Docker 镜像

要在 Docker 中创建和测试 MySQL 服务器,您要做的第一件事是从Docker Hub拉取 MySQL 官方镜像 。

如果您需要特定版本的 MySQL,请替换 latest 为版本号。

您可以运行该docker images 命令来查看从 Docker Hub 中提取的 Docker 镜像列表。

docker pull mysql

 

 

2.查看本地镜像

查看本地镜像,使用以下命令来查看是否已安装了 mysql:

docker images

3.设置 Docker 卷

如您所知,Docker 容器原则上是短暂的,如果容器被删除,任何数据或配置都可能会丢失。然而,Docker 卷提供了一种机制来保存在 Docker 容器内创建的数据。它们是 Docker 用于存储 Docker 容器持久数据的首选机制。

默认情况下,MySQL 将其数据文件存储在该 /data/db/mysql目录中。因此,在部署之前,您需要设置一个 Docker 卷来持久化您的数据库。否则,当容器重新启动时,您的数据将丢失。

让我们创建一个新卷并将其命名为mysql-data。这将用于存储您的所有数据库信息。

docker volume create mysql-data

您可以通过发出以下命令列出 Docker 已知的所有卷:

docker volume ls

 

如您所见,我们新创建的名为 Docker 的卷mysql-data在这里并准备好提供数据。然后可以将其附加到新创建的 MySQL 容器。

 

4.运行一个 MySQL Docker 容器

现在您的机器上有 MySQL Docker 映像和一个用于保存数据的卷,您可以部署一个容器。您还必须使用MYSQL_ROOT_PASSWORD环境变量为 MySQL root 用户设置密码。
 

sudo docker run -d --name=mysql-server -p 3306:3306 -v mysql-data:/data/db/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
  • sudo:这是一个命令行工具,用于以超级用户(root)权限运行程序。在大多数 Linux 系统中,需要超级用户权限来运行 Docker 命令。

  • docker run:这是 Docker 的一个命令,用于创建并启动一个新的容器。

  • -d:这个参数告诉 Docker 在“分离模式”下运行容器,即容器将在后台运行。

  • --name=mysql-server:这个参数指定了容器的名称,这里设置为 mysql-server

  • -p 3306:3306:这个参数用于将容器内部的端口映射到宿主机的端口。这里将容器的 3306 端口映射到宿主机的 3306 端口,这样可以通过宿主机的 3306 端口访问 MySQL 服务。

  • -v mysql-data:/data/db/mysql:这个参数用于数据卷的挂载。它将宿主机上的 mysql-data 目录挂载到容器的 /data/db/mysql 目录,这样容器内的数据可以持久化存储在宿主机上。即使容器被删除,数据也不会丢失。

  • -e MYSQL_ROOT_PASSWORD=123456:这个参数用于设置环境变量。这里设置了 MySQL 的 root 用户的密码为 123456

  • mysql:这是 Docker 镜像的名称,告诉 Docker 要运行的是一个 MySQL 数据库容器。

 

您可以通过列出正在运行的容器来检查容器是否正在运行:

docker ps

 

5. 连接到 MySQL 容器 

您也可以使用基于 GUI 的客户端(例如 navicat)来连接数据库。在 navicat 中指定启动 Docker 容器的机器的 IP 地址,端口,用户名,密码


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

相关文章:

  • 算法专题:栈
  • 【Qt】使用Qt发送http请求封装一个通用类
  • 使用GetX实现GetPage中间件
  • React第十三章(useTransition)
  • GR2——在大规模视频数据集上预训练且机器人数据上微调,随后预测动作轨迹和视频(含GR1详解)
  • 基于SpringBoot+Gpt个人健康管家管理系统【提供源码+答辩PPT+参考文档+项目部署】
  • C++中的继承——第一篇
  • ​CSS之三
  • 【OJ题解】C++实现字符串大数相乘:无BigInteger库的字符串乘积解决方案
  • vue中强制更新视图
  • 网络信息系统的整个生命周期
  • 服务器作业2
  • AUTOSAR COM 模块的主要功能导读以及示例
  • 【jvm】如何设置Eden、幸存者者区的比例
  • C语言 | Leetcode C语言题解之第521题最长特殊序列I
  • C++模拟实现list
  • NRF52832学习笔记(41)——添加串口库libuarte
  • GPT-SoVITS 部署方案
  • sqlalchemy连接mysql数据库
  • 全面解析:大数据技术及其应用
  • 鸿蒙开启无线调试
  • dockerdockerfiledocker-compose操作nginx
  • Mac电脑技巧:适用于Mac的免费外置硬盘数据恢复软件
  • FreeRTOS 队列详解
  • 【spark的集群模式搭建】Standalone集群模式的搭建(简单明了的安装教程)
  • Mybatis 注意传递多种参数,不一定都有参数值,用xml如何写出查询语句