正在学习数据库。尝试使用Docker来构建MySQL环境

尝试使用Docker构建MySQL环境。

環境情報PCMacBook Air(M1)OSmacOS Monterey(バージョン12.5.1)Dockerversion 20.10.22

首先,在Docker中创建一个MySQL环境。

安装Docker

如果尚未安装Docker,推荐使用「Docker Desktop」,方便又推荐。

Docker桌面版

 

从这里开始,基本上都是在终端上操作的。

创建一个工作目录并进入其中

为了这次的任务,创建一个任意的目录。

mkdir test_mysql
cd test_mysql

创建一个docker-compose.yml文件。

touch docker-compose.yml

目前的目录结构将变为这样。

test_mysql
    └ docker-compose.yml

将docker相关的信息添加到docker-compose.yml文件中。

vi docker-compose.yml

复制下面的内容。

version: "3"

services:
  database:
    image: mysql:5.7
    platform: linux/amd64
    container_name: mysql_container
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: my_testdb
      MYSQL_USER: docker
      MYSQL_PASSWORD: docker
      TZ: "Asia/Tokyo"
    volumes:
      - ./docker/db/data:/var/lib/mysql
      - ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf
      - ./docker/db/sql:/docker-entrypoint-initdb.d
    ports:
      - 3307:3306
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

服务名称

services:
  database:

在Docker Compose中,称为Service的是用于运行应用程序的每个组件。

这里可以使用任何名称,但最好选择容易理解是什么服务的名称,因为它将显示在Docker日志中。
(例如:如果是数据库,则可以使用db或database等)

图像

mysql:hogehoge

在hogehoge中可以进行版本指定。
如果指定为latest,则使用最新版本。

平台

如果不指定M1 Mac的平台,将会出现错误。

platform: linux/amd64

container_name

コンテナ名を指定する。
ここで指定した名前がコンテナ名になる。

container_name: mysql_container
スクリーンショット 2023-11-15 16.38.07.png

环境

设置环境变量。

environment:
    MYSQL_ROOT_PASSWORD: rootユーザーのパスワード
    MYSQL_DATABASE: 作成するデーターベース名
    MYSQL_USER: 作成するユーザー名
    MYSQL_PASSWORD: 作成するユーザーのパスワード
    TZ: タイムゾーン

卷数 shù)

Dockerは基本的にコンテナを削除するとそれまで作っていたデータも一緒に消えてします。
volumeに保存しておくことでデータの永続化が可能になる。

volumes:
  - ./docker/db/data:/var/lib/mysql
  - ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf
  - ./docker/db/sql:/docker-entrypoint-initdb.d

港口

指定要使用的端口。

ports:
  - 3307:3306

启动容器

docker-compose up -d

进入环境并亲身体验一下

指定一个容器名称(本例中为mysql_container)并进入其中。

docker exec -it mysql_container bash

とりあえずMySQLが入っているか確認

mysql --version
>> Ver 14.14 Distrib 5.7.44, for Linux (x86_64) using  EditLine wrapper

(什么事情也没有的时候)

登录到mysql数据库

mysql -u root -p

由于被要求输入密码,找到docker-compose.yml中environment指定的MYSQL_ROOT_PASSWORD并输入。

mysql>

如果显示成功,就从这里开始执行SQL。

继续

广告
将在 10 秒后关闭
bannerAds