初心者だが Docker で MySQLサーバー構築を試みたい

ほいほーい、相変わらずサーバーサイドに弱いわたくしですが、本日も Azure 上に MySQLサーバーを構築したいと思います。
先日も MySQL データベースを Azure 上に設けたわけですが、Marketplace 調べたら他にもいろいろ MySQL のサービスが見つかりました。それがこちら。

二つ目の Docker ・・・最近各所で耳にしますが、wiki で調べてみると・・・

Docker(ドッカー)はソフトウェアコンテナ内のアプリケーションのデプロイメントを自動化するオープンソースソフトウェアである。・・・

とあります。こちらの記事も詳しい。

アプリ開発者もインフラ管理者も知っておきたいDockerの基礎知識

なるほど・・・・コンテナ管理ソフトウェアなのね。といってもイマイチよくわかってないがw
まさに周回遅れっ、いまさら感が炸裂しておりますが、そこんとこはご容赦を願いつつ―!(*ノωノ) さっそく Docker の MySQL を Azure 上に展開してみたいと思います。


Docker をデプロイ

Azure ポータルに接続し、「新規 +」アイコンをクリック。「Marketplace を検索」 に 「MySQL」 と入力し Enter で、Marketplace 上 のMySQL に関するサービスが列挙されます。本日のデプロイターゲットは上から二つ目、公開元が Docker の mysql になります。


「作成」をクリック。必要な情報を入力し 「OK」 をクリック。今回はリソースグループを 「docker」、仮想マシン名を 「docker-mysql」 にしました。ベタベタですね(笑

この設定を見ていると、仮想マシンを作ったうえで Docker コンテナを配置、コンテナ内のMySQL を利用するという流れになるようです。どうやらDocker Hub というものらしいです。


次にサイズです。サイズは一番安い 「A0 Basic」 を選び 「選択」 をクリックします。


「設定」 は特にそのままでおk。「概要」 もおkで進めます。


デプロイ開始、そのまましばらく待たされます・・・・まあ気長に待つとしますか。


デプロイ完了しました。


さて、MySQLにはどうやって接続するか・・・まずはSSHクライアントの Putty を起動し、Azure ポータルに表示されてる 「Public IP アドレス」 を指定して接続します。


ログインし、sudo mysql と打ち込んでも Command Not Found と怒られるだけ。そりゃそうか、そもそも Docker が起動してないようなので、Docker を起動します。ここから先は以下の記事が詳しい。
Docker Hubのオフィシャルイメージを使ったLAMP環境(Apache+PHP+MySQL)構築

一時的に Docker コンテナのMySQL が起動し、バージョンも確認できた。ただしその後 PuTTY 再起動し仮想マシンにログインしたら、MySQL に接続できん・・・(+_+) というわけで、現時点さっぱり判らないから続きは次回!(の予定)


2016/04/29 追記

チラシの裏のような記事ですが、試行錯誤しながら試してます。まずはコンテナをいったんすべて削除して・・・

docker rm -f $(docker ps -a -q)


上記記事にとおり MySQL のイメージを Docker Hub から取得し起動します。

docker run --name mysql -e MYSQL_ROOT_PASSWORD=pass -d mysql:5.7


docker exec で、コンテナに移動します。

docker exec -ti mysql bash


MySQL を起動。これで Docker コンテナの MySQL を動かすことができるようになった。

mysql -ppass


しかし、MySQL の起動に時間がかかるのか、初回のコマンドではエラーになり、2〜3分後再度コマンド投げたら接続できた。こういうもんなのか?


以上、いまはあくまでお試しなのでかなりテキトーですが、今後 Docker コンテナを業務で使うつもりなら、書籍やネットで体系的に学習する必要がありますね。