Docker 명령어 모음
이미지·컨테이너·compose 관리 핵심 명령어 정리
데이터는 서버로 전송되지 않습니다 — 모든 처리는 브라우저 안에서만 서버 전송 0건
이미지
-
docker pull nginx:latest이미지를 다운로드합니다
-
docker images로컬 이미지 목록을 확인합니다
-
docker build -t myapp:1.0 .현재 디렉터리의 Dockerfile로 이미지를 빌드합니다
-
docker rmi 이미지명이미지를 삭제합니다
-
docker image prune -a사용하지 않는 이미지를 모두 정리합니다 ※ 주의
-
docker tag myapp:1.0 user/myapp:1.0이미지에 새 태그(레지스트리 경로)를 답니다
-
docker push user/myapp:1.0이미지를 레지스트리에 올립니다
컨테이너 실행
-
docker run -d -p 8080:80 --name web nginx백그라운드로 실행하며 호스트 8080 → 컨테이너 80 포트를 연결합니다
-
docker run -it --rm ubuntu bash임시 컨테이너에서 셸을 열고 종료 시 자동 삭제합니다
-
docker run -e KEY=value 이미지환경 변수를 주입해 실행합니다
-
docker run -v $(pwd):/app 이미지현재 디렉터리를 컨테이너 /app에 마운트합니다
-
docker run --restart unless-stopped 이미지도커 재시작 시 컨테이너를 자동으로 다시 띄웁니다
컨테이너 관리
-
docker ps실행 중인 컨테이너 목록을 봅니다 (-a 는 중지 포함 전체)
-
docker stop web컨테이너를 정상 종료합니다 (start/restart)
-
docker rm web중지된 컨테이너를 삭제합니다 (-f 는 실행 중도 강제 삭제)
-
docker container prune중지된 컨테이너를 일괄 정리합니다
-
docker rename old new컨테이너 이름을 변경합니다
디버깅
-
docker logs -f --tail 100 web최근 100줄부터 로그를 실시간으로 봅니다
-
docker exec -it web bash실행 중인 컨테이너 안에서 셸을 엽니다 (bash 없으면 sh)
-
docker inspect web컨테이너의 상세 설정(IP, 마운트 등)을 JSON으로 봅니다
-
docker stats컨테이너별 CPU·메모리 사용량을 실시간으로 봅니다
-
docker cp web:/var/log/nginx/access.log ./컨테이너의 파일을 호스트로 복사합니다
-
docker port web컨테이너의 포트 매핑을 확인합니다
볼륨·네트워크
-
docker volume ls볼륨 목록을 확인합니다 (create/rm/inspect)
-
docker volume prune사용하지 않는 볼륨을 정리합니다 ※ 데이터 삭제 주의
-
docker network ls네트워크 목록을 확인합니다
-
docker network create mynet사용자 정의 네트워크를 만듭니다 (컨테이너 이름으로 통신 가능)
-
docker network connect mynet web실행 중인 컨테이너를 네트워크에 연결합니다
Docker Compose
-
docker compose up -dcompose.yaml의 서비스 전체를 백그라운드로 띄웁니다
-
docker compose down서비스를 중지하고 컨테이너·네트워크를 제거합니다 (-v 는 볼륨까지 ※ 주의)
-
docker compose ps서비스 상태를 확인합니다
-
docker compose logs -f 서비스명특정 서비스의 로그를 실시간으로 봅니다
-
docker compose build --no-cache캐시 없이 이미지를 다시 빌드합니다
-
docker compose exec 서비스명 bash서비스 컨테이너 안에서 셸을 엽니다
-
docker compose restart 서비스명특정 서비스만 재시작합니다
시스템 정리
-
docker system df이미지·컨테이너·볼륨이 차지하는 용량을 확인합니다
-
docker system prune중지 컨테이너·미사용 네트워크·댕글링 이미지를 정리합니다
-
docker system prune -a --volumes미사용 리소스를 전부 정리합니다 ※ 복구 불가, 신중히 실행
-
docker builder prune빌드 캐시를 정리합니다
Docker 명령어 핵심 정리
도커 명령은 이미지(설계도)와 컨테이너(실행 인스턴스)를 구분하면 절반은 이해한 것입니다. 이 페이지는 이미지 → 실행 → 관리 → 디버깅 → 볼륨·네트워크 → Compose → 정리 순서로, 단일 컨테이너 운영부터 다중 서비스 구성까지 필요한 명령을 정리했습니다.
문제가 생겼을 때는 docker ps -a 로 상태를 보고, docker logs -f 로 로그를 따라가고, docker exec -it 로 내부에 들어가 확인하는 3단계가 기본 디버깅 루틴입니다. 운영 환경에서는 --restart unless-stopped 와 Compose 기반 관리를 권장합니다.
※ prune 계열과 compose down -v 는 데이터를 삭제할 수 있습니다. 볼륨에 중요한 데이터가 있는지 먼저 확인하세요.
자주 묻는 질문
- docker-compose와 docker compose는 뭐가 다른가요?
- 하이픈이 있는 docker-compose는 구버전 독립 실행 파일이고, 현재는 도커에 내장된 docker compose(공백) 사용이 표준입니다. 명령 체계는 거의 동일합니다.
- 디스크 용량이 도커 때문에 가득 찼어요.
- docker system df 로 어디가 큰지 확인한 뒤, docker system prune 으로 중지 컨테이너·댕글링 이미지를 정리하세요. -a --volumes 옵션은 사용하지 않는 모든 이미지·볼륨까지 지우므로 필요한 데이터가 없는지 먼저 확인해야 합니다.
- 컨테이너 안에 들어가서 확인하고 싶어요.
- docker exec -it 컨테이너명 bash 를 사용하세요. 알파인 기반 등 bash가 없는 이미지는 sh 로 접속하면 됩니다.