初心者だがAzure 提供の Docker コンテナで MySQLサーバーを構築したい(その弐)

現在 合間見てプログラマのための Docker 教科書」 を少しずつ読んでますが、コンテナ仮想化技術、面白いですね。仮想化については VMWare Player を普段テストやLinux環境構築に使ってまして少々馴染みがあるため、コンテナ仮想化技術というのもなかなか面白い話だと思いました。
さて 前回のエントリでは Azure で提供されてる Docker コンテナで MySQLサーバーを構築しましたが、「プログラマのための Docker 教科書」 を読んでるうち、前回の追記で書いた
Docker デプロイした時点で MySQL サーバー構築されてるはずだから、Doker Hub から MySQL のイメージ取得はそもそも不要!
とわかったので、再度 Docker 仮想マシンを作り直して試してみました。


Docker コンテナに移動して MySQL に接続

Azure ポータルに接続して、Marketplace から公開元 Docker の mysql を検索し、新規作成します。 その前に、以前作ったリソースはグループごとまるっと削除しときましょう。以降の手順は前回を参照のこと。


デプロイが完了したら、SSHクライアントを起動し、Azure ポータルに表示されてる 「Public IP アドレス」 を指定して、Docker 仮想マシンに接続します。


さて、問題はここからです。MySQL用のコンテナがすでにインストールされてるので、docker run コマンドでコンテナを起動します。
前回の追記では、わざわざ既存のコンテナすべて削除して MySQL コンテナ入れなおすという愚を犯してたのですが、知らないというのは恐いもので、まったく余計なことをしていたわけです。なんともお恥ずかしい限り(汗

$ docker run -it mysql /bin/bash


これでDocker コンテナに移動します。そしたら以下のコマンドで MySQL を起動に接続します。

# mysql -h [DockerサーバーのIP] -u root -p


上記 [DockerサーバーのIP] ですが、SSHクライアントからはグローバルIP アドレスやdocker network inspect bridge コマンドで調べたアドレスでは起動できず、ポータルに表示されている仮想ネットワークのIPアドレスで起動できました。この辺りの仕組みは今後も調べる必要がありそうです。


とりあえず show databases コマンドを投げてみたところ。


ちなみにこの Docker コンテナで提供されてる MySQL のバージョンは最新の5.7 なんですよね。ちと嬉しい。
前回のようにクライアントからの接続はまだできてませんが、今日のところはここまでにしときます。


ちなみに上記コマンドの流れは、以下の記事を参考にさせて頂きました。ありがとうございます。m(_ _)m
DockerでMySQLを簡単にセットアップする