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
1.1k
2
Share
DockerでApache+PHP+MySQLの環境構築
関西PHP勉強会 の発表資料です。
SAW
May 16, 2020
More Decks by SAW
See All by SAW
🪝 便利な Property Hooks を 使ってみよう 🪝
azuki
0
59
決済システム超初心者が Stripe に入門している話
azuki
0
96
React Hook Form と Zod によるフォームバリデーション
azuki
0
63
PHP で form-data を POST 以外のメソッドで受け取るには?
azuki
0
74
PHP で学ぶ OAuth 入門
azuki
2
1.3k
EditorConfig を使ってみよう
azuki
1
110
Symfony でサクッと作る REST API サーバー
azuki
1
250
Vite の Library Mode を使って Vue のコンポーネントをライブラリ化する
azuki
1
370
Laravel や Symfony で手っ取り早く OpenAPI のドキュメントを作成する
azuki
2
410
Other Decks in Programming
See All in Programming
2026年のソフトウェア開発を考える(2026/05版) / Software Engineering Scrum Fest Niigata 2026 Edition
twada
PRO
18
8.2k
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
240
「Linuxサーバー構築標準教科書」を読んでみた #ツナギメオフライン.7
akase244
0
1.4k
UIの境界線をデザインする | React Tokyo #15 メイントーク
sasagar
2
410
Claude Codeをカスタムして自分だけのClaude Codeを作ろう
terisuke
0
150
10 Tips of AWS ~Gen AI on AWS~
licux
5
510
「話せることがない」を乗り越える 〜日常業務から登壇テーマをつくる思考法〜
shoheimitani
4
940
アクセシビリティ試験の"その後"を仕組み化する
yuuumiravy
1
180
ソースコード→AST→オペコード、の旅を覗いてみる
o0h
PRO
0
110
PHP で mp3 プレイヤーを実装しよう
m3m0r7
PRO
0
290
第3木曜LT会 #28
tinykitten
PRO
0
120
JOAI2026 1st solution - heron0519 -
heron0519
0
160
Featured
See All Featured
What does AI have to do with Human Rights?
axbom
PRO
1
2.1k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.1k
Heart Work Chapter 1 - Part 1
lfama
PRO
6
35k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
340
30 Presentation Tips
portentint
PRO
1
280
Six Lessons from altMBA
skipperchong
29
4.2k
Claude Code のすすめ
schroneko
67
220k
The SEO Collaboration Effect
kristinabergwall1
1
440
Done Done
chrislema
186
16k
The SEO identity crisis: Don't let AI make you average
varn
0
460
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
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-ͷϗετ໊Λίϯςφ໊ʹઃఆ ૯ׅ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠