tech.chakapoko.com
Home / MySQL

[MySQL][Docker]MySQLをDockerで起動する

MySQL を Docker で起動する

次のコマンドは MySQL を Docker で起動する例です。ポートフォワーディングでホスト側から 3306 ポートで接続できるようにしています。また日本語を扱うためにエンコードの設定を付け加えています。

$ docker volume create mysql
$ docker run \
    --name mysql \
    -p 3306:3306 \
    -v mysql:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=my_secret_root_password \
    -e MYSQL_DATABASE=my_database \
    -e MYSQL_USER=my_username \
    -e MYSQL_PASSWORD=my_password \
    -d mysql:5.7 \
    --character-set-server=utf8mb4 \
    --collation-server=utf8mb4_unicode_ci

M1 Macで古いバージョンのMySQLイメージを使う

CPUアーキテクチャをエミュレーションするために --platform オプションが必要になることがあります。

$ docker volume create mysql
$ docker run \
    --platform linux/x86_64 \
    --name mysql \
    -p 3306:3306 \
    -v mysql:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=my_secret_root_password \
    -e MYSQL_DATABASE=my_database \
    -e MYSQL_USER=my_username \
    -e MYSQL_PASSWORD=my_password \
    -d mysql:5.7 \
    --character-set-server=utf8mb4 \
    --collation-server=utf8mb4_unicode_ci

クライアントから接続する

$ docker exec \
    -it mysql \
    sh -c 'exec mysql -umy_username -p'

別の Docker コンテナで MySQL クライアントを起動して接続する

--network オプションでホストのネットワークを選択しています。

$ docker run \
    -it \
    --network host \
    --rm \
    mysql:5.7 \
    mysql -h127.0.0.1 -umy_username -p

終了させる

$ docker stop mysql
$ docker rm mysql