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

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.mrgr.cn/news/64227.html

相关文章:

  • 详解数仓分层-why
  • 2022高等代数下【南昌大学】
  • 三步入门Log4J 的使用
  • 探索未来驾驶:全面解析现代汽车高级辅助驾驶系统功能(APA 、SDA 、TBA、RPA、HPA、PEB)
  • 编程范式 详解
  • 【Docker】针对开发环境、测试环境、生产环境如何编排?
  • 2024 Rust现代实用教程 Trait特质
  • Docker:namespace隔离实战
  • 模板注入代码执行漏洞
  • 前端三件套(HTML + CSS + JS)
  • 为什么大家都在学数字孪生呢?
  • Ubuntu删除docker
  • DataFlow v202410 版本更新 一站式数据处理平台
  • WPF中的CommandParameter如何使用
  • 今日 AI 简报|零样本视频生成、移动端轻量语言模型、自动驾驶多模态模型等前沿 AI 技术集中亮相
  • JavaScript本地存储的方式有哪些
  • Linux安装部署MinIO
  • 常见 CSS 选择器用法
  • 七、Go语言快速入门之函数func
  • RHCE的练习(10)
  • 【论文阅读】Associative Alignment for Few-shot Image Classification
  • 告别传统办公软件,这款编辑器让你事半功倍!
  • GEE 训练教程——ee.Image()的使用
  • 分拣线番茄分级缺陷识别图像分割系统:创新探讨教学
  • RHCE【SELinux】
  • Fake Location解除屏蔽分析