Taeyoung Kim

Cloud & Platform

Docker와 Docker Hub 기본 명령어

Docker와 Docker Hub 기본 명령어 학습 내용을 정리한 백필 노트입니다.

이 글은 2025년 학습 기록을 블로그 형식으로 정리한 백필 노트입니다.


1. 도커(Docker) 개념

  • 컨테이너 기반 가상화 플랫폼
    • 기존 VM은 운영체제(OS) 전체를 가상화 → 무겁고 느림
    • 도커는 애플리케이션과 필요한 라이브러리/환경만 컨테이너에 격리 → 가볍고 빠름
  • 핵심 개념:
    • 이미지(Image) : 실행 가능한 애플리케이션 패키지 (설정, 코드, 라이브러리 포함)
    • 컨테이너(Container) : 이미지를 실행한 인스턴스 (실제 동작 단위)
    • 도커 엔진(Docker Engine) : 컨테이너 관리 및 실행을 담당하는 도커 실행 환경

2. 도커 허브(Docker Hub) 개념

  • 도커 이미지 저장소 (레지스트리 서비스)
  • GitHub처럼 공개된 이미지 공유 가능
  • 주요 기능:
    • 공식 이미지 제공 (예: nginx, mysql, ubuntu 등)
    • 사용자 계정으로 개인 이미지 업로드/다운로드 가능
    • CI/CD와 연동 가능

3. 도커 기본 명령어

3.1. 이미지 관련

  • docker pull <이미지>

    → 도커 허브에서 이미지 내려받기

    예: docker pull nginx:latest

  • docker images

    → 로컬에 저장된 이미지 목록 확인

  • docker rmi <이미지ID>

    → 이미지 삭제


3.2. 컨테이너 실행 및 관리

  • docker run [옵션] <이미지>

    → 컨테이너 실행 (이미지 없으면 자동으로 pull)

    • 주요 옵션:
      • d : 백그라운드 실행
      • p 호스트포트:컨테이너포트 : 포트 매핑
      • -name <이름> : 컨테이너 이름 지정
      • it : 터미널 접속(대화형 모드)
  • docker ps

    → 실행 중인 컨테이너 목록 확인

  • docker ps -a

    → 중지된 것 포함 전체 컨테이너 목록

  • docker stop <컨테이너ID>

    → 컨테이너 중지

  • docker start <컨테이너ID>

    → 중지된 컨테이너 시작

  • docker restart <컨테이너ID>

    → 컨테이너 재시작

  • docker rm <컨테이너ID>

    → 컨테이너 삭제


3.3. 컨테이너 내부 접근 및 로그

  • docker exec -it <컨테이너ID> /bin/bash

    → 실행 중인 컨테이너 내부 접속

  • docker logs <컨테이너ID>

    → 컨테이너 로그 확인


3.4. 볼륨/네트워크

  • docker volume ls

    → 도커 볼륨 목록 확인

  • docker network ls

    → 도커 네트워크 목록 확인


3.5. 이미지 빌드

  • docker build -t <이미지이름>:태그 .

    → 현재 디렉토리(.)의 Dockerfile로 이미지 생성


3.6. 도커 허브 업로드

  1. 로그인:

    docker login
    
  2. 태그 붙이기:

    docker tag myapp:1.0 username/myapp:1.0
    
  3. 푸시:

    docker push username/myapp:1.0
    

핵심 요약

  • 도커 = 컨테이너 실행 플랫폼
  • 도커 허브 = 이미지 공유/저장소
  • 반드시 알아야 할 명령어: docker run, docker ps, docker exec, docker build, docker push