본문 바로가기

DevOps

🐳 Docker 명령어 정리

728x90

1️⃣ Docker 기본 명령어

명령어 설명
docker version Docker 버전 확인
docker info Docker 환경 정보 확인
docker login Docker Hub 로그인
docker logout Docker Hub 로그아웃

예시

  1. 레지스트리에 이미지 업로드
# 로그인
docker login

# 업로드
docker tag myapp:1.0 myregistry.company.com/myapp:1.0
docker push myregistry.company.com/myapp:1.0

2️⃣ 이미지 관련

명령어 설명
docker pull <이미지> 이미지 다운로드 (예: docker pull ubuntu:22.04)
docker build -t <이름>:<태그> . 현재 디렉터리의 Dockerfile로 이미지 빌드 (내가 만든 Dockerfile)
docker images 로컬 이미지 목록 확인
docker rmi <이미지> 이미지 삭제
docker tag <이미지> <새이름>:<태그> 이미지 태그 변경
docker push <이미지> 이미지 레지스트리에 업로드

예시

  1. 이미지 빌드
# 현재 디렉터리 Dockerfile로 이미지 빌드
docker build -t myapp:1.0 .
  1. 이미지 목록 확인
docker images
  1. 이미지 삭제
docker rmi myapp:1.0

3️⃣ 컨테이너 관련

명령어 설명
docker run -it --name <이름> <이미지> 컨테이너 생성 및 실행 (대화형)
docker run -d -p <호스트 port:컨테이너 port> <이미지> 백그라운드 실행 및 포트 매핑
docker ps 실행 중인 컨테이너 목록 확인
docker ps -a 모든 컨테이너 목록 확인
docker stop <컨테이너> 컨테이너 종료
docker start <컨테이너> 컨테이너 시작
docker restart <컨테이너> 컨테이너 재시작
docker rm <컨테이너> 컨테이너 삭제
docker exec -it <컨테이너> bash 실행 중인 컨테이너에 접속

예시

  1. 컨테이너 실행
# 포트 매핑, 백그라운드 실행
docker run -d -p 8080:8080 --name myapp_container myapp:1.0

# 대화형 실행 (프로그램 실행 후 로그 등을 볼 수 있음)
docker run -it --name myapp_dev myapp:1.0 /bin/bash

대화형

  1. 실행 중인 컨테이너 확인
docker ps       # 실행 중
docker ps -a    # 모든 컨테이너
  1. 컨테이너 종료 / 시작 / 삭제
docker stop myapp_container
docker start myapp_container
docker restart myapp_container
docker rm myapp_container
  1. 컨테이너 내부 접속
docker exec -it myapp_container bash # 리눅스
docker exec -it myapp_container /bin/sh # Mac OS (bash 없을 때)
  1. 컨테이너 로그 확인
docker logs -f myapp_container # 대화형 실행했을 때랑 동일한 인터페이스 나옴

 

참고 (docker run vs docker start)

docker run
- 새 컨테이너를 생성(create) + 시작(start)하는 명령어
- 실행할 이미지 이름을 반드시 줘야 함
- 내부적으로 `docker create` + `docker start` 를 합친 동작

💡 한 번 실행하면 같은 이름으로 다시 `docker run` 할 수 없음 (이미 존재하니까).

docker start
- 이미 생성된 컨테이너를 다시 실행하는 명령어
- 이미지 이름이 아니라 컨테이너 이름(ID) 으로 실행해야 함
- 종료했던 컨테이너를 그대로 다시 켜는 것


🔹 차이 요약

| 명령어            | 언제 사용?            | 특징                   |
| -------------- | ----------------- | -------------------- |
| `docker run`   | 처음 컨테이너 만들 때      | 컨테이너 새로 생성 + 실행      |
| `docker start` | 이미 만든 컨테이너 다시 켤 때 | 기존 컨테이너 실행 (새로 안 만듦) |


4️⃣ 볼륨 & 네트워크

명령어 설명
docker volume create <이름> 볼륨 생성
docker volume ls 볼륨 목록
docker volume rm <이름> 볼륨 삭제
docker network create <이름> 네트워크 생성
docker network ls 네트워크 목록
docker network rm <이름> 네트워크 삭제

예시

  1. 볼륨 생성 / 연결
    docker volume create mydata
    
    # 컨테이너 실행 시 마운트
    docker run -d -v mydata:/app/data myapp:1.0

  2. 환경 변수 설정

docker run -d -e SPRING_PROFILES_ACTIVE=prod myapp:1.0
  1. 네트워크 생성
    docker network create my-network
  2. 컨테이너 실행 시 네트워크 연결
    docker run -d --network my-network --name db postgres:15
    docker run -d --network my-network --name backend myapp:1.0

5️⃣ 로그 & 상태 확인

명령어 설명
docker logs <컨테이너> 컨테이너 로그 확인
docker inspect <컨테이너/이미지> 상세 정보 확인
docker stats 컨테이너 리소스 사용량 확인

실무 예시

  • 이미지 업데이트 후 컨테이너 재배포
    docker pull myregistry.company.com/myapp:latest
    docker stop myapp_container
    docker rm myapp_container
    docker run -d -p 8080:8080 --name myapp_container myregistry.company.com/myapp:latest
  • 한 번에 로그 실시간 확인
    docker logs -f myapp_container
  • 컨테이너 상태 확인
    docker stats

728x90
반응형