skillup

技術ブログ

サーバー・ネットワーク

dockerコンテナ間での連携(PHP+MySQL)

投稿日:

dockerでのコンテナ間の連携について

以前、dockerではCentOSのイメージからコンテナを作成し、その中にphp,apache,mysqlをインストールしてましたが、dockerの使い方としてはアプリとDB側で別々にコンテナを作成するのが一般的なようです。

以前勉強したリンク

docker上でミニサービスを起動させるまで

元々の意図としては環境を平易に作成できるのがメリットなのと前者のような感じだとphpのバージョンをあげたり、mysqlのバージョンを上げる時に1つのイメージに対する依存度が上がり、vagrantを使うのと変わらないなあと思ってしまいます。(それでもvagrantよりは軽いのでいいと思いますが・・・)

今回ですが、下記の状態で作成しました。

  • php5.6+apache
  • mysql5.7

php5.6+apacheのDockerfile

mysqlのDockerfile(下記ぐらいの内容だったら普通にpullすればいいかも・・・・)

それぞれをビルドしてイメージを作った後、コンテナを立ち上げる時に下記のようなコマンドを打ちます。

phpと連携する場合、mysql側のコンテナを先に立ち上げておく必要があります。

またmysqlのコンテナを作成する場合は初期時にrootのパスワードがないと起動しないようですので、上記のようにコンテナ起動時に変数を渡す必要があります。

次にphp側のコンテナ起動ですが、下記のようになります。

–linkですがこれが連携のオプションのようです。(mysql:mysqlはエイリアス?のようです)

連携が成功しているかどうかですがphp5.6側のコンテナに入って、/etc/hostsファイルを確認し、mysql側が名前解決されているかどうかを確認すればOKです。

参考リンク

Docker Hubのオフィシャルイメージを使ったLAMP環境(Apache+PHP+MySQL)構築

-サーバー・ネットワーク
-,

執筆者:


comment

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

関連記事

no image

nginxまとめ

10~11月はデータベースをちょっと勉強しておりましたが、12,1ぐらいはサーバーインフラ系の強化月間としようかと思います。 しばらくはnginxについてです。 Contents1 nginxの概要2 …

no image

wordpressでのnginx設定

ここ1年、apacheではなく、nginxでサービスを作ることが多いため、設定にだいぶ慣れてきました。 今回はwordpressの設定です。 バーチャルホストでsample.comとアクセスをするとw …

no image

パス名パラメータの未チェック・ディレクトリトラバーサル

本日もセキュリティ関係のネタを少々。ディレクトリ・トラバーサルという攻撃です。 Contents1 ディレクトリ・トラバーサルとは?2 被害3 対策4 参考リンク ディレクトリ・トラバーサルとは? g …

no image

nginxインストール(サブディレクトリでcakePHPを使いたいとき)

以前nginxのインストールを行いましたが、理解が浅かったようで今回すげーはまりました(汗) ガチンコ塾でもいっていますが、覚え始めの時はコピペでもいいですが(最初から100%の理解は非現実的)、慣れ …

no image

シェルスクリプトでのsshログインとメール送信

久々にシェルスクリプトをやったんでその復習を。 応用範囲は結構広そうです。 Contents1 ファイルの読みこみ方2 関数の定義、使い方3 SSHログイン4 ssh鍵認証つきのログイン5 メール送信 …