Docker는 어플리케이션을 쉽고 빠르게 만들고, 테스트하며, 배포할 수 있는 소프트웨어 플랫폼입니다. 컨테이너라는 개념으로 가볍고 이식성 높은 패키지로 어플리케이션을 실행시킬 수 있습니다.
docker의 image는 실행에 필요한 모든 것들(코드, 라이브러리 등)을 포함합니다. 컨테이너는 image를 실제로 실행시킨 인스턴스이고, 격리된 환경에서 작동합니다.
| 특징 | Docker | VM |
|---|---|---|
| 실행 속도 | 빠름 | 느림 |
| 리소스 사용 | 가벼움, 오버헤드가 작음 | 무거움, 오버헤드가 큼 |
| 이식성 | 어디서나 동일하게 실행 | 환경마다 다름 |
| 격리 수준 | 낮음 | 높음 |
| OS 다양성 | linux에서 최적화 | 다양한 OS 실행 가능 |
| 보안 | 커널 공유로 인해 보안에 약함 | OS 단위 격리라 보안에 강함 |
docker build -t myapp:latest .docker pull myappdocker run -d -p 8080:80 myapp:latestdocker exec -it container_name /bin/bash여러 컨테이너를 한 번에 관리할 수 있는 도구입니다.
docker-compose.yml파일에 여러 서비스, 네트워크, 볼륨 설정을 정의합니다.
docker compose up -d 명령어로 모든 서비스를 일괄 실행하거나 일괄 중지할 수 있습니다.