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

ファイル抽出系のシェルスクリプト(主にfind系)

実務であるアプリのログをまとめるスクリプトを書きました。 log1.log log2.log log3.log ・・・・ みたいにローテーションして吐かれていくのですが、量が多いので1日分をまとめるこ …

no image

PHPのheroku(ヘロク)へのデプロイ

有名なPaasのサービスであるherokuをちょっといじったのでその時のメモなどを。 Contents1 アカウント開設2 Heroku | Cloud Application Platform3 デ …

no image

環境構築の手法について

2019年9月現在、PHPは7系(最新は7.3)を使うことが一般的ですが、たまにレガシー案件などでPHP5系を使ったりすることはあります。 まあ7系でも7.0じゃ動かないとか色々な制約あるんですけど・ …

no image

nohup(sshログアウトしてもコマンドは続く)+ StickyBit(誰もで書き込み自由)

インフラ系の小ネタです Contents1 nohup2 Sticky Bit(スティッキービット) nohup sshでログインしている時に長時間かかるような処理を実行中、ログアウトするとそのコマン …

no image

heroku scheduler(cron的なもの)

herokuでアプリをデプロイしたあと定期的に走らせたいバッチなどがあるとき、cronを使うことを考えると思いますが、herokuではheroku Schedulerというアプリを使います。 hero …

アーカイブ