Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DockerでApache+PHP+MySQLの環境構築
Search
SAW
May 16, 2020
Programming
2
1.1k
DockerでApache+PHP+MySQLの環境構築
関西PHP勉強会 の発表資料です。
SAW
May 16, 2020
Tweet
Share
More Decks by SAW
See All by SAW
React Hook Form と Zod によるフォームバリデーション
azuki
0
24
PHP で form-data を POST 以外のメソッドで受け取るには?
azuki
0
44
PHP で学ぶ OAuth 入門
azuki
2
920
EditorConfig を使ってみよう
azuki
1
89
Symfony でサクッと作る REST API サーバー
azuki
1
210
Vite の Library Mode を使って Vue のコンポーネントをライブラリ化する
azuki
1
290
Laravel や Symfony で手っ取り早く OpenAPI のドキュメントを作成する
azuki
2
360
Provide/Inject で TypeScript の恩恵を受ける方法
azuki
3
160
GraphQL はいいぞ! ~Laravel で学ぶ GraphQL 入門~
azuki
1
380
Other Decks in Programming
See All in Programming
[AtCoder Conference 2025] LLMを使った業務AHCの上⼿な解き⽅
terryu16
6
910
Navigating Dependency Injection with Metro
l2hyunwoo
1
200
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
910
開発に寄りそう自動テストの実現
goyoki
2
1.5k
Cell-Based Architecture
larchanjo
0
150
愛される翻訳の秘訣
kishikawakatsumi
3
350
Basic Architectures
denyspoltorak
0
130
Python札幌 LT資料
t3tra
7
1.1k
JETLS.jl ─ A New Language Server for Julia
abap34
2
460
PC-6001でPSG曲を鳴らすまでを全部NetBSD上の Makefile に押し込んでみた / osc2025hiroshima
tsutsui
0
200
2年のAppleウォレットパス開発の振り返り
muno92
PRO
0
120
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
10
1.5k
Featured
See All Featured
Done Done
chrislema
186
16k
Code Review Best Practice
trishagee
74
19k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Site-Speed That Sticks
csswizardry
13
1k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Test your architecture with Archunit
thirion
1
2.1k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
590
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.2k
Highjacked: Video Game Concept Design
rkendrick25
PRO
0
260
Amusing Abliteration
ianozsvald
0
73
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
Balancing Empowerment & Direction
lara
5
830
Transcript
4BUUI.BZ ؔ1)1ษڧձ %PDLFSͰ"QBDIF 1)1 .Z42-ͷ ڥߏங
ؔ1)1ษڧձ ๏ࢯ໊Ճ౻फҰ ࡀ ‣ ϋϯυϧωʔϜ4"8 ‣ 5XJUUFS!B[VLJ@FBUFS ‣ (JU)VCB[VLJQFOHVJO
๏ॴଐגࣜձࣾ.4&/ $(whoami) NBD04 7VFKT -JOVY 'SFF#4%
ؔ1)1ษڧձ ๏ϩʔΧϧͷڥΛԚ͢͜ͱͳ͘"QBDIF 1)1 .Z42-ͷڥΛ͍͑ͨ ‣ %PDLFSΛར༻ͯ͠ڥߏங ๏.Z42-ͷίϯςφʹผίϯςφ্ͷ1)1ϓϩάϥϜ͔Βଓ͍ͨ͠ ‣ 1)1ίϯςφ͔ΒMPDBMIPTUͷ൪ϙʔτΛࢦఆͯ͠ଓʹࣦഊ .PUJWBUJPO
%PDLFSίϯςφͷߏஙखॱ
ؔ1)1ษڧձ ๏"QBDIF 1)1QIQBQBDIF ๏.Z42-NZTRM ‣ 1)1ͷϥΠϒϥϦ͕.Z42-YܥͷσϑΥϧτͷೝূํࣜ DBDIJOH@TIB@QBTTXPSE ʹະରԠ %PDLFSίϯςφͷߏ QIQBQBDIF
NZTRM "QBDIF <?php ... ?> .Z42- ଓ
ؔ1)1ษڧձ ๏1)1ͱ.Z42-ͷίϯςφؒ௨৴Λߦ͏ͨΊʹ࡞ ‣ docker network create ネットワーク名Ͱ%PDLFSωοτϫʔΫΛ࡞ ๏docker network lsͰ࡞͞Εͨ%PDLFSωοτϫʔΫͷҰཡΛදࣔ
%PDLFSωοτϫʔΫͷ࡞ $ docker network create my-network $ docker network ls NETWORK ID NAME DRIVER SCOPE 6681a32a3d6f bridge bridge local bc8ace895846 host host local 74bc6dce3a53 my-network bridge local 6f730504383f 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-ͷίϯςφ໊ʹमਖ਼ ଓઃఆͷมߋ <?php # 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/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback ( 中略 ) 172.17.0.3 ebc8580e8dd5
ؔ1)1ษڧձ ๏1%0ͷίϯετϥΫλΛमਖ਼ ‣ hosts=Λ.Z42-ίϯςφͷ*1ΞυϨεʹมߋ 1%0ͷଓઃఆͷมߋ <?php # 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-ͷϗετ໊Λίϯςφ໊ʹઃఆ ૯ׅ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠