もふもふ技術部

Dockerでmysqlサーバコンテナへ別のコンテナからアクセスする


いろいろDockerを試してみて個別にコンテナたてて動かすのはある程度理解出来てきたけど、まだ何も実現出来ていないのもうちょっと実戦に近づきたいところ。

移管したいWEBアプリケーションはmysqlを使っているので、webサーバ用とmysql用のコンテナを分けてlinkする運用を目指してやってみます。

主にこちらを参考にしてます。
http://www.alexecollins.com/docker-linking-containers/

MySQLサーバコンテナ

※ centos6をpullしている必要があります

Dockerfile

イメージをbuildしてコンテナを起動します。
–nameはコンテナに名前をつけられます。これをつけておくコンテナ操作が楽になるのでオススメ。

ちゃんと起動してますね。

ちなみに、DockerfileでMySQLのパスワードなしrootログインを許可しないと下記のようなエラーが発生します。

/var/log/mysqld.log

次にホストOS側からMySQLコンテナのmysqlに接続してみます。今回はホストOS側にもMySQLが入っていたのでポート13306をMySQLコンテナの3306に転送する設定で起動します。

ifconfigでMySQLコンテナへIPアドレスを調べて接続します。成功!

クライアント側コンテナ

続いてMySQLサーバコンテナにアクセスするコンテナを作ります。こっちは単純。

Dockerfile

クライアント側コンテナのbashが立ち上がるのでmysql接続を確認する。

できたああああ!!

おまけ

試行錯誤しながらdocker runをしてるとコンテナが増えまくるのでいらなくなったの削除したくなります。

停止中の全てのコンテナを削除するコマンド
http://blog.n-z.jp/blog/2013-12-24-docker-rm.html

起動中のコンテナはエラーになるので消えません。

あと–nameをつけてrunすると同じ名前でrunできなくなるので古いの消したくなります。

これもdocker rmで削除出来ます。

The following two tabs change content below.
原田 敦

原田 敦

日本CAWのエンジニア。もふもふ部の部長。得意分野はRuby on Railsを使った小規模WEBアプリケーションを高速で開発すること。週末の楽しみは一人お菓子パーティー。三度の飯より小動物をもふもふするのが好きです。
Tagged on: , ,