Dockerとdocker-composeでMySQLを構築する




どうも高妻です。Twitterでプログラミングのことや暗号通貨のことをつぶやいているのでよかったらフォローしてください。  

DockerでMySQLを構築

まずはMySQLをdockerのみで構築してみます。

runコマンドでコンテナに名前をつけてmysqlイメージからコンテナを起動しています。

-eオプションは環境変数を設定し、-dはdetachといいバックグラウンドでコンテナを起動します。

起動したら下記コマンドでコンテナ内に入ります。

envコマンドで起動時に設定した環境変数を確認できます。mysqlコマンドで起動時に設定したuserとpasswordでmysqlにログインできることを確認できます。

起動したコンテナは下記コマンドで停止できます。

docker-composeで起動する

docker runコマンドでmysqlのコンテナを起動しましたが、これだと毎回いろんなオプションをつけてコマンドを実行しないといけないので面倒になってしまします。

そこでdocker-composeを使います。

docker-composeコマンドはdocker-compose.ymlファイルにコンテナの設定を定義することができ、そのファイルを元にコンテナを起動することができるようになります。

上記mysqlのdockerコマンドをdocker-compose.ymlに設定すると下記のようになります。これで管理しやすくなりますね。

docker-compose.ymlを定義したら同じディレクトリで下記コマンドを実行することでコンテナを起動できます。-dオプションをつけることでバックグラウンドで起動できます。

プロセスは下記で確認できます。

ホストOSからコンテナのmysqlに接続する

これまではコンテナに入ってからmysqlに接続していましたが、ホストOSからも接続できるようにdocker-compose.ymlを修正します。portsはホストマシンポート:コンテナのポートとなっています。

接続するときは明示的に127.0.0.1を指定します。

おすすめ書籍

出版されてから少し時間が経っていますが、Dockerの基本は変わらないので非常に勉強になります。

本書はDockerが利用される環境や背景を説明し、導入前のシステム設計、Dockerの基本的な利用方法、Dockerfileによる自動化の手法、管理・監視ツールについて、実際に操作をしながら解説されています。

また、Docker周辺のシステム環境として、Atomic Host、CoreOSといったコンテナ運用OSや、より複雑な運用環境で求められる、KubernetesやDocker Swarmによるマルチホストやクラスタシステムについても、テスト環境を構築しながら解説されいるので手を動かしながら学ぶことができます。

The following two tabs change content below.

高妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です