MySQLのバージョン5.7をDockerを利用してローカルにて起動させてみます。
開発環境
macOS Mojava バージョン10.14
Docker Desktop Version 2.0.0.0-mac81 (29211)
下記コマンドでイメージのインストールからコンテナの起動まで実行できます。–nameなどのオプションの説明は後述しています。mysql:5.7でバージョン5.7を指定しています。もしmysqlだけで何も指定しない場合、mysql:latest となり最新のバージョンがインストールされます。
1 |
docker container run --name mysql -e MYSQL_ROOT_PASSWORD=pass -p 3306:3306 -d mysql:5.7 |
docker container run のcontainerは無くてもdocker run で同じコマンドになりますが、あえて明示しておくと分かりやすいです。
実際にコンテナが起動したかを確認してみます。
1 2 3 4 |
docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES db2a2aaf8261 mysql:5.7 "docker-entrypoint.s…" 11 seconds ago Up 10 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql |
オプションの概略
–nameオプションでコンテナ名を設定しています。docker psで確認できるNAMES項目に表示されます。
-e MYSQL_ROOT_PASSWORD=pass は、-eオプションで環境変数を設定しています。パスワードをpassに設定しています。-e MYSQL_USER=taro などでユーザ名を設定することも可能です。デフォルトはrootです。他の環境変数は公式ページに記載されています。
-p 3306:3306 は-pオプションによるポートウォワーディングと呼ばれる機能の設定です。
もし3307:3306 のように設定した場合、コンテナの外からPORTを指定する場合は3307のようになります。つまり前半がホスト側のポートで、後半がコンテナ側のポートとなります。例えばSequel Proアプリ(下記画像参照)を利用してこのMySQLに接続する場合、3307:3306 ならばポートの部分には3307を入力します。
-dオプションでバックグラウンドで実行できます(デーモン起動)。
コンテナへは下記コマンドで入れます。-itの後のmysqlはNAMESを指定します。
1 |
docker exec -it mysql bin/bash |
関連ページ
Docker-MySQLのデータボリュームによる永続化[volume]