컨테이너 환경 표시
도커 클라이언트와 서버 버전 표시
- docker version
구체적인 환경 정보 표시
- docker info
컨테이너의 3대 기능
기본이 되는 기능을 뽑자면 아래 3가지 기능이다.
1. 컨테이너 이미지 빌드
현 디렉터리에 있는 Dockerfile을 바탕으로 이미지를 빌드
- docker build -t 리포지터리:태그 .
- docker image build -t 리포지터리:태그 .
로컬 이미지 목록
- docker images
- docker image ls
로컬 이미지 삭제
- docker rmi 이미지
- docker image rm 이미지
로컬 이미지 일괄 삭제
- docker rmi -f 'docker images -aq'
- docker image prune -a
2. 이미지의 이동과 공유
원격 리포지터리의 이미지를 다운로드
- docker pull 원격리포지터리[:태그]
- docker image pull 원격리포지터리[:태그]
로컬 이미지에 태그를 부여
- docker tag 이미지[:태그] 원격리포지터리[:태그]
- docker image tag 이미지[:태그] 원격리포지터리[:태그]
레지스트리 서비스에 로그인
- docker login 레지스트리서버URL
로컬 이미지를 레지스트리 서비스에 등록
- docker push 원격리포지터리[:태그]
- docker image push 원격리포지터리[:태그]
이미지를 아카이브 형식 파일로 기록
- docker save -o 파일명 이미지
- docker image save -o 파일명 이미지
아카이브 형식 파일을 리포지터리에 등록
- docker load -i 파일명
- docker image load -i 파일명
컨테이너명 또는 컨테이너 ID로 컨테이너를 지정해서 tar 형식 파일로 기록
- docker export <컨테이너명 | 컨테이너ID> -o 파일명
- docker container export <컨테이너명 | 컨테이너ID> -o 파일명
파일로 저장된 이미지를 리포지터리에 입력
- docker image 파일명 리포지터리[:태그]
- docker image import 파일명 리포지터리[:태그]
3. 컨테이너 실행
대화형으로 컨테이너를 기동해서 커맨드를 실행
종료 시에는 컨테이너를 삭제
커맨드에 sh와 bash를 지정하면 대화형 셀로 리눅스 명령어 실행 가능
- docker run --rm -it 이미지 커맨드
- docker container run --rm -it 이미지 커맨드
백그라운드 컨테이너를 실행
컨테이너 내 프로세스의 표준 출력과 표준 에러 출력은 로그에 보존
보존된 로그의 출력은 'dorker logs'를 참조
'-p'는 포트 포워딩으로 '호스트포드:컨테이너포트'로 지정
- docker run -d -p 5000:80 이미지
- docker container run -d -p 5000:80 이미지
컨테이너에 이름을 지정하여 실행
- docker run -d --name 컨테이너명 -p 5000:80 이미지
- docker container run -d -- name 컨테이너명 -p 5000:80 이미지
컨테이너의 파일 시스템에 디렉터리를 마운트 하면서 실행
'-v'는 '로컬절대경로:컨테이너경로'
- docker run -v 'pwd'/html:/usr/share/nginx/html -d -p 5000:80 ngix
- docker container run -v 'pwd'/html:/usr/share/nginx/html -d -p 5000:80 ngix
실행중인 컨테이너에 대해서 대화형 셀을 실행
- docker exec -it <컨테이너명 | 컨테이너ID> sh
- docker container exec -it <컨테이너명 | 컨테이너ID> sh
실행중인 컨테이너 목록 출력
- docker ps
- docker container ls
정지된 컨테이너도 포함하여 출력
- docker ps -a
- docker container ls -a
컨테이너의 주 프로세스에 시그널을 전송하여 종료 요청
타임아웃 시 장제 종료 실행
- docker stop <컨테이너명 | 컨테이너ID>
- docker container stop <컨테이너명 | 컨테이너ID>
컨테이너를 강제 종료
- docker kill <컨테이너명 | 컨테이너ID>
- docker container kill <컨테이너명 | 컨테이너ID>
종료한 컨테이너를 삭제
- docker rm <컨테이너명 | 컨테이너ID>
- docker container rm <컨테이너명 | 컨테이너ID>
종료한 컨테이너를 일괄 삭제
- docker rm 'docker ps -a -q'
- docker container prune -a
컨테이너를 이미지로서 리포지터리에 저장
- docker commit <컨테이너명 | 컨테이너ID> 리포지터리:[태그]
- docker container commit <컨테이너명 | 컨테이너ID> 리포지터리:[태그]
디버그 관련 기능
컨테이너 로그를 출력
- docker logs <컨테이너명 | 컨테이너ID>
- docker container logs <컨테이너명 | 컨테이너ID>
컨테이너 로그를 실시간으로 표시
- docker logs -f <컨테이너명 | 컨테이너ID>
- docker container logs -f <컨테이너명 | 컨테이너ID>
컨테이너 목록 표시
- docker ps -a
- docker container ls -a
실행중인 컨테이너에 대해서 대화형으로 커맨드를 실행
- docker exec -it <컨테이너명 | 컨테이너ID> 커맨드
- docker container exec -it <컨테이너명 | 컨테이너ID> 커맨드
상세한 컨테이너의 정보를 표시
- docker inspect <컨테이너명 | 컨테이너ID>
- docker container inspect <컨테이너명 | 컨테이너ID>
컨테이너 실행 상태를 실시간으로 표시
- docker stats
- docker container stats
컨테이너 표준 출력을 화면에 표시
- docker attach --sig-proxy=false <컨테이너명 | 컨테이너ID>
- docker container attach --sig-proxy=false <컨테이너명 | 컨테이너ID>
건테이너 일지정시
- docker pause <컨테이너명 | 컨테이너ID>
- docker container pause <컨테이너명 | 컨테이너ID>
컨테이너 일시정지를 해제
- docker unpause <컨테이너명 | 컨테이너ID>
- docker container unpause <컨테이너명 | 컨테이너ID>
정지한 컨테이너를 실행, 이때 표준 출력과 표준 에러 출력을 터미널에 출력
- docker start -a <컨테이너명 | 컨테이너ID>
- docker container start - a<컨테이너명 | 컨테이너ID>
파일 복사
C:\Users\Devbeekei\Desktop\dump.sql 파일을 mysql Container dump 폴더안으로 복사
- docker cp C:\Users\Devbeekei\Desktop\dump.sql mysql:/dump
mysql Container dump 폴더 안에 dump.sql 파일을 C:\Users\Devbeekei\Desktop으로 복사
- docker cp mysql:/dump/dump.sql C:\Users\Devbeekei\Desktop
참고자료
'Docker & Kubernetes' 카테고리의 다른 글
컨테이너의 생명 주기와 도커 커맨드 (0) | 2021.11.25 |
---|---|
쿠버네티스 kubectl 커맨드 명령어 시트 (0) | 2021.11.24 |
컨트롤러의 기본 (0) | 2021.11.24 |
서비스의 기본 (0) | 2021.11.23 |
클러스터 네트워크 (0) | 2021.11.23 |