正在学习数据库。尝试使用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
环境
设置环境变量。
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。
继续