[Docker] Docker Image / Container

왕감자·2025년 2월 11일

2025 내일배움캠프

목록 보기
8/39

CI/CD

CI (Continuous Integration) : 지속적인 통합

  • 자동화된 빌드와 테스트로 안정적인 코드를 빠르게 제공

CD (Continuous Deployment/Delivery) : 지속적인 배포/제공

  • 자동화된 지속적인 배포로 배포 시간을 단축하고 최신 기능을 빠르게 반영



Docker

  • 애플리케이션 개발과 배포가 편해짐
  • 여러 애플리케이션의 독립성과 확장성이 높아짐
  • Docker가 가상화에서 사실상 표준의 위치

Docker Image

: jar 파일과 같이 실행되지 않은 OS

  • Container 런타임에 필요한 라이브러리와 기타 종속성에 대한 정의, 실행되는 코드 포함
  • 상태 저장 없음(Stateless)
    • 내부에 지속적인 상태(데이터)를 저장하지 않음
    • 컨테이너 내부에서 파일을 변경하거나 데이터를 저장해도, 컨테이너가 종료되면 해당 데이터는 사라짐
    • 어떤 상태(State)에도 의존하지 않고 동작
    • 다른 환경에서도 동일한 애플리케이션 실행 가능
  • 불변성(Immutable) : 한번 생성되면 변경x
  • 필요한 파일만 포함하고 있기 때문에 용량 작음, 변경 필요시 새로운 이미지 생성 필요

  • docker pull : image 내려 받기
  • docker image inspect : image 구조 확인
  • docker image history : image 생성 정보 확인


Docker Container

  • image : 컨테이너에 대한 OS, Application, Library등의 정보 담고 있음
  • Container : image를 실행한 상태. 1개의 image로부터 N개의 Container를 생성 가능 (1:N)

  • docker create -ti --name 컨테이너이름 이미지이름 : 실제 실행x, 컨테이너 생성만
  • docker ps -a : 모든 컨테이너 목록을 출력 (실행 중인 컨테이너 + 중지된 컨테이너 포함)
  • docker start 컨테이너이름
  • docker attach 컨테이너이름
  • docker run -ti --name=컨테이너이름 이미지이름 /bin/bash : run은 create-start-attach 한번에 순차적 실행


실행 중인 Container 정보

  • docker top 컨테이너 이름 : 컨테이너 프로세스 조회
  • docker port 컨테이너 이름 : 포트 매핑 조회
  • docker stats 컨테이너 이름 --no-stream : 리소스 통계 출력 (1회)
  • docker stats 컨테이너 이름 : 컨테이너 리소스 통계 출력 (스트림)

Docker log

  • docker logs 컨테이너 이름 : 표준 출력 및 에러 로그 확인
  • docker logs -f 컨테이너 이름 : 실시간 로그 출력

Docker exit code

  • 0 : 정상 종료
  • 125 : Docker run 명령 실패
  • 127 : Command 발견 실패
  • 137 : kill -9 로 종료됨

Docker Container 정리 방법

  • docker container ls -a : 모든 컨테이너 조회
  • docker container prune : 실행 중이 아닌 컨테이너 삭제
  • docker image prune : 태그 없는 이미지 삭제
  • docker system prune : 사용하지 않는 모든 docker 리소스 삭제

# 터미널1, 도커 상태 확인
docker stats

# 터미널2, 도커 프로세스 이벤트 확인
docker events

# 터미널3, docker start
docker stop node-test
docker ps –a
docker start node-test

# 
docker pause node-test
docker unpause node-test
docker ps -a

0개의 댓글