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