빌드 ⤢ docker buildDockerfile로 이미지를 빌드합니다. docker build -t app:1.0 . ⤢ docker build --no-cache캐시된 레이어를 무시하고 이미지를 처음부터 다시 빌드합니다. docker build --no-cache -t app:1.0 . ⤢ docker build --targetmulti-stage Dockerfile에서 지정한 스테이지까지만 빌드합니다. docker build --target deps -t app:deps . ⤢ docker buildxBuildKit을 구동하는 buildx 플러그인으로 이미지를 빌드합니다. docker buildx build -t app:1.0 . ⤢ docker buildx build --platform하나의 이미지를 여러 CPU 아키텍처용으로 빌드합니다. docker buildx build --platform linux/amd64,linux/arm64 -t app:1.0 --push . 이미지 ⤢ docker pull레지스트리에서 이미지를 내려받습니다. docker pull node:20 ⤢ docker images로컬에 저장된 이미지를 나열합니다. docker images ⤢ docker tag같은 이미지를 가리키는 새 태그를 만듭니다. docker tag app:1.0 app:latest ⤢ docker rmi로컬 이미지를 하나 이상 제거합니다. docker rmi app:1.0 컨테이너 수명 주기 ⤢ docker run이미지에서 컨테이너를 만들고 시작합니다. docker run -p 8080:3000 app ⤢ docker create시작하지 않고 컨테이너를 만듭니다. docker create --name web app ⤢ docker start중지된 컨테이너를 시작합니다. docker start web ⤢ docker stop실행 중인 컨테이너를 정상 종료시킵니다. docker stop web ⤢ docker restart컨테이너를 한 번에 중지하고 다시 시작합니다. docker restart web ⤢ docker kill정상 종료를 기다리지 않고 컨테이너를 강제 종료합니다. docker kill web ⤢ docker pause컨테이너 안의 모든 프로세스를 동결합니다. docker pause web ⤢ docker unpause일시중지된 컨테이너의 프로세스를 재개합니다. docker unpause web ⤢ docker wait컨테이너가 중지될 때까지 대기한 뒤 종료 코드를 출력합니다. docker wait web ⤢ docker ps실행 중인 컨테이너를 나열합니다. -a를 붙이면 중지된 것도 포함합니다. docker ps -a ⤢ docker rename기존 컨테이너에 새 이름을 부여합니다. docker rename web web-old ⤢ docker update컨테이너의 리소스 제한이나 재시작 정책을 변경합니다. docker update --restart=unless-stopped web ⤢ docker rm중지된 컨테이너를 제거합니다. docker rm web run 플래그 ⤢ docker run -d컨테이너를 백그라운드에서 실행하고 ID를 출력합니다. docker run -d -p 8080:80 app ⤢ docker run -p컨테이너 포트를 호스트 포트에 게시합니다. docker run -p 8080:80 app ⤢ docker run -v호스트 폴더나 이름 있는 볼륨을 컨테이너에 마운트합니다. docker run -v app-data:/data app ⤢ docker run -e컨테이너에 환경 변수를 설정합니다. docker run -e MODE=prod app ⤢ docker run --name이후 명령에서 쓸 고정 이름을 컨테이너에 부여합니다. docker run --name web app ⤢ docker run --rm컨테이너가 종료되면 삭제합니다. docker run --rm app ⤢ docker run --network지정한 네트워크에서 컨테이너를 시작합니다. docker run --network net app ⤢ docker run --restartDocker에게 컨테이너를 언제 재시작할지 지정합니다. docker run --restart unless-stopped app ⤢ docker run -it터미널을 할당하고 stdin을 열어 두어 대화형 세션을 가능하게 합니다. docker run -it alpine sh ⤢ docker run --entrypoint이미지의 entrypoint를 직접 명령으로 바꿉니다. docker run --entrypoint sh app ⤢ docker run --memory / --cpus컨테이너가 쓸 수 있는 메모리나 CPU 점유에 상한을 둡니다. docker run --memory 512m --cpus 0.5 app 조회 ⤢ docker logs컨테이너의 stdout과 stderr를 읽습니다. -f는 도착하는 새 출력을 따라갑니다. docker logs -f web ⤢ docker inspect컨테이너나 이미지의 저수준 구성과 상태를 보여 줍니다. docker inspect web ⤢ docker inspect --formatGo 템플릿으로 inspect에서 필드 하나를 뽑아 냅니다. docker inspect --format '{{.State.Status}}' web ⤢ docker port컨테이너가 게시한 호스트 포트를 나열합니다. docker port web ⤢ docker diff이미지와 비교해 컨테이너가 변경한 파일을 보여 줍니다. docker diff web ⤢ docker stats실행 중인 컨테이너의 CPU, 메모리, 네트워크를 실시간으로 보여 줍니다. docker stats ⤢ docker top컨테이너 안에서 실행 중인 프로세스를 나열합니다. docker top web ⤢ docker events데몬의 Docker 이벤트를 발생 즉시 스트리밍합니다. docker events --filter type=container ⤢ docker system df이미지, 컨테이너, 볼륨, 캐시가 사용하는 디스크 용량을 보여 줍니다. docker system df ⤢ docker info시스템 전체 Docker 설정과 상태를 보여 줍니다. docker info exec와 attach ⤢ docker exec실행 중인 컨테이너 안에서 명령을 실행합니다. docker exec -it web sh ⤢ docker attach터미널을 컨테이너의 메인 프로세스에 연결합니다. docker attach web 파일과 레지스트리 ⤢ docker cp컨테이너와 로컬 파일 시스템 간에 파일을 복사합니다. docker cp web:/app/logs ./logs ⤢ docker loginCLI에서 레지스트리에 로그인합니다. docker login ⤢ docker logout레지스트리에서 로그아웃합니다. docker logout ⤢ docker push로컬 이미지를 레지스트리에 업로드합니다. docker push user/app:1.0 ⤢ docker save이미지를 tar 파일로 저장합니다. docker save -o app.tar app:1.0 ⤢ docker loadtar 파일에서 이미지를 읽어 들입니다. docker load -i app.tar ⤢ docker export컨테이너의 파일 시스템을 tar 파일로 내보냅니다. docker export web > web.tar ⤢ docker importtar 파일 시스템으로 이미지를 만듭니다. docker import web.tar web:snap ⤢ docker commit컨테이너의 현재 상태를 새 이미지로 만듭니다. docker commit web app:snap 볼륨 ⤢ docker volume create영구 데이터용 이름 있는 볼륨을 만듭니다. docker volume create data ⤢ docker volume ls볼륨을 나열합니다. docker volume ls ⤢ docker volume rm볼륨을 제거합니다. docker volume rm data 네트워크 ⤢ docker network ls네트워크를 나열합니다. docker network ls ⤢ docker network create컨테이너끼리 서로 통신할 수 있게 네트워크를 만듭니다. docker network create net ⤢ docker network connect실행 중인 컨테이너를 네트워크에 연결합니다. docker network connect net web Compose ⤢ docker compose upcompose.yaml의 서비스를 빌드하고 (다시) 만들어 시작합니다. -d는 백그라운드에서 계속 실행하게 합니다. docker compose up -d ⤢ docker compose up --build서비스를 시작하기 전에 이미지를 먼저 다시 빌드합니다. docker compose up --build -d ⤢ docker compose exec실행 중인 서비스 컨테이너 안에서 명령을 실행합니다. docker compose exec api sh ⤢ docker compose logs하나 이상 서비스의 로그를 따라 봅니다. docker compose logs -f api ⤢ docker compose psCompose가 관리하는 서비스 컨테이너를 나열합니다. docker compose ps ⤢ docker compose stop서비스 컨테이너를 제거하지 않고 중지합니다. docker compose stop ⤢ docker compose restart서비스 컨테이너를 재시작합니다. docker compose restart api ⤢ docker compose down컨테이너와 네트워크를 중지하고 제거합니다. -v는 이름 있는 볼륨도 제거합니다. docker compose down ⤢ docker compose config병합과 환경 변수 치환을 거친 최종 Compose 설정을 보여 줍니다. docker compose config 정리 ⤢ docker system prune중지된 컨테이너, dangling 이미지, 사용하지 않는 네트워크를 제거합니다. -a --volumes는 사용하지 않는 이미지와 볼륨도 제거합니다. docker system prune -af ⤢ docker container prune중지된 컨테이너를 모두 제거합니다. docker container prune ⤢ docker image prune사용하지 않거나 dangling인 이미지를 제거합니다. docker image prune -a ⤢ docker volume prune어떤 컨테이너도 사용하지 않는 볼륨을 제거합니다. docker volume prune ⤢ docker network prune어떤 컨테이너도 사용하지 않는 네트워크를 제거합니다. docker network prune ⤢ docker builder prune캐시된 빌드 레이어를 제거합니다. docker builder prune