[내일배움캠프 사전캠프] 19회차 TIL(7/21 화) - Docker Image, Container

2026. 7. 21. 16:07·심화_AI를 활용한 백엔드 아키텍처 심화 과정

도커(Docker): 애플리케이션을 쉽게 만들고, 테스트하고, 배포할 수 있게 도와주는 소프트웨어 플랫폼

  • 도커 이미지(Image): 애플리케이션과 그 실행에 필요한 파일을 포함한 읽기 전용 템플릿으로 이미지 안에는 코드, 런타임, 라이브러리, 환경 변수, 구성 파일 등이 포함(상태 저장x, 불변성, 이미지 변경 필요 시, 새로운 이미지 생성 필요)
  • 도커 컨테이너(Container): Docker 이미지를 실행한 상태를 의미함. Image는 정적인 템플릿이라면, Container는 실제 애플리케이션이 실행되는 동적인 환경(격리된 환경)
  • Dockerfile: 이미지를 생성하기 위한 스크립트로 이미지를 빌드하는데 필요한 명령어가 담긴 파일
  • Docker Hub: Docker Image를 공유하고 저장하는 중앙 저장소
  • 볼륨(Volume): 컨테이너의 데이터를 지속적으로 저장할 수 있는 메커니즘(데이터를 컨테이너와 독립적으로 관리 가능)
  • 네트워크(Network): 컨테이너 간 통신을 관리하는 방식
    • Bridge Network: 기본적으로 사용하는 네트워크로 동일한 브리지 네트워크에 연결된 컨테이너들은 서로 통신할 수 있음.

Docker를 사용하면 좋은(효율적인) 상황

  • 일관된 개발환경이 필요할 경우: 도커를 사용하면 모든 환경에서 동일한 컨테이너를 독립적으로 실행할 수 있어, 환경 차이로 인한 문제를 줄일 수 있음.
  • 애플리케이션을 빠르게 배포하고 싶을 경우: 도커 이미지를 빌드하고 이를 컨테이너로 실행하면, 필요한 모든 구성 요소가 포함되어 있어 별도의 설치 과정 없이 바로 실행할 수 있어 빠르게 배포 가능
  • CI/CD 파이프라인을 구축할 경우: 도커는 CI/CD 파이프라인에 적합하다. 코드를 변경할 때마다 자동으로 빌드, 테스트, 배포할 수 있도록 설정할 수 있어서, 개발 주기를 단축하고 배포의 신뢰성을 높일 수 있음.
  • 쿠버네티스(Kubernetes)와 함께 사용하고자 할 경우: 쿠버네티스는 컨테이너 오케스트레이션 도구로, 다수의 도커 컨테이너를 관리하고 자동 배포, 확장, 운영을 지원함. 따라서 도커 컨테이너를 쿠버네티스 클러스터에 배포하면, 애플리케이션의 가용성과 확장성을 높일 수 있음.

Docker 기본적인 명령어

  • 이미지 빌드(Build): Docker build -t myapp:latest . (.은 현재 파일의 Dockerfile)
  • 이미지 가져오기: docker pull postgres (도커 허브에서 이미지를 가져오는 명령어)
  • 이미지 목록: docker images
  • 이미지 삭제: docker rmi myapp:latest 

 

도커 컨테이너 관련 명령어

  • 컨테이너 실행(Run): docker run -d -p 8080:80 myapp:latest (-d: 컨테이너를 백그라운드에서 실행하여 프롬포트에서 실행 로그 안보이도록)
  • ★컨테이너 내부 접속: docker exec -it 컨테이너 아이디 /bin/bash (-i: 컨테이너 내부에서 사용자 입력을 받을 수 있게 하는 표준 입력, -t: 가상 터미널 할당으로 컨테이너 내부에서 터미널 사용 가능)
  • 실행중인 컨테이너 목록 보기: docker ps 
  • 모든 컨테이너 목록 보기: docker ps -a 
  • 중지된 컨테이너 중 마지막으로 실행된 컨테이너를 가장 먼저 나열: docker ps -al
  • 컨테이너 중지(Stop): docker stop container_id
  • 컨테이너 시작(Start): docker start container_id
  • 컨테이너 삭제(Remove): docker rm 컨테이너 아이디

Docker 네트워크 및 볼륨 관련 명령어

  • 네트워크 생성: docker network create mynetwork
  • 네트워크 목록보기: docker network ls
  • 네트워크 삭제: docker network rm mynetwork
  • 볼륨 생성: docker volume create myvolme
  • 볼륨 목록 보기: docker volume ls
  • 몰륨 삭제: docker volume rm myvolume

 

'심화_AI를 활용한 백엔드 아키텍처 심화 과정' 카테고리의 다른 글

[내일배움캠프 사전캠프] 21회차 TIL(7/23 목) - Redis  (0) 2026.07.23
[내일배움캠프 사전캠프] 20회차 TIL(7/22 수) - Docker, Docker-Compose  (0) 2026.07.22
[내일배움캠프 사전캠프] 18회차 TIL(7/16 목) - 스프링 컨테이너  (0) 2026.07.16
[내일배움캠프 사전캠프] 17회차 TIL(7/15 수)  (0) 2026.07.15
[내일배움캠프 사전캠프] 16회차 TIL(7/14 화)  (0) 2026.07.14
'심화_AI를 활용한 백엔드 아키텍처 심화 과정' 카테고리의 다른 글
  • [내일배움캠프 사전캠프] 21회차 TIL(7/23 목) - Redis
  • [내일배움캠프 사전캠프] 20회차 TIL(7/22 수) - Docker, Docker-Compose
  • [내일배움캠프 사전캠프] 18회차 TIL(7/16 목) - 스프링 컨테이너
  • [내일배움캠프 사전캠프] 17회차 TIL(7/15 수)
taeyoon2
taeyoon2
taeyoon2 님의 블로그 입니다.
  • taeyoon2
    taeyoon2 님의 블로그
    taeyoon2
  • 전체
    오늘
    어제
    • 분류 전체보기 (36)
      • 심화_AI를 활용한 백엔드 아키텍처 심화 과정 (24)
      • MSA (11)
      • Study (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    JWT
    spring cloud config
    내일배움캠프
    api gateway
    spring cloud
    로드 밸런싱
    서킷 브레이커
    RabbitMQ
    til
    OAuth2
    Config
    MSA
    보안구성
    분산추적
    내일배움캠프 #사전캠프 #til
    심화_AI를 활용한 백엔드 아키텍처 심화 과정
    Zipkin
    사전캠프
    이벤트 드리븐
    Resilience4j
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
taeyoon2
[내일배움캠프 사전캠프] 19회차 TIL(7/21 화) - Docker Image, Container
상단으로

티스토리툴바