'Hello World' Docker 컨테이너 생성 및 실행 방법

DockerBeginner
지금 연습하기

소개

Docker 는 개발자가 애플리케이션을 구축, 배포 및 관리하는 방식을 혁신한 강력한 컨테이너화 플랫폼입니다. 이 튜토리얼에서는 Docker 컨테이너를 학습하는 좋은 시작점인 간단한 'Hello World' Docker 컨테이너를 생성하고 실행하는 과정을 안내해 드립니다.

Docker 소개

Docker 는 개발자가 컨테이너 환경에서 애플리케이션을 구축, 배포 및 실행할 수 있도록 지원하는 인기 있는 오픈소스 플랫폼입니다. 컨테이너는 애플리케이션 실행에 필요한 모든 것을 포함하는 (코드, 런타임, 시스템 도구, 라이브러리 등) 가벼운 독립 실행형 실행 가능 소프트웨어 패키지입니다.

Docker 란 무엇인가요?

Docker 는 컨테이너를 사용하여 애플리케이션을 더 쉽게 생성, 배포 및 실행하도록 설계된 도구입니다. 컨테이너를 통해 개발자는 라이브러리 및 기타 종속성과 같은 애플리케이션에 필요한 모든 부분을 패키징하여 하나의 패키지로 배포할 수 있습니다.

Docker 아키텍처

Docker 아키텍처는 다음과 같은 주요 구성 요소로 구성됩니다.

graph TD A[Docker Client] --> B[Docker Daemon] B --> C[Docker Images] B --> D[Docker Containers] B --> E[Docker Registries]
  • Docker Client: Docker 시스템과 상호 작용하는 사용자 인터페이스입니다.
  • Docker Daemon: 이미지, 컨테이너, 네트워크 및 볼륨과 같은 Docker 객체를 관리하는 백그라운드 프로세스입니다.
  • Docker Images: Docker 컨테이너를 생성하기 위한 청사진입니다.
  • Docker Containers: Docker 이미지의 실행 가능한 인스턴스입니다.
  • Docker Registries: Docker 이미지를 저장하고 배포하는 저장소입니다.

Docker 사용의 장점

  • 일관성: Docker 는 기본 인프라에 관계없이 애플리케이션이 동일한 방식으로 실행되도록 보장합니다.
  • 확장성: Docker 컨테이너는 애플리케이션의 리소스 요구 사항에 따라 쉽게 확장하거나 축소할 수 있습니다.
  • 이식성: Docker 컨테이너는 기본 운영 체제에 관계없이 Docker 가 설치된 모든 시스템에서 실행될 수 있습니다.
  • 효율성: Docker 컨테이너는 기존 가상 머신에 비해 가볍고 리소스를 적게 사용합니다.

Docker 시작하기

Docker 를 시작하려면 시스템에 Docker 엔진을 설치해야 합니다. 공식 Docker 웹사이트 (https://www.docker.com/get-started) 에서 Docker 를 다운로드하여 설치할 수 있습니다. 설치 후 애플리케이션을 구축하고 실행하기 위해 Docker 를 사용하기 시작할 수 있습니다.

'Hello World' Docker 컨테이너 생성

이 섹션에서는 간단한 "Hello World" Docker 컨테이너를 만드는 방법을 배웁니다.

Dockerfile 생성

Dockerfile 은 Docker 이미지를 생성하기 위한 명령어가 포함된 텍스트 파일입니다. 간단한 Dockerfile 을 생성해 보겠습니다.

## 공식 Ubuntu 22.04 이미지를 기본 이미지로 사용
FROM ubuntu:22.04

## 작업 디렉터리를 /app으로 설정
WORKDIR /app

## "hello.sh" 스크립트를 컨테이너로 복사
COPY hello.sh .

## 스크립트를 실행 가능하게 만듦
RUN chmod +x hello.sh

## 컨테이너 시작 시 스크립트를 실행할 명령어 정의
CMD ["./hello.sh"]

이 Dockerfile 에서 다음을 수행합니다.

  1. 공식 Ubuntu 22.04 이미지를 기본 이미지로 사용합니다.
  2. 작업 디렉터리를 /app으로 설정합니다.
  3. "hello.sh" 스크립트를 컨테이너로 복사합니다.
  4. 스크립트를 실행 가능하게 만듭니다.
  5. 컨테이너 시작 시 스크립트를 실행할 명령어를 정의합니다.

Docker 이미지 생성

Docker 이미지를 생성하려면 Dockerfile 이 있는 동일한 디렉터리에서 다음 명령어를 실행합니다.

docker build -t hello-world .

이 명령어는 "hello-world" 태그가 있는 Docker 이미지를 생성합니다.

이미지 확인

시스템의 모든 Docker 이미지를 나열하려면 다음 명령어를 실행합니다.

docker images

"hello-world" 이미지가 목록에 표시되어야 합니다.

'Hello World' 컨테이너 실행 및 탐색

이제 "hello-world" Docker 이미지를 생성했으므로 컨테이너를 실행하고 탐색해 보겠습니다.

컨테이너 실행

"hello-world" 컨테이너를 실행하려면 다음 명령어를 사용합니다.

docker run hello-world

이 명령어는 컨테이너를 시작하고 Dockerfile 에 정의된 명령어 (즉, "hello.sh" 스크립트 실행) 를 실행합니다.

다음과 같은 출력이 표시되어야 합니다.

Hello, LabEx!

컨테이너 탐색

다양한 Docker 명령어를 사용하여 실행 중인 컨테이너를 탐색할 수 있습니다.

  1. 실행 중인 컨테이너 목록:

    docker ps

    이 명령어는 시스템에서 실행 중인 컨테이너를 표시합니다.

  2. 컨테이너 검사:

    docker inspect hello-world

    이 명령어는 컨테이너의 구성, 네트워크 설정 등 자세한 정보를 제공합니다.

  3. 컨테이너 로그 보기:

    docker logs hello-world

    이 명령어는 컨테이너에서 실행된 "hello.sh" 스크립트의 출력을 표시합니다.

  4. 실행 중인 컨테이너에서 명령어 실행:

    docker exec -it hello-world /bin/bash

    이 명령어는 실행 중인 컨테이너 내부에서 새로운 대화형 세션을 시작하여 컨테이너의 파일 시스템을 탐색하고 추가 명령어를 실행할 수 있도록 합니다.

컨테이너 중지 및 제거

실행 중인 컨테이너를 중지하려면 다음 명령어를 사용합니다.

docker stop hello-world

컨테이너를 제거하려면 다음 명령어를 사용합니다.

docker rm hello-world

이 명령어는 시스템에서 "hello-world" 컨테이너를 중지하고 제거합니다.

요약

이 튜토리얼에서는 'Hello World' Docker 컨테이너를 생성하고 실행하는 방법을 배웠습니다. Docker 컨테이너의 기본 개념을 이해함으로써 이 강력한 기술을 마스터하기 위한 첫걸음을 내딛었습니다. Docker 는 애플리케이션과 그 종속성을 휴대 가능하고 자체 포함된 단위로 패키징하여 다양한 환경에서 소프트웨어를 개발, 배포 및 관리하기를 더욱 쉽게 만들어줍니다. 이 튜토리얼에서 얻은 지식을 바탕으로 이제 더욱 고급 Docker 개념을 탐색하고 자신만의 컨테이너화된 애플리케이션을 구축하기 시작할 수 있습니다.