도커란?
도커란?
서버 개발자들은 개발한 서버 프로그램을 배포할 환경을 세팅하는 것에 대해 잘 알아야 한다. 그 환경은 VM이 될 수도 있고, 물리 서버가 될 수도 있다. 최근에는 컨테이너 환경에서 배포하는 경우가 많다. 특히 쿠버네티스(Kubernetes) 환경을 사용하려면, 기본 컨테이너로 **도커(Docker)**를 이해해야 한다.
Docker 개념
Docker는 소프트웨어 설치, 실행, 배포, 제거를 단순화하는 도구이다. 이는 **컨테이너(Container)**라는 UNIX 기술을 활용하여 이루어진다.
컨테이너는 실행 환경을 격리하여 특정 자원에만 접근할 수 있도록 제한된 실행 환경을 제공한다. 직접 컨테이너를 설정하는 것은 어렵기 때문에, 이를 쉽게 다룰 수 있도록 Docker가 등장했다.
컨테이너는 하드웨어 가상화가 아니다. 컨테이너 내의 프로세스는 컨테이너 외부의 프로세스와 동일한 리눅스 커널 위에서 실행되지만, 서로 격리된 환경을 제공한다.
Docker와 VM의 차이
- VM (가상 머신): 각 인스턴스는 OS 전체를 포함하여 실행됨 → 무겁고 부팅 시간이 길다.
- Docker 컨테이너: 호스트 OS의 커널을 공유하며, 애플리케이션 및 필요한 라이브러리만 포함 → 가볍고 빠른 실행 가능.
Docker 실습
1️⃣ Docker 설치 및 실행
Docker를 설치한 후, busybox
컨테이너를 실행해 보자.
1 | docker run busybox echo "Hello World" |
2️⃣ 컨테이너 상태 확인
1 | docker ps --all |
3️⃣ 컨테이너 삭제
1 | docker rm <CONTAINER_ID> |
4️⃣ Docker 이미지 삭제
1 | docker rmi <IMAGE_ID> |
Dockerfile 작성 및 실행
Node.js 애플리케이션을 Docker로 실행하기
아래와 같은 Dockerfile
을 작성하여 Node.js 애플리케이션을 실행할 수 있다.
1 | FROM node:7 |
Docker 이미지 빌드:
1 | docker build -t my-node-app . |
Docker 컨테이너 실행:
1 | docker run -p 8080:8080 -d my-node-app |
결론
Docker는 개발 및 배포 환경을 쉽게 관리할 수 있도록 돕는 컨테이너 기반 가상화 기술이다. 이를 통해 애플리케이션의 실행 환경을 격리하고, 어디서든 동일한 환경에서 실행할 수 있다. 🚀
install_url
to use ShareThis. Please set it in _config.yml
.