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

Vagrantでのフォルダ共有

Contents1 vagrantとホストOSのフォルダの共有2 ネットワークアダプタ設定3 任意のディレクトリをマウント vagrantとホストOSのフォルダの共有 ディフォルトではvagrantは …

no image

dockerインストール

ansibleに続いてdockerについて書いていこうと思います。 Contents1 dockerとは?1.1 インストール1.2 イメージ取得&コンテナ作成1.3 commit1.4 参考リンク …

no image

OSI参照モデル イーサネットとMACアドレス

OSI参照モデルのレイヤー1とレイヤー2で必要不可欠な規格がイーサネットです。 有線ネットワークであればほぼこの規格を採用していると思って間違いないでしょう。 MACアドレスでコンピューターを識別する …

no image

CSRF(クロスサイト・リクエスト・フォージェリ)

Contents1 CSRF(クロスサイト・リクエスト・フォージェリ)とは?2 被害3 対策4 参考(トークンチェック) CSRF(クロスサイト・リクエスト・フォージェリ)とは? ウェブサイトの中には …

no image

Linuxでのパス

以前、composerを入れるときに、こちらの記事を書いたのですが、自分が使っているVPSではこの方法で入りませんでした。 調べるとみるとPATHが/usr/local/binではなく/usr/bin …