
どもども
今回は「DockerでMySQLをローカルに環境構築」について解説します。

どっかー…? なんか難しそう…

こんなあなたにピッタリな記事👇
- 開発環境を一瞬で作りたい
- チームと同じ環境で作業したい
- MacでMySQLをすぐに使えるようにしたい
がまぁまぁわかります!
未経験でも気軽に!サブスク型プログラミングスクール【Freeks】
Dockerとは?
Dockerとは、「アプリを動かすための環境」をまるごとお弁当箱のようにパッケージにできるツールです。
メリット
- ✅ 開発環境の構築が一瞬でできる
- ✅ チームで同じ環境を再現できる
- ✅ テスト・本番環境の切り替えも簡単
など、プログラミング学習でも現場でも大活躍します。
環境構築手順
ステップ0:Macのチップ確認(IntelかApple Siliconか)
まず前提として、自分のMacの「チップの種類」を確認します。
✔ 確認方法
- メニューバー左上の「(リンゴマーク)」をクリック
- 「このMacについて」を選ぶ
- 表示されるウィンドウで「チップ」の項目を確認
下記が表示された場合、Apple M4 Pro → Apple Silicon 用の Docker を選びましょう。

ステップ1:Docker Desktop のインストール
① Docker公式サイト にアクセス
② 「Download for Mac – Apple Silicon」を選んでインストーラをダウンロード

③ ダウンロードされた.dmg
を開き、「Docker.app」をアプリケーションフォルダに移動

ステップ2:Docker初期セットアップと起動
① アプリケーションから Docker
を起動

「Docker サブスクリプション利用規約」への同意確認画面が表示されます。
📌 ざっくり要約
- 個人利用 や 小規模な開発会社での使用なら、無料で使えます!(AcceptしてOK)
- 商用利用で「社員250人超 or 年間収益1,000万ドル超」の場合は有料プランが必要
② 「Use recommended settings」でOK

少し待つと、画面右上のメニューバーに「🐳クジラマーク」が表示されます。
補足:Docker Desktop のアカウント登録 or ログイン画面
Dockerアカウントを使うと、Docker Hub(イメージ共有サービス)と連携したり、CI/CD用に活用できたりします。
ただし、ローカルで開発するだけならアカウント登録は不要です!
「Skip」をクリックしたら、いよいよDockerが使えるようになります🐳

ステップ3:MySQLコンテナ用のdocker-compose.ymlを準備
下記は docker-compose.yml
は MySQLコンテナをローカルに構築するための雛形になります。
version: '3.8' // Docker Composeのバージョン
services:
mysql: // サービス名(任意)
image: mysql:8.0 // 使用するMySQLのバージョン
container_name: 任意コンテナの名前
restart: always. // PC再起動後も自動で再起動する
environment: // MySQLの初期設定(環境変数)
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql // データ永続化
volumes:
mysql_data: // データ永続化
データ永続化とは?と思われた方は、下記の記事にて解説しています!
ステップ4:.envファイルの準備
上記の docker-compose.yml
は .env
とセットで動作します。
同じフォルダに .env
ファイルを作成して、以下のように記述してください。
MYSQL_ROOT_PASSWORD=ルートパスワード
MYSQL_DATABASE=データベース名
MYSQL_USER=ユーザー名
MYSQL_PASSWORD=パスワード

ステップ5:MySQLコンテナの起動
docker-compose.yml
がある場所で下記を実行
docker compose up -d
成功すると、MySQLが起動して .env
の設定が反映された状態になります。
ステップ6:MySQLコンテナに接続
下記は、Docker コンテナ内の MySQL に接続して、対話的に操作するコマンドです。
パスワード聞かれたら .env
に書いた rootpass
を入力
docker exec -it 任意コンテナの名前 mysql -u root -p
ログインできたら次のコマンドで設定したデータベースがあるか確認
SHOW DATABASES;
ステップ7:文字化け防止(utf8mb4)
Docker経由でMySQLに接続すると、文字コードが latin1
になることがあります。
全角文字を扱うには utf8mb4
にするには以下のようにオプションを追加して接続してください。
docker exec -it b2b-mysql mysql -u root -prootpass --default-character-set=utf8mb4
その後のセッション内では、latin1
が utf8mb4
に変更されています。
SET NAMES utf8mb4;
⚠️ 注意点
exit;
すると元に戻るため、必要に応じて my.cnf
に設定を加えるか、SQLスクリプトで自動化しましょう。
ターミナルでテーブルを作ってみよう
DockerでMySQLを使う場合は、基本的にターミナル(CLI)で操作します。
ただし、GUIで操作したい場合も、別のツールを使えば可能です。
今回はターミナルで実行する例を紹介します。
① MySQLのプロンプトに接続
docker exec -it b2b-mysql mysql -u root -prootpass --default-character-set=utf8mb4
② 接続後の表示
mysql>
③ 以下のSQLで、users
テーブルを作成
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100)
);
④ SHOW TABLES;
を実行すると、テーブルが作成されたことを確認できます。

SQL(クエリ)とは?と思われた方は、下記の記事にて解説しています!
補足:Docker操作の基本コマンド
docker ps -a # コンテナ一覧(停止中も)
docker stop コンテナ名 # 停止
docker rm コンテナ名 # 削除
docker images # イメージ一覧
docker rmi イメージID # イメージ削除
docker volume ls # ボリューム一覧

おつかれさまでした!
コメント