MySQLをDockerで使用する方法

MySQLをDockerで使用する方法

Dockerはアプリケーションをコンテナとしてパッケージ化し、そのコンテナをどこでも実行できるお馴染みのツールですね。
MySQLのようなデータベースもDockerを使って簡単にセットアップできます。

まず、Dockerがインストールされていることを確認します。
インストールされていない場合は、公式サイトからインストールしてください。

次に、MySQLのDockerイメージを取得します。
以下のコマンドで公式のMySQLイメージをダウンロードできます。

docker pull mysql:latest

このコマンドは、最新バージョンのMySQLをダウンロードします。
latestの代わりに特定のバージョンを指定することもできます。

次に、MySQLコンテナを起動します。
以下のコマンドを使います。

docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest

このコマンドの各部分についてですが、

  • --name mysql-container: コンテナにmysql-containerという名前を付けます。

この名前は任意ですが、わかりやすい名前を付けると管理がしやすくなります。

  • -e MYSQL_ROOT_PASSWORD=my-secret-pw: 環境変数MYSQL_ROOT_PASSWORDにルートユーザーのパスワードを設定します。

my-secret-pwの部分は、任意のパスワードに置き換えてください。

  • -d: デタッチモードでコンテナを実行します。

つまり、コンテナをバックグラウンドで実行します。

  • mysql:latest: 使用するMySQLのイメージとそのバージョンを指定します。

コンテナが起動したら、MySQLサーバーが稼働しています。
コンテナ内のMySQLにアクセスするには、以下のコマンドを使用します。

docker exec -it mysql-container mysql -u root -p

このコマンドでは、mysql-containerという名前のコンテナ内でMySQLクライアントを起動し、ルートユーザーでログインします。
ログイン時に先ほど設定したパスワードを入力してください。

また、MySQLのデータを永続化するために、ホストマシンのディレクトリをコンテナのデータディレクトリにマウントすることが推奨されます。
以下のようにコマンドを変更することでデータを永続化できます。

docker run --name mysql-container -v /path/to/local/dir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest

ここで、/path/to/local/dirはホストマシン上のディレクトリを指定し、/var/lib/mysqlはMySQLのデータディレクトリです。
この設定により、MySQLのデータがホストマシンのディレクトリに保存され、コンテナが停止してもデータが失われません。

MySQLの設定をカスタマイズするには、カスタムの設定ファイルを作成し、それをコンテナにマウントします。
以下のようにします。

docker run --name mysql-container -v /path/to/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest

このコマンドでは、/path/to/my.cnfにカスタム設定ファイルを指定し、コンテナの/etc/mysql/my.cnfにマウントします。

最後に、MySQLコンテナを停止する方法についてです。
コンテナを停止するには、以下のコマンドを使用します。

docker stop mysql-container

コンテナを削除する場合は、以下のコマンドを実行します。

docker rm mysql-container

Dockerを使うことで、MySQLを簡単にセットアップし、必要に応じて他のシステムに移行することが容易になります。
また、ホストマシンへの影響を最小限に抑えることができ、開発やテスト環境に適しています。