関西PHP勉強会 の発表資料です。
4BUUI.BZؔ1)1ษڧձ%PDLFSͰ"QBDIF1)1.Z42-ͷڥߏங
View Slide
ؔ1)1ษڧձ๏ࢯ໊Ճ౻फҰ ࡀ‣ ϋϯυϧωʔϜ4"8‣ 5XJUUFS!B[VLJ@FBUFS‣ (JU)VCB[VLJQFOHVJO๏ॴଐגࣜձࣾ.4&/ $(whoami)NBD047VFKT-JOVY'SFF#4%
ؔ1)1ษڧձ๏ϩʔΧϧͷڥΛԚ͢͜ͱͳ͘"QBDIF1)1.Z42-ͷڥΛ͍͑ͨ‣ %PDLFSΛར༻ͯ͠ڥߏங๏.Z42-ͷίϯςφʹผίϯςφ্ͷ1)1ϓϩάϥϜ͔Βଓ͍ͨ͠‣ 1)1ίϯςφ͔ΒMPDBMIPTUͷ൪ϙʔτΛࢦఆͯ͠ଓʹࣦഊ.PUJWBUJPO
%PDLFSίϯςφͷߏஙखॱ
ؔ1)1ษڧձ๏"QBDIF1)1QIQBQBDIF๏.Z42-NZTRM‣ 1)1ͷϥΠϒϥϦ͕.Z42-YܥͷσϑΥϧτͷೝূํࣜ DBDIJOH@TIB@QBTTXPSEʹະରԠ%PDLFSίϯςφͷߏQIQBQBDIF NZTRM"QBDIF...?>.Z42-ଓ
ؔ1)1ษڧձ๏1)1ͱ.Z42-ͷίϯςφؒ௨৴Λߦ͏ͨΊʹ࡞‣ docker network create ネットワーク名Ͱ%PDLFSωοτϫʔΫΛ࡞๏docker network lsͰ࡞͞Εͨ%PDLFSωοτϫʔΫͷҰཡΛදࣔ%PDLFSωοτϫʔΫͷ࡞$ docker network create my-network$ docker network lsNETWORK ID NAME DRIVER SCOPE6681a32a3d6f bridge bridge localbc8ace895846 host host local74bc6dce3a53 my-network bridge local6f730504383f none null local
ؔ1)1ษڧձ๏docker runίϚϯυͰίϯςφ࡞࣌ʹ--networkΦϓγϣϯΛ༩‣ ࡞ͨ͠%PDLFSωοτϫʔΫʹଓίϯςφͷ࡞# オプションは一部省略$ docker run -d --name php-server --network my-network php:apache$ docker run -d --name mysql-db --network my-network mysql:5.7.27
ؔ1)1ษڧձ๏σϑΥϧτͰ.Z42-ͷ1%0υϥΠό͕ະΠϯετʔϧ‣ ίϯςφʹೖΓdocker-php-ext-installίϚϯυΛ࣮ߦͯ͠Πϯετʔϧ .Z42-ͷυϥΠόpdo_mysqlΛࢦఆ 1%0͕ೖ͍ͬͯͳ͍߹pdoࢦఆ1%0υϥΠόͷΠϯετʔϧ$ docker exec -it php-server bash# docker-php-ext-install pdo_mysql
ؔ1)1ษڧձ๏1%0ͷίϯετϥΫλͷୈҾΛमਖ਼‣ host=ͷՕॴΛ.Z42-ͷίϯςφ໊ʹमਖ਼ଓઃఆͷมߋ# host= の右辺には MySQL のコンテナ名 (mysql-db) を指定$con = new PDO(‘mysql:dbname=db;host=mysql-db’, ‘db’, ‘test’);# 以下省略
ڥߏஙྃ
ίϯςφ࡞ࡁΈͷ߹
ؔ1)1ษڧձ๏%PDLFSωοτϫʔΫʹ࡞ࡁΈίϯςφΛଓ๏%PDLFSίϯςφͷ*1ΞυϨεΛࢦఆͯ͠ଓίϯςφ࡞ࡁΈͷ߹ͷڥߏங
ؔ1)1ษڧձ๏docker network connect ネットワーク名 コンテナ名Ͱ%PDLFSωοτϫʔΫʹଓ‣ ଓઃఆલड़ͷ༰ͱಉ༷ʹมߋ࡞ࡁΈίϯςφͷଓํ๏$ docker network connect my-network php-server$ docker network connect my-network mysql-db
ؔ1)1ษڧձ๏%PDLFSωοτϫʔΫΛར༻ͤͣʹMPDBMIPTUͰׂΓͯͨϙʔτ͔Βଓ‣ .Z42-ίϯςφͷ*1ΞυϨεΛࢦఆͯ͠ଓ .Z42-ίϯςφͷ/etc/hostsΛ֬ೝ 1%0ͷଓઃఆΛมߋ‣ ίϯςφͷ࠶ىಈͳͲͰ*1ΞυϨε͕มߋ͞Εͨ߹ʹϓϩάϥϜͷमਖ਼͕ඞཁίϯςφͷ*1ΞυϨεͰଓ͢Δํ๏
ؔ1)1ษڧձ๏.Z42-ίϯςφͷίϯςφ*%Λ֬ೝ‣ docker psίϚϯυͳͲͰίϯςφ*%͕֬ೝՄೳ๏.Z42-ίϯςφͷ/etc/hostsΛ֬ೝ‣ ίϯςφ*%ʹׂΓͯΒΕ͍ͯΔ*1ΞυϨε͕.Z42-ίϯςφͷ*1ΞυϨε.Z42-ίϯςφͷ*1ΞυϨεΛ֬ೝ$ docker exec -it mysql-db bash## cat /etc/hosts127.0.0.1 localhost::1 localhost ip6-localhost ip6-loopback( 中略 )172.17.0.3 ebc8580e8dd5
ؔ1)1ษڧձ๏1%0ͷίϯετϥΫλΛमਖ਼‣ hosts=Λ.Z42-ίϯςφͷ*1ΞυϨεʹมߋ1%0ͷଓઃఆͷมߋ# MySQL コンテナの IP アドレス (172.17.0.3) を指定$con = new PDO(‘mysql:dbname=db;host=172.17.0.3’, ‘db’, ‘test’);# 以下省略
ؔ1)1ษڧձ๏%PDLFSωοτϫʔΫΛ࡞ͯ͠ίϯςφΛଓ‣ 1)1ͱ.Z42-ͷίϯςφؒͰ௨৴๏1)1ίϯςφʹ.Z42-ͷ1%0υϥΠόΛΠϯετʔϧ๏ଓઌͷ.Z42-ͷϗετ໊Λίϯςφ໊ʹઃఆ૯ׅ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠