We are Architect

15단계로 배우는 Docker와 쿠버네티스: 도커 치트시트(3) 본문

Docker

15단계로 배우는 Docker와 쿠버네티스: 도커 치트시트(3)

the best infra 2024. 12. 27. 22:45

 

* 도커 커맨드 치트 시트

  • 치트 시트는 필요한 명령어를 빠르게 찾을 수 있도록 정리한 표이다.

 

* 도커 환경 표시

커맨드 실행 설명
docker version 도커 클리언트와 서버 버전표시
docker info 구체적인  환경 표시

 

 

* 컨테이너 이미지 빌드

커맨드 실행 예 설명
docker build -t 리포지터리:태그 . 
docker image build -t 리포지터리:태그 .
현 디렉터리에 있는 dockerfile을 바탕으로 이미지를 빌드
docker images
docker image ls
로컬 이미지 목록
docker rmi 이미지
docker image rm 이미지
로컬 이미지 삭제
docker rmi -f 'docker images -aq'
docker image prune -a
로컬 이미지 일괄 삭제

 

 

* 이미지의 이동과 공유

커맨드 실행 예 설명
docker pull 원격_리포지터리[:태그]
docker imgae pull 원격_리포지터리[:태그]
원격 리포지터리의 이미지를 다운로드.
docker tag 이미지[:태그] 원격_리포지터리[:태그]
docker image tag 이미지[:태그] 원격_리포지터리[:태그]
로컬 이미지에 태그를 부여
docker login 레지스트리_URL 레지스트리 서비스에 로그인
docker push 원격_리포지터리[:태그]
docker iamge push 원격_리포지터리[:태그]
로컬 이미지를 레지스트리 서비스에 등록
docker save -o 파일명 이미지
docker image load -i 파일명
이미지를 아카이브 형식 파일로 기록
docker load -i 파일명
docker image load -i 파일명
아카이브 형식 파일을 리포지터리에 등록
docker export <컨테이너명 | 컨테이너 ID> -o 파일명
docker container export <컨테이너명 | 컨테이너ID> -o 파일명
컨테이너명 또는 ID로 컨테이너를 지정해서 tar 형식 파일로 기록
docker import 파일명 리포지터리[:태그]
docker image import 파일명 리포지터리[:태그]
파일로 저장된 이미지를 리포지터리에 입력

 

 

* 컨테이너 실행

커맨드 실행 예 설명
docker run --rm -it 이미지 커맨드
docker container run --rm -it 이미지 커맨드
대화형으로 컨테이너를 가동하고 커맨드를 실행, 그리고 종료되면 컨테이너 삭제.
docker run -d -p 5000:80 이미지
docker container run -d -p 5000:80 이미지
외부 접근 포트는 5000번, 컨테이너 포트는 80번을 사용하여 백그라운드로 컨테이너를 실행. 컨테이너 내 프로세스의 표준 출력과 펴준 에러 출력은 로그에 보존.
docker run -d --name 컨테이너명 -p 5000:80이미지
docker container  run -d --name 컨테이너명 -p 5000:80이미지
외부 접근 포트는 5000번, 컨테이너 포트는 80번을 사용하여 이름을 '컨테이너 명'으로 하고 백그라운드로 컨테이너를 실행.
docker run -v $(pwd)/html:/usr/share/nginx/html -d -p 5000:80 nginx
docker container run -v $(pwd)/html:/usr/share/nginx/html -d -p 5000:80 nginx
외부 접근 포트는 5000번, 컨테이너 포트는 80번을 사용하여  백그라운드로 컨테이너를 실행하며 현재 디렉토리의 html 폴더를 Nginx 웹 서버 컨테이너에 연결.
docker exec -it 컨테이너명 or 컨테이너 ID sh
docker container exec -it 컨테이너명 or 컨테이너 ID sh
실행중인 컨테이너 안으로 들어가는데 쉘로 접근.
docker ps
docker container ls
실행중인 컨테이너 목록 출력
docker ps -a
docker container ls -a 
정지된 컨테이너를 포함한 모든 컨테이너 목록 출력
docker stop 컨테이너명 or 컨테이너 ID
docker container stop 컨테이너명 or 컨테이너 ID
종료한 컨테이너를 종료
docker rm 컨테이너명 or 컨테이너 ID
docker container rm 컨테이너명 or 컨테이너 ID
종료한 컨테이너를 삭제
docker rm 'docker ps -a -q'
docker container rm 'docker ps -a -q'
종료한 컨테이너를 일괄 삭제
docker commit 컨테이너명 or 컨테이너 ID 리포지터리[:태그]
docker container commit 컨테이너명 or 컨테이너 ID 리포지터리[:태그]
컨테이너를 이미지로써 리포지터리에 저장

 

 

* 디버그 관련 기능

커맨드 실행 예 설명
docker attach --sig-proxy=false 컨테이너명 or 컨테이너 ID
docker container attach --sig-proxy=false 컨테이너명 or 컨테이너 ID
현재 실행 중인 컨테이너의 표준 입력, 출력, 에러 스트림에 연결하는 명령입니다. 또한 --sig-proxy=false 옵션을 사용하여 호스트의 신호가 컨테이너로 전달되지 않도록 방지
docker pause 컨테이너명 or 컨테이너 ID
docker container pause 컨테이너명 or 컨테이너 ID

컨테이너를 일시정지
docker unpause 컨테이너명 or 컨테이너 ID
docker container unpause 컨테이너명 or 컨테이너 ID
컨테이너 일시정지 해제
docker start -a 컨테이너명 or 컨테이너 ID
docker container start -a 컨테이너명 or 컨테이너 ID
중지된 컨테이너를 다시 시작하며, 애플리케이션의 실시간 출력을 확인

 

 

* 네트워크 관련

커맨드 실행 예 설명
docker network create 네트워크 명 컨테이너 네트워크를 생성
docker network ls 컨테이너 네트워크 목록 출력
docker network rm 네트워크명 컨테이너 네트워크 삭제
docker network prune 미사용 네트워크 삭제

 

 

* docker compose 관련

커맨드 실행 예 설명
docker-compose up -d 현 디렉터리의 docker-compose.yml을 사용해서 복수의 컨테이너를 기동
docker-compose ps docker-compose 관리하에 실행 중인 컨테이너 목록을 출력
docker-compose down docker-compose 관리하에 컨테이너 정지
docker-compose down --rmi all docker-compose 관리하에 컨테이너 정지하고 이미지도 삭제