콘텐츠로 이동

이미지 & 컨테이너

도커 스터디 - 처음부터 제대로 배우는 도커/쿠버네티스 컨테이너 개발과 운영 ch. 2

created: 2026.1.15


이미지

  • 컨테이너 이미지: 컨테이너를 생성하기 위한 템플릿(template)
  • OS로 구성된 파일 시스템, 애플리케이션, 의존 관계 라이브러리, 도구, 실행 환경 설정 정보 등을 포함한 아카이브
  • Dockerfile: 이미지를 생성하기 위한 순서를 기술한 파일
docker help # 도커 커맨드 옵션
docker image --help # 커맨드
docker image build --help # 서브 커맨드
docker [command] [subcommand]

docker image build

docker image build -t 이미지명[:태그명] Dockerfile 경로
docker image build -f Dockerfile-test -t ...
docker image build --pull=true -t ...
- 컨테이너 이미지 생성 커맨드 - -t: tag. 거의 필수로 사용 - 이미지명과 태그명을 지정 - 마지막 인수는 Dockerfile이 위치하는 디렉터리 경로를 지정 - -f: Dockerfile 대신 다른 이름을 사용할 때 사용 - --pull: true로 지정하면 이미지를 빌드할 때마다 베이스 이미지를 강제로 다시 가져옴(최신 이미지 반영) - --progress=plain: 이미지 빌드 시 출력을 표시

docker search [options] 키워드
  • 도커 허브의 레지스트리에 등록된 리포지터리 검색

docker image pull

docker image pull [options] 리포지터리명[:태그명]
- 컨테이너 레지스트리에서 컨테이너 이미지를 가져옴

docker image ls

docker image ls [options] [리포지터리[:태그]]
- 도커 엔진 실행 환경에 저장된 이미지 리스트

docker image tag

docker image tag 기존이미지명[:태그] 새이미지명[:태그]
- 컨테이너 이미지의 특정 버전에 태그를 지정

docker login

docker login [options] [server]
- 이미지 푸시를 위해 대상 컨테이너 레지스트리에 로그인

docker image push

docker image push [options] 리포지터리명[:태그]
- 컨테이너 이미지를 컨테이너 레지스트리에 등록


컨테이너

  • 컨테이너: 이미지를 기반으로 생성
  • 가상 환경으로 파일 시스템과 애플리케이션이 함께 든 박스
  • 컨테이너의 라이프 사이클: 실행 중, 중지, 파기
    • 실행 중: docker run을 통해 실행된 상태
    • 중지: 상태 유지 - 재실행 가능
    • 파기: 동일한 상태의 컨테이너 다시 생성 불가

docker container run

docker container run [options] (이미지명:[:태그] | 이미지ID) [커맨드] [커맨드 인수...]
docker container run --name [컨테이너명] [이미지명]:[태그]
- 이미지로 컨테이너를 생성하고 실행 - -d 옵션으로 백그라운드 실행 - -p 옵션으로 포스 포워딩 - 인수를 전달하여 Dockerfile에서 지정한 CMD 덮어쓰기 가능 - --name: 컨테이너 이름 지정 - -it: 터미널 활성화 및 문자 입력 가능. 가상 환경 로그인 개념 - --rm: 컨테이너가 종료된 때 컨테이너 파기 - -v: 호스트와 컨테이너가 디텍터리와 파일을 공유할 때 사용

docker container ps

docker container ls [options]
docker ps # 예전 방식
docker ps -a # 종료된 컨테이너까지 보기
- 실행 중인 컨테이너와 종료한 컨테이너의 리스트 표시

항목 내용
CONTAINER ID 컨테이너에 부여되는 고유 ID
IMAGE 컨테이너 생성에 사용되는 컨테이너 이미지
COMMAND 컨테이너에서 실행되는 애플리케이션 프로세스
CREATED 컨테이너 생성 시점부터 경과 시간
STATUS Up(실행 중), Exited(종료)의 컨테이너 실행 상태
PORTS 호스트 포트와 컨테이너 포트 연결(포트 포워딩)
NAMES 컨테이너에 부여된 이름
  • -q: 컨테이너 ID만 표시
  • --filter: 특정 조건 필터링 (예) --fileter "name=echo
  • -a: 중지한 컨테이너 포함

docker container stop

docker container stop 컨테이너ID 또는 컨테이너명
- 실행 중인 컨테이너 종료(중지)

docker container rm

docker container rm 컨테이너ID 또는 컨테이너명
- 중지된 컨테이너를 디스크에서 완전 파기

docker container logs

docker container logs [options] 컨테이너ID 또는 컨테이너명
- 특정 컨테이너의 로그 확인 - -f: 계속 확인

docker container exec

docker container exec [options] 컨테이너ID 또는 컨테이너명 커맨드
docker container exec -it 컨테이너 sh # 컨테이너 접속
- 실행 중인 컨테이너에서 커맨드 실행

docker container cp

docker container cp [options] (컨테이너ID 또는 컨테이너명):(컨테이너  경로) (호스트  경로)
docker container cp [options] (호스트  경로) (컨테이너ID 또는 컨테이너명):(컨테이너  경로)
- 컨테이너 간 혹은 호스트-컨테이너 간 파일 복사