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