Skip to content

Docker 명령 요약표 (Cheat Sheet)

Docker는 오픈 소스 애플리케이션 컨테이너 엔진으로, 개발자가 애플리케이션과 종속성 패키지를 휴대용 이미지로 패키징하여 널리 사용되는 Linux 또는 Windows 머신에 배포하고 가상화를 구현할 수 있게 해줍니다. 컨테이너는 완전히 샌드박스 메커니즘을 사용하며 서로 간에 어떠한 인터페이스도 가지지 않습니다.

일반 사용법

백그라운드에서 컨테이너 시작

docker run -d jenkins

대화형 컨테이너 시작

docker run -it ubuntu bash

중지 시 자동으로 삭제되는 컨테이너 시작

docker run --rm ubuntu bash 

포트 매핑을 지정하여 컨테이너 시작

docker run -p 80:80 -d nginx 

이름이 지정된 컨테이너 시작

docker run --name mydb redis 

중지된 컨테이너 시작

docker start mydb 

컨테이너 중지

docker stop mydb

컨테이너를 시작하고 메타데이터 추가

docker run -d \ label=traefik.backend=jenkins jenkins

이미지 빌드 (Build Images)

현재 디렉터리의 Dockerfile에서 이미지 빌드

docker build --tag myimage . 

캐시를 사용하지 않고 이미지 강제 재빌드

docker build --no-cache . 

컨테이너의 변경 사항을 이미지로 저장 (Commit)

docker commit c7337 myimage 

사용하지 않는 모든 이미지 삭제

docker rmi $(docker images -q -f "dangling=true")

디버깅 (Debug)

실행 중인 컨테이너에 접속

docker exec -it c7337 docker

실행 중인 데몬 컨테이너의 활동 로그 표시

docker logs -f c7337

컨테이너의 노출된 포트 표시

docker port c7337

볼륨 (Volumes)

로컬 볼륨 생성

docker volume create --name myvol 

컨테이너 시작 시 볼륨 마운트

docker run -v myvol:/data redis

볼륨 삭제

docker volume rm myvol 

모든 볼륨 목록 표시

docker volume ls

로컬 네트워크 생성

docker network create mynet 

시작 시 컨테이너를 네트워크에 연결

docker run -d --net mynet redis

컨테이너를 특정 네트워크에 연결

docker network connect mynet c7337 

네트워크에서 컨테이너 연결 해제

docker network disconnect mynet c7337

컨테이너 관리

실행 중인 컨테이너 목록 표시

docker ps

모든 컨테이너 목록 표시 (실행 중 및 중지됨 포함)

docker ps -a

컨테이너 메타데이터 검사

docker inspect c7337

로컬에 있는 사용 가능한 모든 이미지 목록 표시

docker images

중지된 모든 컨테이너 삭제

docker rm $(docker ps --filter status=exited -q) 

특정 레이블이 있는 모든 컨테이너 목록 표시

docker ps --filter label=traefik.backend

특정 메타데이터가 있는 실행 중인 컨테이너 쿼리

docker inspect -f '{{ .NetworkSettings.IPAddress }}' c7337

설명

이미지 이름

redis, jenkins, nginx

컨테이너 이름 또는 커밋 ID

mydb  # 컨테이너 이름 
c7337 # 커밋 ID