准备

环境:
苹果:
CPU:苹果M1
操作作系统: Sonoma 14.6.1
Docker 桌面:
版本: 4.34.2

方向结构

DIR 结构

graph TB;
    subgraph "top"
        A["docker-compose.yml"]
        B[".env"]
    end
docker-compose.yml
services:
  mysql:
    image: mysql:8.0.39
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
    ports:
      - "${MYSQL_HOST_PORT}:3306"
    volumes:
      - db-data:/var/lib/mysql

volumes:
  db-data:

结构

首先,定义所需的属性。

services:
  mysql:
    image: mysql:8.0.39
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}

作为镜像,我们指定了 MySQL Docker 官方镜像。
如果将 MySQL 的版本指定为最新版本,则将基于最新版本创建镜像。截至撰写本文时
,最新版本是 9.0.1。
指定版本 8.0.39 的原因是它是与 MySQL Workbench 兼容的最新版本。

作为环境,我们设置了 root 用户密码。
安装 MySQL 时会自动创建 root 用户。
可以指定的环境变量列表写在 docker hub 中。

接下来,映射端口。

services:
  mysql:
    image: mysql:8.0.39
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
    # new attribute.
    ports:
      - "${MYSQL_HOST_PORT}:3306"

3306 是 MySQL 侦听 TCP/IP 的默认端口号。

MySQL Workbench 使用此端口连接到容器。

最后,使数据库数据持久化。

services:
  mysql:
    image: mysql:8.0.39
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
    ports:
      - "${MYSQL_HOST_PORT}:3306"
    # new attribute.
    volumes:
      - db-data:/var/lib/mysql

new element.
volumes:
  db-data:

通过定义 volumes 元素创建持久数据存储。
在本例中,我们创建名为 的卷。db-data

MySQL 的默认数据目录是 /var/lib/mysql,我们将其挂载到卷中。

.env 域名

MYSQL_HOST_PORT={host-port}
MYSQL_ROOT_PASSWORD={root-user-password}

Docker

创建容器、映像和卷

1、打开终端。

2、将当前目录移动到所在位置。docker-compose.yml

3、执行

docker compose create
docker compose create

检查 MySQL 的版本

1、启动容器。

docker compose start

2、检查容器的名称。

docker ps

该列与它相对应。Names

3、检查容器中的版本。

docker exec <container-name> mysql -V

例如,返回以下响应。

mysql  Ver 8.0.39 for Linux on aarch64 (MySQL Community Server - GPL)

4、停止容器。

docker compose stop

MySQL 工作台

下载

下载。 要下载的版本是 。 M1芯片采用的是ARM架构,所以合适的是。
workbench_download8.0.38macOS (ARM, 64-bit), DMG Archive
8.0.38macOS (ARM, 64-bit), DMG Archive

添加连接

1、启动容器以连接到 MySQL。

docker compose start

2、打开它并单击加号按钮。
在这里插入图片描述

3、将打开以下对话框。

workbench_setup新连接

输入“连接名称”的任意值,然后使用 更新“端口”。.env.MYSQL_HOST_PORT

4、单击“测试连接”按钮。进入
后,将进行连接测试。
如果成功,请单击“确定”按钮关闭此对话框。.env.MYSQL_ROOT_PASSWORD

5、停止容器。

docker compose stop

操作

1、启动容器。

docker compose start

2、单击连接。

workbench_top_after

3、如果未保存在钥匙串中,请输入。.env.MYSQL_ROOT_PASSWORD

4、作直至满意。
workbench_main

5、停止容器。

docker compose stop

更多推荐