Top > 特集・コラム > DockerコンテナにMySQL 5.7をインストールする

DockerコンテナにMySQL 5.7をインストールする

Dockerコンテナは最近大きく注目されている仮想化技術です。大手・企業ベースでも採用が増加しているので、いずれ身近な技術になる可能性があります。
DockerコンテナへのMySQL導入から運用まで確認してみます。

MySQLコンテナの作成

MySQLコンテナの作成

さっそくMySQLをDocker内に配置してみましょう。

Dockerの操作では、FROM、RUN、ADDなど直観的に分かる非常にシンプルな作りになっています。RUNでDockerの実行が行われますが、この際に各種の設定を指定することで、容易に複数の実行指示が行えます。例えばMySQLであればデータベース作成やセットアップ情報の設定など、RUN時に一緒に行えます。

MySQLコンテナイメージは公式コンテナイメージが用意されていますので、まずはこれを使うのが確実でしょう。

$ dokcer pull mysql

バージョンを指定する場合は以下のようにします。バージョンを指定しない場合は、最新のバージョンがダウンロードされます。

$ dokcer pull mysql:5.7

これでMySQLコンテナイメージがPULLされ、ダウンロードされます。
PULLの実行後は作成されたイメージを確認してください。

$ docker images

これで各コンテナイメージの一覧が表示されますので、MySQLがあればコンテナイメージ作成は成功です。

データボリュームコンテナの作成

Dockerの仮想化技術におけるメリットはOSを共通として、その上に複数の仮想化サーバを作成するので、その作成や削除が容易にできる点です。逆にいうと永続的なデータの保管には向きません。そのためデータを扱うデータベースのコンテナ内に情報を保持しておくわけには行きません。

そこで別途にデータを扱うための仕組みが必要になります。Dockerで永続的データを扱うには「データボリューム」と「データボリュームコンテナ」の二通りの方法があります。「データボリューム」はDockerコンテナ内のファイル・ディレクトリにデータを格納しますが、「データボリュームコンテナ」では別途コンテナを作成しています。

ここではデータボリュームコンテナの活用方法で進めます。
まずはコマンドでデータボリュームコンテナを作成します。

$ docker run -d -v /dir/data --name storage busybox true

-dはバックグラウンドでの実行。-v /dir/dataはディレクトリの指定。--name storageはコンテナ名。
busyboxはデータボリュームコンテナではよく使われるようですがbusyboxでなくとも問題ありません。trueで正常終了となります。

コンテナの起動とクライアントからの接続確認

作成したデータボリュームコンテナをMySQLコンテナにマウントして起動します。

$ docker run --volumes-from storage --name mysql -e MYSQL_ROOT_PASSWORD=mysql -d -p 3306:3306 mysql

これでMySQLのデータはデータボリュームコンテナに格納されます。

同時にMySQLコンテナが起動していますので、動作を確認してみましょう。まずコンテナIDをpsコマンドで確認します。コンテナIDを付与して接続コマンドを実行します。

$ docker exec -it コンテナID
$ mysql -u root -p

これでMySQLに接続できますので、コマンドでDB操作ができます。これでDB接続が確認できます。

PHPなどのアプリケーションからの接続も基本的には通常のMySQLと同様の設定で可能です。Dockerコンテナ外からのアクセスではホストのIPアドレスに注意してください。MySQLコンテナのIPがホストです。

まとめ

クラウドの発達で仮想化技術の展開は、デジタル業界でも大変大きく広がりました。稼働本サーバと同様の環境をローカルでも再現でき、リリースも迅速に対処できる仮想化技術は益々進化する傾向にあります。

なかでもDockerコンテナは今までの仮想化技術に新たな活用方法を提示してきました。コンテナ化することで、必要な機能のみ扱うことができ、再現性にも優れたDockerは、作業負担の軽減につながります。ここ数年で広まったDockerに、今後も目が離せません。

Solution


  • 株式会社ソフトエイジェンシー
  • 〒323-0820 栃木県小山市西城南5丁目16番地9
  • TEL: 050-5505-5509 FAX: 0285-31-5845
company information

MySQL正規販売パートナー株式会社ソフトエイジェンシーはISO27001認証取得企業です。
SoftAgency®は株式会社ソフトエイジェンシーの登録商標です。


SoftAgencyは、株式会社ソフトエイジェンシーの登録商標です。
OracleとJavaは、Oracle Corporation 及 びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。