지난 글에서 컨테이너 가상화 기술을 사용하는 도커의 아키텍처에 대해 알아보고,
간단히 도커 컨테이너를 실행해 보았다.
이번 장에서는 도커 이미지에 대해 살펴보고, 관련 명령어에 대해 정리를 진행한다.
이미지 (Image)
Docker 이미지는 컨테이너를 생성하는 데 사용된다.이미지는 파일 시스템(디렉터리)에서 특정 시점을 저장해 놓은 압축 파일이다. 소프트웨어뿐만 아니라 소프트웨어가 실행하기 위해서 필요한 모든 요소들을 준비해서 압축한다. 따라서 우리는 docker run [이미지명] 명령어만 실행하면 이미지를 다운 받아 격리된 공간에 컨테이너를 만들고, 컨테이너 내부에서프로그램을 실행할 수 있다.
이미지는 컨테이너를 사용하는 데 있어 가장 중요한 기능 중 하나이다. nginx 이미지처럼 다른 사람의 이미지를 직접 다운받아 사용할 수도 있고, 내가 직접 만든 이미지를 사용할 수도 있다.
이미지와 컨테이너
이미지와 컨테이너의 관계는 프로그램과 프로세스의 관계로 이해하면 된다.
프로그램 VS 프로세스
- 프로그램(Program)
- 실행 가능한 소프트웨어
- 디스크 공간 차지
- 프로세스(Process)
- 실행 중인 소프트웨어
- 프로그램 1 : N 프로세스
- 실행 시 CPU, Memeory 등의 리소스 사용
이미지 VS 컨테이너
- 이미지(Image)
- 실행 가능한 소프트웨어 + 실행에 필요한 환경
- 디스크 공간 차지
- 컨테이너(Container)
- 실행 상태의 이미지
- 이미지 1 : N 컨테이너
- 컨테이너로 실행 시 CPU, Memory 등의 리소스 사용
- 컨테이너 간 리소스 격리
- 실행 시 이미지를 복사해 격리된 디스크 공간 생성
- 컨테이너 실행 시 프로세스도 함께 실행
정리하면, 이미지를 컨테이너로 실행시키는 것은 이미지에 저장되어 있는 모든 요소들을 격리된 공간으로 만든 다음 격리된 공간 안에서 프로그램을 프로세스로 실행시키는 단계를 거치는 것이다.
관련 명령어
이미지 조회
로컬에 저장된 모든 Docker 이미지의 목록이 출력된다.
docker image ls
- 출력 항목
- REPOSITORY : 이미지가 속한 저장소의 이름
- TAG : 이미지의 태그 이름
- IMAGE ID : 이미지의 고유 식별자로, 이미지를 참조하거나 관리할 때 사용
- CREATED : 이미지가 생성된 시점으로부터의 경과 시간
- SIZE : 이미지의 크기
이미지로 도커 컨테이너 실행
기본 문법
docker run [OPTION] IMAGE [COMMAND] [ARG...]
- IMAGE : 컨테이너를 생성할 Docker 이미지의 이름
- COMMAND : 컨테이너가 시작될 때 실행할 명령어 (지정하지 않으면 이미지의 기본 명령어 실행)
- ARG : 명령어에 전달할 인자들
주요 옵션
- d : 컨테이너를 백그라운드에서 실행하고 컨테이너 ID를 반환
- it : interactive와 tty 옵션을 결합한 것으로, 대화형 터미널을 통해 컨테이너와 상호작용 가능
- -name : 컨테이너의 이름 지정
- p : 호스트와 컨테이너 간의 포트 매핑 (매핑 형식 : 호스트포트:컨테이너포트)
- v : 호스트와 컨테이너 간의 디렉토리 공유
- -rm : 컨테이너가 종료되면 자동으로 컨테이너 삭제
- -e : 컨테이너 내에서 사용할 환경 변수 지정
- -network : 컨테이너가 사용할 네트워크 지정 (기본 값: bridge)
- -restart : 컨테이너 재시작 정책 설정
- -cpus : 컨테이너가 사용할 cpu 코어 수 제한
- -memory : 컨테이너가 사용할 메모리의 최대 크기 설정
컨테이너 조회
아래의 명령어를 입력하면, 실행 중인 모든 컨테이너의 목록이 출력된다.
docker ps
-a 옵션을 주어 모든 컨테이너의 목록을 확인할 수 있다.
docker ps -a
'Docker' 카테고리의 다른 글
[Docker] 도커 아키텍처와 컨테이너 실행 방법 (2) (0) | 2024.07.31 |
---|---|
[Docker] 가상화 기술 개념 (1) (0) | 2024.07.20 |