Traffine I/O

日本語

2023-04-07

Dockerを使用したMySQL環境の構築

Dockerを使用してMySQL 8.0環境を構築する

この記事では、Dockerを使用してMySQL 8.0環境を構築する手順を説明します。MySQLはもっとも人気のあるオープンソースのリレーショナルデータベース管理システムの一つです。Dockerを利用することで、ホストOSに手動でMySQLサーバーをインストールし、設定する手続きを経ずに、開発やテスト目的のために素早くMySQLサーバーをセットアップすることができます。

docker-compose.ymlの設定

まず、MySQLサーバーコンテナを作成するために、docker-compose.ymlファイルを作成します。このファイルには、Docker HubからMySQLイメージを取得し、新しいMySQLコンテナを作成し、必要な環境変数を設定するための必要な構成が含まれます。

以下は、docker-compose.ymlファイルの内容です。

docker-compose.yml
version: '3.9'

services:
  mysql:
    image: mysql:8.0.28
    platform: linux/amd64
    container_name: mysql-container
    ports:
      - '3306:3306'
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: demo
      TZ: 'Asia/Tokyo'

MySQLコンテナの起動

docker-compose.ymlファイルの設定が完了したら、MySQLサーバーコンテナを起動することができます。Docker Composeを使用すると、わずかなコマンドでアプリケーションのサービスを管理できます。ターミナルで、docker-compose.ymlファイルがあるディレクトリに移動し、以下のコマンドを実行します。

bash
$ docker compose up -d

MySQLサーバーコンテナが起動していることを確認するために、docker psコマンドを使用できます。このコマンドは実行中のDockerコンテナを一覧表示します。以下は、コマンドと出力です。

bash
$ docker ps

CONTAINER ID   IMAGE          COMMAND                  CREATED          STATUS          PORTS                               NAMES
baf6d46af198   mysql:8.0.28   "docker-entrypoint.s…"   26 seconds ago   Up 24 seconds   0.0.0.0:3306->3306/tcp, 33060/tcp   mysql-container

MySQLコンテナが実行されていることを確認した後、docker execコマンドを使用してMySQLコンテナのシェルにアクセスすることができます。

bash
$ docker exec -it mysql-container

root@baf6d46af198:/#

MySQLコンテナ内に入ったので、MySQLクライアントCLIを使用してMySQLサーバーに接続することができます。rootユーザーとして接続するには、次のコマンドを使用します。

bash
root@baf6d46af198:/# mysql -u root -p

Enter password: root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.28 MySQL Community Server - GPL

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

MySQLの操作

MySQLサーバーに接続したら、show databases;コマンドを使用して利用可能なデータベースを確認できます。

bash
mysql> show databases;

+--------------------+
| Database           |
+--------------------+
| demo               |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.11 sec)

demoデータベースで操作を行うためには、まずuseコマンドを使用して選択する必要があります。

bash
mysql> use demo

Database changed

現在選択されているデータベースを確認するには、select database();コマンドを使用できます。

bash
mysql> select database();

+------------+
| database() |
+------------+
| demo       |
+------------+
1 row in set (0.00 sec)

demoデータベースが選択されている状態で、テーブルの作成、データの挿入、データのクエリなど、さまざまなデータベース操作を行うことができます。以下は、テーブルの作成、データの挿入、およびデータの取得の例です。

bash
mysql> create table test(id int, name varchar(10));

Query OK, 0 rows affected (0.13 sec)
bash
mysql> insert into test(id, name) values (1,"john");

Query OK, 1 row affected (0.10 sec)
bash
mysql> select * from test;

+------+--------+
| id   | name   |
+------+--------+
|    1 | john   |
+------+--------+
1 row in set (0.04 sec)

クリーンアップ

操作が終了したら、MySQL接続を終了します。

bash
mysql> exit

Bye

このコマンドでMySQLサーバーからログアウトされます。

MySQL接続を終了した後、Dockerコンテナのシェルに戻ります。Dockerコンテナからも退出することができます。

bash
root@baf6d46af198:/# exit

exit

不要なリソースを消費しないようにするために、使用が終わったらDockerコンテナを停止し、削除した方が良いです。以下のコマンドを使用してDockerコンテナを停止し、削除します。

bash
$ docker compose down

[+] Running 2/2
 ⠿ Container mysql-container  Removed                    2.8s
 ⠿ Network my_proj_default    Removed

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!