216.73.216.25 TODAY : 2,828
์ž๋ฃŒ์‹ค ์„œ๋ธŒ ํƒ€์ดํ‹€ ์•„์ด์ฝ˜

์˜จ๋ผ์ธ ๊ฐ•์˜

 > 

PHP - ์ตœ์ƒ๊ธ‰

๐Ÿ“š PHP ์ตœ์ƒ๊ธ‰ - 3์ฃผ์ฐจ: ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ  (Docker) ํ™œ์šฉ- 01 Docker ๊ฐœ๋… ๋ฐ ์„ค์น˜

๐Ÿ“š PHP ์ตœ์ƒ๊ธ‰ - 3์ฃผ์ฐจ: ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ  (Docker) ํ™œ์šฉ- 01 Docker ๊ฐœ๋… ๋ฐ ์„ค์น˜

์ฃผ์š” ํ”„๋กœ๊ทธ๋žจ ์ŠคํŽ™

  • ํ‰์ : 10.0
  • ๋ผ์ด์„ ์Šค: free
  • ์šด์˜์ฒด์ œ:
  • ํŒŒ์ผ ํฌ๊ธฐ: 0

ํ”ผ๋“œ๋ฐฑ ๋ฐ ๋‹ค์šด๋กœ๋“œ

  • ์‚ฌ์šฉ์ž ํ‰์ : 10.0
  • ๋‹ค์šด๋กœ๋“œ ์ˆ˜: 1
  • ์กฐํšŒ์ˆ˜: 42

์ œ์กฐ์‚ฌ ๋ฐ ๋“ฑ๋ก ์ •๋ณด

  • ์ œ์ž‘์‚ฌ: LUZENSOFT
  • ๋“ฑ๋ก์ผ: 2025-10-08 13:15:49
  •  

- ์„ค๋ช…

์•ˆ๋…•ํ•˜์„ธ์š”. #PHP ์ตœ์ƒ๊ธ‰ ๊ณผ์ • 3์ฃผ์ฐจ์—์„œ๋Š” ํ˜„๋Œ€ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ํ•„์ˆ˜์ ์ธ ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ , ํŠนํžˆ #Docker๋ฅผ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” #Docker์˜ ๊ธฐ๋ณธ #๊ฐœ๋…์„ ์ดํ•ดํ•˜๊ณ , ์‹ค์Šต ํ™˜๊ฒฝ์„ ์œ„ํ•œ #์„ค์น˜ ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.





์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ ์˜ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ

uploadImage

๊ณผ๊ฑฐ์—๋Š” ๊ฐœ๋ฐœ, ํ…Œ์ŠคํŠธ, ์šด์˜ ํ™˜๊ฒฝ์„ ์ผ์น˜์‹œํ‚ค๊ธฐ ์–ด๋ ต๋‹ค๋Š” ๊ณ ์งˆ์ ์ธ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. "๋‚ด ์ปดํ“จํ„ฐ์—์„œ๋Š” ์ž˜ ๋˜๋Š”๋ฐ, ์„œ๋ฒ„์—์„œ๋Š” ์•ˆ ๋ผ์š”(It works on my machine)"๋ผ๋Š” ๋ง์ด ๊ฐœ๋ฐœ์ž๋“ค ์‚ฌ์ด์—์„œ ํ”ํ–ˆ์Šต๋‹ˆ๋‹ค.



์ด๋Ÿฌํ•œ ํ™˜๊ฒฝ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์ƒ ๋จธ์‹ (Virtual Machine, VM) ๊ธฐ์ˆ ์ด ์‚ฌ์šฉ๋˜์—ˆ์ง€๋งŒ, #VM์€ ๋ฌด๊ฑฐ์šด #์šด์˜์ฒด์ œ(OS) ์ „์ฒด๋ฅผ ๊ฐ€์ƒํ™”ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋А๋ฆฌ๊ณ  ๋ฆฌ์†Œ์Šค ์†Œ๋ชจ๊ฐ€ ์ปธ์Šต๋‹ˆ๋‹ค.



#์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ ์€ VM์˜ ๋‹จ์ ์„ ๊ทน๋ณตํ•˜๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ทธ ์ข…์†์„ฑ์„ ํ•˜๋‚˜์˜ ๊ฒฉ๋ฆฌ๋œ ํ™˜๊ฒฝ(#์ปจํ…Œ์ด๋„ˆ)์— ํŒจํ‚ค์ง•ํ•˜์—ฌ, ์–ด๋–ค ํ™˜๊ฒฝ์—์„œ๋“  ์ผ๊ด€๋˜๊ฒŒ ์‹คํ–‰๋˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.





Docker์˜ ํ•ต์‹ฌ ๊ฐœ๋… ์ดํ•ด

uploadImage

#Docker๋Š” ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ํŒจํ‚ค์ง•, ๋ฐฐํฌ, ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.




๐Ÿ’ก Docker์™€ VM์˜ ์ฐจ์ด์ 


๊ตฌ๋ถ„

๊ฐ€์ƒ ๋จธ์‹  (VM)

Docker ์ปจํ…Œ์ด๋„ˆ

์šด์˜์ฒด์ œ

๊ฐ VM๋งˆ๋‹ค ๋…๋ฆฝ์ ์ธ OS ํฌํ•จ

ํ˜ธ์ŠคํŠธ OS์˜ ์ปค๋„์„ ๊ณต์œ 

์ž์› ์†Œ๋ชจ

๋†’์Œ (์ˆ˜ GB ๋‹จ์œ„)

๋‚ฎ์Œ (์ˆ˜ MB ๋‹จ์œ„)

์‹œ์ž‘ ์†๋„

๋А๋ฆผ (๋ถ„ ๋‹จ์œ„)

๋น ๋ฆ„ (์ดˆ ๋‹จ์œ„)

๊ฒฉ๋ฆฌ ์ˆ˜์ค€

ํ•˜๋“œ์›จ์–ด ์ˆ˜์ค€์˜ ์™„์ „ ๊ฒฉ๋ฆฌ

OS ์ปค๋„ ์ˆ˜์ค€์˜ ๊ฒฉ๋ฆฌ (Cgroups, Namespaces ํ™œ์šฉ)






๐Ÿ“š Docker ์ฃผ์š” ์šฉ์–ด


  1. ์ด๋ฏธ์ง€ (Image):

    • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰์— ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ(์ฝ”๋“œ, ๋Ÿฐํƒ€์ž„, ์‹œ์Šคํ…œ ๋„๊ตฌ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋“ฑ)์„ ํฌํ•จํ•˜๋Š” ์ฝ๊ธฐ ์ „์šฉ์˜ ํ…œํ”Œ๋ฆฟ์ž…๋‹ˆ๋‹ค.

    • ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋‚˜ ์„ค๊ณ„๋„์™€ ๊ฐ™์•„์„œ, ์ด๊ฒƒ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    • ์˜ˆ: php:8.3-fpm ์ด๋ฏธ์ง€, mysql:8.0 ์ด๋ฏธ์ง€.

  1. ์ปจํ…Œ์ด๋„ˆ (Container):

    • ์ด๋ฏธ์ง€๋ฅผ ์‹คํ–‰ํ•œ ์ƒํƒœ๋กœ, ๊ฒฉ๋ฆฌ๋œ ํ™˜๊ฒฝ์—์„œ ๋™์ž‘ํ•˜๋Š” ์‹ค์ œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ธ์Šคํ„ด์Šค์ž…๋‹ˆ๋‹ค.

    • ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋‚˜ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค์™€ ๊ฐ™์•„์„œ, ์ƒ์„ฑ, ์‹œ์ž‘, ์ค‘์ง€, ์‚ญ์ œ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  1. Docker Hub / Registry:

    • ๊ณต๊ฐœ์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ณต์œ ํ•˜๋Š” ์ค‘์•™ ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค. #GitHub์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

  1. Dockerfile:

    • ์‚ฌ์šฉ์ž ์ •์˜ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด๊ฐ€ ๋‹ด๊ธด ํ…์ŠคํŠธ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. #PHP ํ™˜๊ฒฝ ์„ค์ •, ํ•„์š”ํ•œ ํ™•์žฅ ์„ค์น˜ ๋“ฑ์˜ ๊ณผ์ •์„ ์ด ํŒŒ์ผ์— ๊ธฐ์ˆ ํ•ฉ๋‹ˆ๋‹ค.



Docker ์„ค์น˜ ๋ฐ ๊ธฐ๋ณธ ํ™˜๊ฒฝ ์„ค์ •

uploadImage

#Docker๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ˜ธ์ŠคํŠธ ์šด์˜์ฒด์ œ์— #Docker Engine์„ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.




๐Ÿ’ป ์„ค์น˜ (Docker Desktop ๊ถŒ์žฅ)


๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ Docker Desktop์„ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.



  1. Windows / macOS:

    • Docker ๊ณต์‹ ์›น์‚ฌ์ดํŠธ์—์„œ Docker Desktop ์„ค์น˜ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. #Docker Desktop์€ #Docker Engine, #Docker CLI, #Docker Compose, #Kubernetes ๋“ฑ์˜ ๋„๊ตฌ๋ฅผ ํฌํ•จํ•˜๋Š” ํ†ตํ•ฉ ํ™˜๊ฒฝ์ž…๋‹ˆ๋‹ค.

    • ์„ค์น˜ ํ›„, ์‹œ์Šคํ…œ ํŠธ๋ ˆ์ด์—์„œ Docker ์•„์ด์ฝ˜์„ ํ™•์ธํ•˜๊ณ  Running ์ƒํƒœ์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  1. Linux (Ubuntu ์˜ˆ์‹œ):

    • ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ apt-get ๋“ฑ์„ ํ†ตํ•ด #Docker Engine๊ณผ #Docker CLI๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

    • (์ฃผ์˜: Linux ์„œ๋ฒ„ ํ™˜๊ฒฝ์—์„œ๋Š” Docker Desktop์ด ์•„๋‹Œ #Docker Engine๋งŒ ์„ค์น˜ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค.)


๐Ÿงช ์„ค์น˜ ํ™•์ธ


์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ํ„ฐ๋ฏธ๋„(๋ช…๋ น ํ”„๋กฌํ”„ํŠธ)์„ ์—ด๊ณ  ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ •์ƒ์ ์œผ๋กœ ์„ค์น˜๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.



Bash

docker --version
docker run hello-world


๐Ÿ”— Docker Compose


#PHP ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ณดํ†ต #์›น ์„œ๋ฒ„(Nginx/Apache), #PHP FPM, #๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(MySQL/PostgreSQL) ๋“ฑ ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. #Docker Compose๋Š” ์ด๋Ÿฌํ•œ ๋‹ค์ค‘ ์ปจํ…Œ์ด๋„ˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ•˜๋‚˜์˜ ํŒŒ์ผ(docker-compose.yml)๋กœ ์ •์˜ํ•˜๊ณ , ๋‹จ์ผ ๋ช…๋ น์œผ๋กœ ์‹คํ–‰ ๋ฐ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ์ฃผ์ฐจ๋ถ€ํ„ฐ ์ด #Docker Compose๋ฅผ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.



๋ธ”๋กœ๊ทธKT๊ณ ์ •, ์‡ผํ•‘/์ง€๋„ ๋งˆ์ผ€ํŒ…KT์œ ๋™, ๊ฒŒ์ž„/์•ฑํ”Œ๋ ˆ์ด์–ด ๊ณ ์ •IP, 24์‹œ๊ฐ„์ƒ๋‹ด ๋Œ€๋Ÿ‰๊ตฌ๋งค ์‹œ ํ• ์ธํ˜œํƒ ์ œ๊ณต!

https://vpn.luzensoft.com