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

이미지 빌드

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

docker build --tag myimage . 

이미지 강제 재빌드

docker build --no-cache . 

컨테이너를 이미지로 변환

docker commit c7337 myimage 

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

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

디버그

실행 중인 컨테이너에 로그인

docker exec -it c7337 docker

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

docker logs -f c7337

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

docker port c7337

볼륨 및 네트워크

로컬 볼륨 생성

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

실행 중인 컨테이너의 IP 주소 조회

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

설명

이미지 이름

redis, jenkins, nginx

컨테이너 이름 또는 커밋 ID

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