사용자 정의 이미지 기반 Docker 컨테이너 실행 방법

DockerBeginner
지금 연습하기

소개

Docker 는 개발자가 일관되고 격리된 환경에서 애플리케이션을 패키징하고 배포할 수 있도록 지원하는 인기 있는 컨테이너화 플랫폼입니다. 이 튜토리얼에서는 사용자 정의 Docker 이미지를 생성하고 해당 이미지를 기반으로 Docker 컨테이너를 실행하는 방법을 배웁니다. 이 가이드를 마치면 애플리케이션에 대한 Docker 컨테이너를 생성, 관리 및 실행하는 프로세스에 대한 확실한 이해를 얻게 될 것입니다.

Docker 컨테이너 이해

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

Docker 컨테이너란 무엇인가요?

Docker 컨테이너는 코드와 모든 종속성을 패키징하여 애플리케이션이 한 컴퓨팅 환경에서 다른 환경으로 빠르고 안정적으로 실행되도록 하는 표준화된 소프트웨어 단위입니다. 컨테이너는 컨테이너 생성을 위한 청사진인 Docker 이미지에서 생성됩니다.

graph LR A[Docker 이미지] --> B[Docker 컨테이너] B[Docker 컨테이너] --> C[실행 중인 애플리케이션]

Docker 컨테이너의 장점

Docker 컨테이너는 기존 가상화 접근 방식에 비해 여러 가지 장점을 제공합니다.

장점 설명
이식성 컨테이너는 기본 인프라에 관계없이 모든 머신에서 일관되게 실행될 수 있습니다.
효율성 컨테이너는 호스트 운영 체제를 공유하여 가상 머신보다 더 경량적이고 효율적입니다.
일관성 컨테이너는 환경에 관계없이 애플리케이션이 항상 동일하게 실행되도록 보장합니다.
확장성 컨테이너는 변화하는 요구 사항에 맞춰 쉽게 확장하거나 축소할 수 있습니다.

Docker 컨테이너 수명주기

Docker 컨테이너의 수명주기는 다음 단계를 포함합니다.

  1. 빌드: Dockerfile 에서 Docker 이미지를 생성합니다.
  2. 배포: Docker Hub 와 같은 레지스트리에 Docker 이미지를 저장합니다.
  3. 실행: Docker 이미지에서 새 컨테이너를 시작합니다.
  4. 관리: 실행 중인 컨테이너를 모니터링, 확장 및 유지 관리합니다.

Docker 컨테이너의 기본 사항을 이해함으로써 이제 사용자 정의 Docker 이미지를 구축하는 방법을 배울 수 있습니다.

사용자 정의 Docker 이미지 생성

사용자 정의 Docker 이미지를 생성하려면 이미지 생성 지침이 포함된 텍스트 파일인 Dockerfile 을 만들어야 합니다.

Dockerfile 생성

Ubuntu 22.04 기본 이미지를 기반으로 Apache 웹 서버를 설치하는 사용자 정의 이미지를 생성하는 Dockerfile 예제는 다음과 같습니다.

## Ubuntu 22.04 기본 이미지 사용
FROM ubuntu:22.04

## 패키지 인덱스 업데이트 및 Apache 설치
RUN apt-get update && apt-get install -y apache2

## 컨테이너 시작 시 실행할 기본 명령 설정
CMD ["apache2ctl", "-D", "FOREGROUND"]

Docker 이미지 생성

Dockerfile 에서 Docker 이미지를 생성하려면 Dockerfile 과 같은 디렉터리에서 다음 명령어를 실행합니다.

docker build -t my-apache-image .

이 명령은 Dockerfile 의 지침에 따라 my-apache-image라는 새 Docker 이미지를 생성합니다.

Docker 이미지 검사

이미지 생성 후 다음 명령어를 사용하여 시스템의 모든 이미지를 나열할 수 있습니다.

docker images

이렇게 하면 방금 생성한 my-apache-image를 포함한 Docker 이미지 목록이 표시됩니다.

다음 명령어를 사용하여 이미지의 세부 정보를 검사할 수도 있습니다.

docker inspect my-apache-image

이렇게 하면 Docker 이미지의 메타데이터와 구성이 표시됩니다.

이제 사용자 정의 Docker 이미지가 있으므로 이 이미지를 기반으로 컨테이너를 실행할 수 있습니다.

사용자 정의 이미지로 Docker 컨테이너 실행

이제 사용자 정의 Docker 이미지가 준비되었으므로 해당 이미지를 기반으로 컨테이너를 실행할 수 있습니다.

Docker 컨테이너 시작

my-apache-image 이미지에서 새 컨테이너를 시작하려면 다음 명령어를 사용합니다.

docker run -d -p 80:80 --name my-apache-container my-apache-image

각 명령 부분의 역할은 다음과 같습니다.

  • docker run: 새 Docker 컨테이너를 시작합니다.
  • -d: 컨테이너를 백그라운드에서 실행하는 디태치드 모드로 실행합니다.
  • -p 80:80: 호스트의 포트 80 을 컨테이너의 포트 80 으로 매핑하여 호스트에서 웹 서버에 접근할 수 있도록 합니다.
  • --name my-apache-container: 실행 중인 컨테이너에 이름 "my-apache-container"을 할당합니다.
  • my-apache-image: 컨테이너에 사용할 Docker 이미지의 이름입니다.

실행 중인 컨테이너 확인

컨테이너를 시작한 후 다음 명령어를 사용하여 실행 중인지 확인할 수 있습니다.

## 모든 실행 중인 컨테이너 목록
docker ps

## 컨테이너 검사
docker inspect my-apache-container

docker ps 명령은 방금 시작한 my-apache-container를 포함한 실행 중인 컨테이너 목록을 표시합니다.

docker inspect 명령은 실행 중인 컨테이너의 IP 주소, 포트 매핑 및 기타 구성 세부 정보를 포함한 자세한 정보를 제공합니다.

웹 서버 접근

컨테이너가 실행되면 웹 브라우저를 열고 http://localhost로 이동하여 Apache 웹 서버에 접근할 수 있습니다. 기본 Apache 환영 페이지가 표시되어야 합니다.

사용자 정의 이미지를 기반으로 Docker 컨테이너를 실행하는 방법을 이해함으로써 이제 자체 애플리케이션을 컨테이너화된 환경에서 배포할 수 있습니다.

요약

이 튜토리얼에서는 사용자 정의 Docker 이미지를 생성하고 해당 이미지를 기반으로 Docker 컨테이너를 실행하는 방법을 배웠습니다. Dockerfile 작성 및 이미지 생성을 포함한 이미지 생성 단계를 탐색했습니다. 또한 사용자 정의 이미지를 사용하여 Docker 컨테이너를 실행하고, 컨테이너의 수명주기를 관리하며, 실행 중인 컨테이너에 접근하는 방법을 배웠습니다. 이러한 기술을 통해 이제 Docker 컨테이너를 사용하여 애플리케이션을 안전하게 패키징하고 배포할 수 있습니다.