화. 8월 12th, 2025

G: 안녕하세요, 개발자 및 DevOps 엔지니어 여러분! 👨‍💻👩‍💻

컨테이너 기술의 핵심인 Docker는 현대 소프트웨어 개발에서 빠질 수 없는 도구입니다. Docker를 능숙하게 다루기 위해서는 CLI(명령어 인터페이스)를 마스터하는 것이 매우 중요하죠. 수많은 Docker 명령어와 그에 딸린 옵션들을 일일이 외우기란 쉽지 않습니다. 하지만 걱정 마세요! 이 글에서는 Docker CLI의 핵심 명령어들을 A부터 Z까지, 각 명령어의 상세 옵션과 실제 활용 예시를 풍부하게 담아 총정리해 드립니다. 🚀

이 가이드만 있다면 여러분은 Docker 컨테이너, 이미지, 네트워크, 볼륨 등을 자유자재로 다루는 Docker 전문가로 거듭날 수 있을 것입니다! 💡


1. Docker CLI 기본 개념 이해하기 🧠

Docker CLI는 여러분이 터미널에서 Docker 데몬과 상호작용하는 방법입니다. docker라는 기본 명령어를 시작으로 다양한 서브 명령어(예: run, ps, images)와 옵션들을 조합하여 원하는 작업을 수행합니다.

기본 형식: docker [서브 명령어] [옵션] [인수]

예시: docker run -d -p 80:80 nginx

이제 가장 많이 사용되고 중요한 명령어들을 하나씩 파헤쳐 보겠습니다!


2. 컨테이너 관리 명령어 📦

Docker의 핵심은 컨테이너입니다. 컨테이너를 생성하고, 실행하고, 중지하고, 제거하는 등의 생명 주기를 관리하는 명령어들입니다.

2.1. docker run (컨테이너 생성 및 실행의 시작점) ✨

  • 설명: Docker 이미지를 기반으로 새로운 컨테이너를 생성하고 실행합니다. 컨테이너를 실행하는 가장 기본적인 명령어이자 가장 많은 옵션을 가집니다.
  • 주요 옵션:
    • -d, --detach: 컨테이너를 백그라운드에서 실행하고 터미널의 제어권을 돌려줍니다. (detached mode)
    • -p, --publish <호스트포트>:<컨테이너포트>: 호스트와 컨테이너 간의 포트를 연결합니다. (포트 포워딩)
    • -v, --volume <호스트경로>:<컨테이너경로>: 호스트와 컨테이너 간에 볼륨을 마운트하여 데이터를 공유하거나 영구적으로 저장합니다.
    • -e, --env <환경변수=값>: 컨테이너 내부에 환경 변수를 설정합니다.
    • --name <이름>: 컨테이너에 알아보기 쉬운 이름을 지정합니다. (지정하지 않으면 Docker가 임의로 생성)
    • --rm: 컨테이너가 종료될 때 자동으로 제거합니다. (일회성 컨테이너에 유용)
    • -it, --interactive --tty: 컨테이너에 대한 상호 작용 터미널을 할당하고, 컨테이너의 표준 입력을 열어줍니다. (대부분 bash 또는 sh 실행 시 사용)
    • --network <네트워크이름>: 컨테이너를 특정 Docker 네트워크에 연결합니다.
  • 활용 예제:

    # 1. Nginx 웹 서버 컨테이너를 백그라운드로 실행하고 80번 포트를 호스트의 80번 포트에 연결
    docker run -d -p 80:80 --name my-nginx-web nginx
    # 결과: Nginx 컨테이너가 백그라운드에서 실행되며, 웹 브라우저에서 localhost로 접속 가능
    
    # 2. Ubuntu 컨테이너에 접속하여 Bash 쉘 사용 (대부분의 CLI 작업 시 사용)
    docker run -it --name my-ubuntu ubuntu bash
    # 결과: Ubuntu 컨테이너 내부의 Bash 쉘 프롬프트로 이동
    
    # 3. 호스트의 특정 폴더를 컨테이너 내부로 마운트하여 데이터 공유
    docker run -d -p 3000:3000 -v ~/my-app:/app --name my-node-app node:16-alpine npm start
    # 결과: 호스트의 ~/my-app 폴더 내용이 컨테이너의 /app 폴더와 동기화되며 앱 실행
    
    # 4. 환경 변수를 설정하여 컨테이너 실행 (예: 데이터베이스 연결 정보)
    docker run -d -p 5000:5000 -e DB_HOST=mydb.example.com -e DB_USER=admin --name my-api my-custom-api-image
    # 결과: my-custom-api-image 컨테이너가 DB_HOST와 DB_USER 환경 변수를 가지고 실행

2.2. docker ps (실행 중인 컨테이너 목록 확인) 🔍

  • 설명: 현재 실행 중인 Docker 컨테이너 목록을 보여줍니다.
  • 주요 옵션:
    • -a, --all: 종료된 컨테이너를 포함하여 모든 컨테이너 목록을 보여줍니다.
    • -s, --size: 컨테이너의 가상 크기와 실제 크기를 함께 보여줍니다.
    • -q, --quiet: 컨테이너 ID만 출력합니다. (스크립트에서 유용)
    • --filter "key=value": 특정 조건에 맞는 컨테이너만 필터링합니다. (예: status=exited, name=my-app)
  • 활용 예제:

    # 1. 현재 실행 중인 컨테이너 목록 확인
    docker ps
    # 결과: CONTAINER ID, IMAGE, COMMAND, CREATED, STATUS, PORTS, NAMES 정보 출력
    
    # 2. 모든 컨테이너 (실행 중 + 종료됨) 목록 확인
    docker ps -a
    # 결과: 종료된 컨테이너들도 함께 출력
    
    # 3. 모든 컨테이너의 ID만 출력
    docker ps -aq
    # 결과: e3f1c2d3a4b5, f6g7h8i9j0k1 등 컨테이너 ID만 한 줄씩 출력
    
    # 4. 이름이 "my-nginx"인 컨테이너만 필터링하여 확인
    docker ps -f "name=my-nginx"
    # 결과: my-nginx 이름의 컨테이너 정보만 출력
    
    # 5. 상태가 'exited'인 컨테이너만 필터링하여 확인 (종료된 컨테이너만)
    docker ps -a --filter "status=exited"
    # 결과: 이전에 종료되었던 컨테이너들의 정보만 출력

2.3. docker stop, docker start, docker restart (컨테이너 상태 제어) 🚦

  • 설명: 실행 중인 컨테이너를 중지하고, 중지된 컨테이너를 다시 시작하며, 실행 중인 컨테이너를 재시작합니다.
  • 인수: 컨테이너 ID 또는 컨테이너 이름
  • 활용 예제:

    # 1. "my-nginx-web" 컨테이너 중지
    docker stop my-nginx-web
    # 결과: 컨테이너가 안전하게 종료됩니다.
    
    # 2. 중지된 "my-nginx-web" 컨테이너 다시 시작
    docker start my-nginx-web
    # 결과: 컨테이너가 이전에 중지된 상태에서 다시 시작됩니다.
    
    # 3. 실행 중인 "my-api" 컨테이너 재시작
    docker restart my-api
    # 결과: 컨테이너가 종료 후 다시 시작됩니다.

2.4. docker rm (컨테이너 제거) 🗑️

  • 설명: 하나 이상의 컨테이너를 제거합니다. 참고: 실행 중인 컨테이너는 바로 제거되지 않습니다. 먼저 stop해야 합니다.
  • 주요 옵션:
    • -f, --force: 실행 중인 컨테이너도 강제로 종료하고 제거합니다. (주의해서 사용!)
    • -v, --volumes: 컨테이너와 연결된 익명 볼륨(named volume이 아닌)도 함께 제거합니다.
  • 활용 예제:

    # 1. "my-nginx-web" 컨테이너 제거
    docker rm my-nginx-web
    # 결과: 컨테이너가 삭제됩니다. (컨테이너가 실행 중이면 에러 발생)
    
    # 2. 실행 중인 "my-api" 컨테이너를 강제로 제거
    docker rm -f my-api
    # 결과: 실행 중이던 my-api 컨테이너가 강제 종료되며 삭제됩니다.
    
    # 3. 종료된 모든 컨테이너 한 번에 제거 (ps -aq와 조합)
    docker rm $(docker ps -aq --filter "status=exited")
    # 결과: 모든 종료된 컨테이너가 일괄적으로 삭제됩니다.

2.5. docker exec (실행 중인 컨테이너 내부 명령어 실행) 💬

  • 설명: 실행 중인 컨테이너 내부에서 명령어를 실행합니다. 컨테이너의 상태를 변경하지 않고 디버깅하거나 추가 작업을 할 때 유용합니다.
  • 주요 옵션:
    • -it, --interactive --tty: 상호 작용 터미널을 할당하고, 표준 입력을 열어줍니다. (컨테이너 내부에 쉘 접속 시 필수)
  • 활용 예제:

    # 1. "my-nginx-web" 컨테이너 내부에 Bash 쉘로 접속
    docker exec -it my-nginx-web bash
    # 결과: Nginx 컨테이너 내부의 Bash 쉘 프롬프트로 이동
    
    # 2. "my-api" 컨테이너 내부에서 특정 명령어 실행 (예: 파일 목록 확인)
    docker exec my-api ls -l /app
    # 결과: my-api 컨테이너 내부의 /app 디렉토리 파일 목록이 출력
    
    # 3. "my-nginx-web" 컨테이너 내부에 Vim 설치 (예시)
    docker exec -it my-nginx-web apt-get update && apt-get install -y vim
    # 결과: Nginx 컨테이너 내부에 vim이 설치됩니다.

2.6. docker logs (컨테이너 로그 확인) 📝

  • 설명: 컨테이너의 표준 출력(stdout) 및 표준 에러(stderr) 로그를 가져와서 보여줍니다. 디버깅에 필수적인 명령어입니다.
  • 주요 옵션:
    • -f, --follow: 실시간으로 로그를 스트리밍하여 보여줍니다. (Ctrl+C로 종료)
    • --tail <숫자>: 로그의 마지막 N줄만 보여줍니다.
    • --since <시간>: 특정 시간 이후의 로그만 보여줍니다. (예: 10m, 2023-01-01T00:00:00)
  • 활용 예제:

    # 1. "my-nginx-web" 컨테이너의 모든 로그 출력
    docker logs my-nginx-web
    # 결과: 컨테이너가 시작된 이후의 모든 로그가 출력됩니다.
    
    # 2. "my-nginx-web" 컨테이너의 로그를 실시간으로 확인
    docker logs -f my-nginx-web
    # 결과: 새로운 로그가 발생할 때마다 터미널에 실시간으로 출력됩니다.
    
    # 3. "my-api" 컨테이너의 최신 로그 10줄만 확인
    docker logs --tail 10 my-api
    # 결과: my-api 컨테이너 로그의 마지막 10줄이 출력됩니다.
    
    # 4. 지난 5분 동안의 "my-node-app" 컨테이너 로그 확인
    docker logs --since 5m my-node-app
    # 결과: 5분 이내의 로그만 출력됩니다.

3. 이미지 관리 명령어 🖼️

Docker 이미지는 컨테이너를 생성하는 데 사용되는 읽기 전용 템플릿입니다. 이미지를 빌드하고, 다운로드하고, 삭제하는 등의 작업을 관리합니다.

3.1. docker images (로컬 이미지 목록 확인) 🏞️

  • 설명: 로컬 Docker 호스트에 저장된 이미지 목록을 보여줍니다.
  • 주요 옵션:
    • -a, --all: 모든 이미지 (중간 빌드 과정의 이미지 포함)를 보여줍니다.
    • -q, --quiet: 이미지 ID만 출력합니다.
    • --filter "key=value": 특정 조건에 맞는 이미지만 필터링합니다. (예: dangling=true – 미사용 이미지)
  • 활용 예제:

    # 1. 로컬에 있는 모든 Docker 이미지 목록 확인
    docker images
    # 결과: REPOSITORY, TAG, IMAGE ID, CREATED, SIZE 정보 출력
    
    # 2. 모든 이미지의 ID만 출력
    docker images -aq
    # 결과: 이미지 ID만 한 줄씩 출력
    
    # 3. "nginx" 이미지만 필터링하여 확인
    docker images -f "reference=nginx"
    # 결과: nginx 관련 이미지 정보만 출력

3.2. docker pull (이미지 다운로드) ⬇️

  • 설명: Docker 레지스트리(기본값은 Docker Hub)에서 이미지를 다운로드합니다.
  • 인수: <이미지이름>:<태그> (태그를 지정하지 않으면 latest 태그를 다운로드)
  • 활용 예제:

    # 1. 최신 Ubuntu 이미지 다운로드
    docker pull ubuntu
    # 결과: ubuntu:latest 이미지가 로컬로 다운로드됩니다.
    
    # 2. 특정 버전의 Alpine 이미지 다운로드
    docker pull alpine:3.14
    # 결과: alpine:3.14 이미지가 로컬로 다운로드됩니다.

3.3. docker build (이미지 빌드) 🏗️

  • 설명: Dockerfile을 사용하여 새로운 Docker 이미지를 빌드합니다.
  • 주요 옵션:
    • -t, --tag <이름>:<태그>: 빌드된 이미지에 이름과 태그를 지정합니다.
    • --no-cache: 캐시를 사용하지 않고 이미지를 빌드합니다. (모든 레이어를 새로 빌드)
    • --build-arg <변수=값>: Dockerfile 내에서 사용할 빌드 시간 변수를 전달합니다.
  • 인수: <빌드_컨텍스트_경로> (대부분 현재 디렉토리인 .을 사용)
  • 활용 예제: (예시를 위해 Dockerfile이 현재 디렉토리에 있다고 가정)

    # Dockerfile 예시
    # FROM alpine:latest
    # WORKDIR /app
    # COPY . .
    # RUN echo "Hello from Dockerfile" > hello.txt
    # CMD ["cat", "hello.txt"]
    # 1. 현재 디렉토리의 Dockerfile을 사용하여 "my-app"이라는 이름의 이미지 빌드
    docker build -t my-app:1.0 .
    # 결과: my-app:1.0 이미지가 성공적으로 빌드됩니다.
    
    # 2. 캐시를 사용하지 않고 "my-app" 이미지 재빌드
    docker build --no-cache -t my-app:latest .
    # 결과: Dockerfile의 모든 명령이 처음부터 다시 실행됩니다.
    
    # 3. 빌드 시 인자를 전달하여 이미지 빌드
    docker build --build-arg VERSION=1.0 -t my-api-v1 .
    # 결과: Dockerfile 내에서 VERSION 이라는 빌드 인자를 사용할 수 있습니다.

3.4. docker tag (이미지 태그 추가) 🏷️

  • 설명: 기존 이미지에 새로운 태그를 추가하거나, 원본 이미지 이름과 태그를 사용하여 새로운 이미지 이름과 태그를 지정합니다. 주로 이미지를 Docker 레지스트리에 푸시하기 전에 사용됩니다.
  • 인수: <원본이미지>:<원본태그> <새이미지>:<새태그>
  • 활용 예제:

    # 1. "my-app:1.0" 이미지에 "my-app:latest" 태그 추가
    docker tag my-app:1.0 my-app:latest
    # 결과: my-app:1.0과 my-app:latest가 동일한 이미지 ID를 가리킵니다.
    
    # 2. 로컬 이미지를 Docker Hub 계정의 레파지토리로 푸시하기 위해 태그 변경
    docker tag my-app:latest myusername/my-app:prod
    # 결과: myusername/my-app:prod 라는 새 태그가 생성됩니다.

3.5. docker push (이미지 푸시) 📤

  • 설명: 로컬 이미지를 Docker 레지스트리(예: Docker Hub)에 업로드합니다.
  • 인수: <이미지이름>:<태그> (일반적으로 myusername/my-image:tag 형식)
  • 활용 예제:

    # 1. "myusername/my-app:prod" 이미지를 Docker Hub에 푸시
    docker push myusername/my-app:prod
    # 결과: 이미지가 Docker Hub의 myusername 계정의 my-app 레파지토리로 업로드됩니다.

3.6. docker rmi (이미지 제거) ❌

  • 설명: 로컬 Docker 호스트에서 하나 이상의 이미지를 제거합니다.
  • 주요 옵션:
    • -f, --force: 사용 중인(컨테이너가 참조하는) 이미지도 강제로 제거합니다. (주의해서 사용!)
  • 인수: 이미지 ID 또는 이미지 이름 및 태그
  • 활용 예제:

    # 1. "my-app:1.0" 이미지 제거
    docker rmi my-app:1.0
    # 결과: my-app:1.0 이미지가 삭제됩니다. (컨테이너가 사용 중이면 에러 발생)
    
    # 2. 사용 중인 "my-old-image" 이미지를 강제로 제거
    docker rmi -f my-old-image
    # 결과: my-old-image 이미지가 강제로 삭제됩니다. (관련 컨테이너는 더 이상 실행될 수 없습니다)
    
    # 3. 태그가 없는 (dangling) 이미지들 일괄 제거
    docker rmi $(docker images -aq --filter "dangling=true")
    # 결과: 더 이상 사용되지 않고 태그가 없는 모든 이미지가 삭제됩니다.

4. 네트워크 관리 명령어 🌐

Docker는 컨테이너 간 또는 컨테이너와 외부 세계 간의 통신을 위해 다양한 네트워크 옵션을 제공합니다.

4.1. docker network (네트워크 관리의 시작점) 🌉

  • 설명: Docker 네트워크를 생성, 나열, 검사, 연결 및 제거합니다. network는 여러 서브 명령어를 가집니다.

    • docker network create <네트워크이름>: 새로운 네트워크를 생성합니다.
      • -d, --driver <드라이버>: 네트워크 드라이버를 지정합니다. (기본값: bridge)
    • docker network ls: 모든 네트워크 목록을 보여줍니다.
    • docker network inspect <네트워크이름>: 특정 네트워크의 자세한 정보를 보여줍니다.
    • docker network connect <네트워크이름> <컨테이너이름>: 실행 중인 컨테이너를 특정 네트워크에 연결합니다.
    • docker network disconnect <네트워크이름> <컨테이너이름>: 컨테이너를 특정 네트워크에서 연결 해제합니다.
    • docker network rm <네트워크이름>: 하나 이상의 네트워크를 제거합니다.
  • 활용 예제:

    # 1. 새로운 브릿지 네트워크 생성
    docker network create my-app-network
    # 결과: my-app-network 라는 이름의 네트워크가 생성됩니다.
    
    # 2. 모든 Docker 네트워크 목록 확인
    docker network ls
    # 결과: NETWORK ID, NAME, DRIVER, SCOPE 정보 출력
    
    # 3. "my-app-network" 네트워크의 상세 정보 확인
    docker network inspect my-app-network
    # 결과: IPAM, Containers, Options 등 상세 JSON 정보 출력
    
    # 4. 컨테이너를 생성하면서 특정 네트워크에 연결
    docker run -d --name web-server --network my-app-network nginx
    docker run -d --name api-server --network my-app-network my-api-image
    # 결과: web-server와 api-server 컨테이너가 my-app-network를 통해 서로 통신 가능
    
    # 5. 실행 중인 컨테이너를 다른 네트워크에 연결 (예: web-server를 기존에 있던 bridge 네트워크에도 연결)
    docker network connect bridge web-server
    # 결과: web-server 컨테이너가 bridge 네트워크에도 연결됩니다.
    
    # 6. "my-app-network" 네트워크 제거
    docker network rm my-app-network
    # 결과: my-app-network 네트워크가 삭제됩니다.

5. 볼륨 관리 명령어 💾

Docker 볼륨은 컨테이너가 생성되고 제거되어도 데이터를 영구적으로 저장하고 공유할 수 있는 메커니즘을 제공합니다.

5.1. docker volume (볼륨 관리의 시작점) 🗄️

  • 설명: Docker 볼륨을 생성, 나열, 검사, 제거합니다. volume도 여러 서브 명령어를 가집니다.

    • docker volume create <볼륨이름>: 새로운 볼륨을 생성합니다.
    • docker volume ls: 모든 볼륨 목록을 보여줍니다.
    • docker volume inspect <볼륨이름>: 특정 볼륨의 자세한 정보를 보여줍니다.
    • docker volume rm <볼륨이름>: 하나 이상의 볼륨을 제거합니다.
    • docker volume prune: 사용되지 않는(dangling) 모든 볼륨을 제거합니다.
  • 활용 예제:

    # 1. "my-app-data"라는 이름의 새 볼륨 생성
    docker volume create my-app-data
    # 결과: my-app-data 볼륨이 생성됩니다.
    
    # 2. 모든 Docker 볼륨 목록 확인
    docker volume ls
    # 결과: DRIVER, VOLUME NAME 정보 출력
    
    # 3. "my-app-data" 볼륨의 상세 정보 확인
    docker volume inspect my-app-data
    # 결과: Mountpoint, Name, Scope 등 상세 JSON 정보 출력
    
    # 4. 컨테이너를 생성하면서 명명된 볼륨을 마운트
    docker run -d -p 8080:80 -v my-app-data:/usr/share/nginx/html --name my-data-nginx nginx
    # 결과: Nginx 컨테이너의 /usr/share/nginx/html 디렉토리가 my-app-data 볼륨에 연결되어 데이터가 영구 저장
    
    # 5. 더 이상 컨테이너에 의해 사용되지 않는 모든 볼륨 제거
    docker volume prune
    # 결과: 사용되지 않는 볼륨 목록을 보여주고 제거 여부 확인 후 삭제

6. 시스템 및 정보 명령어 ℹ️

Docker 환경 자체의 정보를 확인하거나, 전체 시스템을 정리하는 등의 명령입니다.

6.1. docker info (Docker 시스템 정보 확인) 📊

  • 설명: Docker 데몬 및 시스템에 대한 자세한 정보를 보여줍니다.
  • 활용 예제:

    docker info
    # 결과: 컨테이너 수, 이미지 수, 스토리지 드라이버, Docker 버전 등 상세 정보 출력

6.2. docker version (Docker 버전 정보 확인) 🔢

  • 설명: Docker 클라이언트 및 서버(데몬)의 버전을 보여줍니다.
  • 활용 예제:

    docker version
    # 결과: Client, Server (Engine), Build, API Version 등 자세한 버전 정보 출력

6.3. docker system prune (전체 Docker 시스템 정리) 🧹

  • 설명: 사용되지 않는 모든 Docker 리소스(컨테이너, 이미지, 볼륨, 네트워크)를 제거하여 디스크 공간을 확보합니다.
  • 주요 옵션:
    • -a, --all: 모든 사용되지 않는 이미지(dangling 뿐만 아니라 참조되지 않는 모든 이미지)를 제거합니다.
    • --volumes: 사용되지 않는 볼륨도 함께 제거합니다. (기본적으로 볼륨은 제외)
  • 활용 예제:

    # 1. 사용되지 않는 컨테이너, 네트워크, 이미지(dangling만) 제거
    docker system prune
    # 결과: 제거될 리소스 목록을 보여주고 확인 후 삭제
    
    # 2. 사용되지 않는 모든 컨테이너, 네트워크, 모든 이미지, 볼륨까지 제거
    docker system prune -a --volumes
    # 결과: Docker 시스템을 완전히 정리하여 디스크 공간을 최대로 확보

7. 고급 및 기타 명령어 🌟

7.1. docker inspect (객체 상세 정보 확인) 🔍

  • 설명: 컨테이너, 이미지, 볼륨, 네트워크 등 Docker 객체의 상세한 로우 레벨 정보를 JSON 형식으로 출력합니다. 디버깅이나 특정 정보를 추출할 때 매우 유용합니다.
  • 주요 옵션:
    • --format <템플릿>: Go 템플릿 구문을 사용하여 출력 형식을 지정할 수 있습니다.
  • 활용 예제:

    # 1. "my-nginx-web" 컨테이너의 상세 정보 확인
    docker inspect my-nginx-web
    # 결과: 컨테이너의 모든 설정, 상태, 네트워크 정보 등이 JSON으로 출력
    
    # 2. "my-nginx-web" 컨테이너의 IP 주소만 확인
    docker inspect --format '{{.NetworkSettings.IPAddress}}' my-nginx-web
    # 결과: 컨테이너의 IP 주소만 출력됩니다. (예: 172.17.0.2)
    
    # 3. "nginx" 이미지의 레이어 히스토리 확인
    docker inspect nginx
    # 결과: 이미지의 모든 레이어 정보와 메타데이터가 출력

7.2. docker login, docker logout (레지스트리 인증) 🔑

  • 설명: Docker 레지스트리(예: Docker Hub)에 로그인하거나 로그아웃합니다. docker pushdocker pull을 할 때 필요한 인증 절차입니다.
  • 주요 옵션:
    • -u, --username <사용자이름>: 사용자 이름을 직접 지정합니다.
    • -p, --password <비밀번호>: 비밀번호를 직접 지정합니다. (보안상 권장하지 않음, 보통 입력 프롬프트 이용)
    • <레지스트리서버>: 특정 레지스트리 서버를 지정합니다. (기본값: Docker Hub)
  • 활용 예제:

    # 1. Docker Hub에 로그인
    docker login
    # 결과: 사용자 이름과 비밀번호를 입력하라는 프롬프트가 나타납니다.
    
    # 2. Docker Hub에서 로그아웃
    docker logout
    # 결과: 로컬에 저장된 인증 정보가 삭제됩니다.

8. 마치며: Docker CLI, 직접 경험하며 성장하세요! 💪

지금까지 Docker CLI의 핵심 명령어들을 A부터 Z까지 상세한 옵션과 활용 예제를 통해 살펴보았습니다. 이 외에도 docker top, docker stats, docker history, docker save, docker load 등 다양한 명령어들이 있지만, 위에 소개된 명령어들만으로도 대부분의 Docker 작업은 충분히 수행할 수 있습니다.

가장 중요한 것은 직접 해보는 것입니다! ⌨️ 각 명령어를 터미널에 직접 입력하고, 옵션을 바꿔보면서 어떤 변화가 있는지 경험해보세요. 막히는 부분이 있다면 언제든지 docker [명령어] --help를 입력하여 상세한 사용법과 옵션 목록을 확인할 수 있습니다.

Docker 생태계는 빠르게 발전하고 있습니다. 꾸준히 학습하고 실습하면서 여러분의 개발 및 운영 역량을 한 단계 더 업그레이드하시길 바랍니다. 🌟

이 가이드가 여러분의 Docker 여정에 큰 도움이 되기를 바라며, 다음에는 더 유익한 정보로 찾아뵙겠습니다! 감사합니다. 🙏

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다