도커란?

도커란?

도커란?

서버 개발자들은 개발한 서버 프로그램을 배포할 환경을 세팅하는 것에 대해 잘 알아야 한다. 그 환경은 VM이 될 수도 있고, 물리 서버가 될 수도 있다. 최근에는 컨테이너 환경에서 배포하는 경우가 많다. 특히 쿠버네티스(Kubernetes) 환경을 사용하려면, 기본 컨테이너로 **도커(Docker)**를 이해해야 한다.

Docker 개념

Docker는 소프트웨어 설치, 실행, 배포, 제거를 단순화하는 도구이다. 이는 **컨테이너(Container)**라는 UNIX 기술을 활용하여 이루어진다.

컨테이너는 실행 환경을 격리하여 특정 자원에만 접근할 수 있도록 제한된 실행 환경을 제공한다. 직접 컨테이너를 설정하는 것은 어렵기 때문에, 이를 쉽게 다룰 수 있도록 Docker가 등장했다.

컨테이너는 하드웨어 가상화가 아니다. 컨테이너 내의 프로세스는 컨테이너 외부의 프로세스와 동일한 리눅스 커널 위에서 실행되지만, 서로 격리된 환경을 제공한다.

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
2
3
FROM node:7
ADD app.js /app.js
ENTRYPOINT [ "node", "app.js" ]

Docker 이미지 빌드:

1
docker build -t my-node-app .

Docker 컨테이너 실행:

1
docker run -p 8080:8080 -d my-node-app

결론

Docker는 개발 및 배포 환경을 쉽게 관리할 수 있도록 돕는 컨테이너 기반 가상화 기술이다. 이를 통해 애플리케이션의 실행 환경을 격리하고, 어디서든 동일한 환경에서 실행할 수 있다. 🚀

Author

Hamin Lee

Posted on

2022-02-18

Updated on

2022-03-09

Licensed under

You need to set install_url to use ShareThis. Please set it in _config.yml.
You forgot to set the business or currency_code for Paypal. Please set it in _config.yml.

Comments

You forgot to set the shortname for Disqus. Please set it in _config.yml.
You need to set client_id and slot_id to show this AD unit. Please set it in _config.yml.