目次
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