MySQL Dockerコンテナのデプロイと使用方法 - TechRepublic

MySQL Dockerコンテナのデプロイと使用方法 - TechRepublic

多くのWebアプリケーションやサービスはデータベースに依存しています。おそらく、あなたのビジネスもWebアプリケーションやサービスに依存しているでしょう。リモートデータベースをホストするために専用サーバーをセットアップしたくない場合は、コンテナ化されたソリューションを選択することもできます。これはエンタープライズレベルにまで拡張するアプリケーションには最適な選択肢ではないかもしれませんが、中規模以下のインスタンスでは、特に専用データベースサーバーとして使用できるハードウェアがないアプリケーションにとって、非常に大きなメリットとなる可能性があります。

この悩みを軽減するために、MySQL Dockerコンテナをデプロイし、他のコンテナやアプリケーションから接続できるようにする手順を詳しく説明します。ここでは、既にDockerが起動していることを前提としています。Ubuntu 16.10 Serverプラットフォームでデモを行いますが、手順はオペレーティングシステムに関わらず同じです(Dockerが動作していれば)。

それでは、デプロイしてみましょう。

イメージを引っ張る

まず最初に、適切なイメージをダウンロードする必要があります。ここではMySQLの最新リリースを使用します。特定のリリースが必要な場合は、「最新」タグを5.5、5.6、5.7、8.0などに置き換えてください。

MySQL Docker イメージをプルダウンするには、次のコマンドを発行します。

docker pull mysql/mysql-server:latest

注: 上記のコマンドは、docker グループのメンバーであるユーザーが実行する必要があります。そのグループにユーザーがいない場合は、sudo usermod -a -G docker USERNAMEコマンドを実行してください(USERNAME は追加するユーザー名です)。コマンドが完了したら、ログアウトして再度ログインすれば、問題なく実行できます。

コンテナのデプロイ

MySQLイメージをマシンにインストールしたら、コンテナをデプロイします。これは以下のコマンドで完了します。

docker run --name=mysql01 -d mysql/mysql-server:latest

上記のコマンドでは、コンテナにmysql01という名前を付けました。コンテナの名前は自由に付けることができます。

この時点で、コマンド docker ps を発行して、MySQL コンテナが実行中であることを確認できます (図 A )。

図A

参照:特別レポート:クラウド vs. データセンターの決定(無料PDF)(TechRepublic)

MySQLのパスワード

LinuxマシンにMySQLをインストールすると、インストール中またはインストール後にデータベース管理者のパスワードを作成するように求められます。しかし、今回は既にデータベースがインストールされ実行されているDockerコンテナをデプロイしました。パスワードを設定せずにデータベースを使用するにはどうすればよいでしょうか?幸いなことに、これは実はとても簡単です。デプロイ中にランダムなパスワードが生成されます。そのパスワードを確認するには、次のコマンドを実行します。

docker logs mysql01

このコマンドの出力から、MySQL の root ユーザーのパスワードが表示されます (図 B )。

図B

MySQLサーバーへのログイン

次に、コンテナ化されたサーバーにログインする必要があります。これは次のコマンドで実行できます。

docker exec -it mysql01 mysql -uroot -p

rootユーザーのパスワードの入力を求められます。docker logs mysql01 コマンドで表示されたパスワードを入力してください。MySQLサーバーにログインしたら、以下のコマンドでパスワードを変更できます。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';

ここで、newpassword は使用する新しいパスワードです。exit コマンドでMySQLシェルを終了すると、コンテナ化されたMySQLデータベースを使用する準備が整います。

コンテナのシンプルさへようこそ

MySQLコンテナのセットアップはこれで完了です。専用のデータベースサーバーをセットアップするための予備ハードウェアがない場合、またはテスト目的でデータベースサーバーが必要な場合でも、Dockerを使えばコンテナ化されたデータベースサーバーを非常に簡単にデプロイできます。ぜひ試してみて、ニーズにぴったり合うかどうかを確認してください。

Tagged: