📚 PHP 최상급 - 3주차: 컨테이너 기술 (Docker) 활용- 01 Docker 개념 및 설치

2025. 10. 8. 13:15프로그램/PHP 최상급

안녕하세요. #PHP 최상급 과정 3주차에서는 현대 개발 환경에서 필수적인 컨테이너 기술, 특히 #Docker를 다룹니다. 이번 시간에는 #Docker의 기본 #개념을 이해하고, 실습 환경을 위한 #설치 방법을 알아보겠습니다.


컨테이너 기술의 등장 배경

📚 PHP 최상급 - 3주차: 컨테이너 기술 (Docker) 활용- 01 Docker 개념 및 설치

 

과거에는 개발, 테스트, 운영 환경을 일치시키기 어렵다는 고질적인 문제가 있었습니다. "내 컴퓨터에서는 잘 되는데, 서버에서는 안 돼요(It works on my machine)"라는 말이 개발자들 사이에서 흔했습니다.

 

이러한 환경 불일치 문제를 해결하기 위해 가상 머신(Virtual Machine, VM) 기술이 사용되었지만, #VM은 무거운 #운영체제(OS) 전체를 가상화해야 하므로 느리고 리소스 소모가 컸습니다.

 

#컨테이너 기술은 VM의 단점을 극복하고, 애플리케이션과 그 종속성을 하나의 격리된 환경(#컨테이너)에 패키징하여, 어떤 환경에서든 일관되게 실행되도록 보장합니다.

 


Docker의 핵심 개념 이해

#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 설치 및 기본 환경 설정

#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

 

VPN 5,500원 / IP교체 1,100원 / 유동프록시 22,000원 | LuzenVPN 루젠VPN

국내최저가 고정IP서비스,유동프록시(IP4000개이상제공),PPTP,L2TP,IPSec,OpenVPNVPN,통신사VPN,VPN프로그램,고정IP,고정아이피,PPTP,저렴한VPN,리니지MVPN,리니지VPN,아이온VPN,던파VPN,유동프록시,유동PROXY,바이

vpn.luzensoft.com