Docker Command Basic (도커 기본 명령어)
· Version : Docker
도커의 기본적인 명령 구조
docker [명령어] [옵션] [이미지] |
도커 버전 정보 확인
https://docs.docker.com/engine/reference/commandline/version/
docker version [OPTIONS] ex) docker version ex) docker version –format ‘{{.Server.Version}}’ |
· --format, -f : 주어진 템플릿 형식을 사용하여 출력
· --kubeconfig : 쿠버네티스 설정 파일
설치된 이미지 목록 조회
https://docs.docker.com/engine/reference/commandline/images/
docker images [OPTIONS] [REPOSITORY[:TAG]] ex) docker images ex) docker images java ex) docker images java:8 ex) docker images –format “{.ID}}: {{.Repository}}” |
· --all, -a : 모든 이미지 표시
· --digests : 요약 보기
· --filter, -f : 제공된 출력에 따라 출력 필터링
· --format : Go 템플릿을 사용한 Pretty-print 이미지 사용
· --no-trunc : 출력을 자르지 않음
· --quiet, -q : 숫자만 표시
설치된 이미지 삭제
https://docs.docker.com/engine/reference/commandline/rmi/
docker rmi [OPTION] IMAGE [IMAGE…] ex) docker rmi fd484f19954f ex) docker rmi -f fd484f19954f |
· --force, -f : 강제로 이미지 삭제
· --no-prune : 태그 없는 부모는 삭제 제외
설치된 모든 이미지 강제 삭제
docker rmi -f $(docker images -a -q) |
컨테이너 목록 조회
https://docs.docker.com/engine/reference/commandline/ps/
docker ps [OPTIONS] ex ) docker ps ex) docker ps -a ex) docker ps –filter “label=color” |
· --all, -a : 전체 컨테이너 목록 조회
· --filter, -f : 제공된 조건에 따라 출력 필터링
· --format : Go 템플릿을 사용한 Pretty-print 이미지 사용
· --last, -n : 마지막으로 생성된 컨테이너 n 개 표시
· --latest, -l : 최근 생성된 컨테이너 표시
· --no-trunc : 출력을 자르지 않음
· --quiet, -q : 숫자만 표시
· --size, -s : 전체 파일 사이즈 표시
새로운 컨테이너 실행. 로컬에 해당 이미지가 없다면 레포지토리에서 이미지를 다운로드 받아 실행한다.
https://docs.docker.com/engine/reference/commandline/run/
docker run [OPTIONS] IMAGE [COMMAND] [ARG…] ex) docker run -i -t --name sample ubuntu:14.04 / bin/bash |
· -i : interactive, 컨테이너의 입력 및 출력 등 상호작용하겠다는 뜻
· -t : pseudo-tty 로 터미널과같은 환경을 사용하겠다는 뜻
· --name sample : 컨테이너 이름을 sample로 지정. 이름을 지정하지 않으면 도커가 자동으로 이름을 지정
· ubuntu:14.04 : 우분투 이미지 버전
· /bin/bash : 컨테이너 시작 시 bash 쉘을 사용하겠다는 뜻
컨테이너 실행. (1개 이상의 컨테이너를 실행)
https://docs.docker.com/engine/reference/commandline/start/
docker start [OPTIONS] CONTAIER [CONTAINER…] ex) docker start my_container |
· --attach, -a : Attach STDOUT/STDERR and forward signals
· --checkpoint : 이 체크포인트에서 복원
· --chekcpoint-dir : 사용자 지정 체크포인트 저장소 디렉터리 사용
· --detach-keys : 컨테이너를 분리하기 위한 키 순서 정의
· --interactive, -i : Attach container’s STDIN
컨테이너 중지. (1개 이상의 컨테이너를 중지)
https://docs.docker.com/engine/reference/commandline/stop/
docker stop [OPTIONS] CONTAINER [CONTAINER…] ex) docker stop my_container |
· --time, -t : 명령된 시간(초) 후 컨테이너 중지 (기본값 10)
컨테이너 재시작 (1개 이상의 컨테이너 재시작)
https://docs.docker.com/engine/reference/commandline/restart/
docker restart [OPTIONS] CONTAINER [CONTAINER…] ex) docker restart my_cotainer |
· --time, -t : 명령된 시간(초) 후 컨테이너 중지 (기본값 10)
컨테이너 삭제 ( 1개 상의 컨테이너 삭제)
https://docs.docker.com/engine/reference/commandline/rm/
docker rm [OPTIONS] CONTAINER [CONTAINER…] ex) docker rm /redis ex) docker rm –link /webapp/redis ex) docker rm –force redis |
· --force, -f : 실행중인 컨테이너를 강제로 삭제 (SIGKILL 사용)
· --link, -l : 지정된 링크 제거
· --volumes, -v : 컨테이너와 관련된 볼륨 제거
모든 컨테이너 강제 삭제
docker rm -f $(docker ps -a -q) |
컨테이너 강제 중지 (1개 이상의 컨테이너를 강제 중지)
https://docs.docker.com/engine/reference/commandline/kill/
docker kill [OPTIONS] CONTAINER [CONTAINER…] ex) docker kill my_container ex) docker kill –signal=SIGHUP my_container |
· --signal, -s : 컨테이너에 보낼 신호 (기본값 KILL)
도커 컨테이너 연결 (실행중인 컨테이너에 로컬 표준 입출력 및 에러 스트림 연결)
https://docs.docker.com/engine/reference/commandline/attach/
docker attach [OPTIONS] CONTAINER ex) docker attach my_container |
· --detach-keys : 컨테이너를 분리하기 위한 키 순서 재정이
· --no-stdin : Do not attach STDIN
· --sig-proxy : 모든 프로세스 신호는 프록시로 받음
컨테이너 이름 변경
https://docs.docker.com/engine/reference/commandline/rename/
docker rename CONTAINER NEW_NAME ex) docker rename my_container my_new_container |
호스트와 컨테이너간 파일 복사
https://docs.docker.com/engine/reference/commandline/cp/
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|- docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH
|
· --archive, -a : 보관 모드(모든 uid/gid 정보 복사)
· --follow-link, -l : 항상 SRC_PATH 심볼링크로 연결
새로운 컨테이너 생성
https://docs.docker.com/engine/reference/commandline/create/
docker create [OPTIONS] IMAGE [COMMAND] [ARG…] |
컨테이너 로그 확인
https://docs.docker.com/engine/reference/commandline/logs/
docker logs [OPTIONS] CONTAINER ex) docker logs my_container |
· --details : 로그에 추가 세부 정보 표시
· --follow, -f : 로그 발생시 로그 출력
· --since : 해당 시간이후 로그 표시 (e.g : 2013-01-02T13:23:37 or 42m)
· --tail : 로그 끝에 표시할 줄 수
· --timestamps, -t : 타임스템프 표시
· --until : 타임스탬프 이전 시간만큼 또는 정해진 현재에서 정해진 이전 시간만 로그 표시 (e.g : 2013-01-02T13:23:37 or 42m)
레지스트리에서 이미지 또는 Repository 가져오기
https://docs.docker.com/engine/reference/commandline/pull/
docker pull [OPTIONS] NAME[:TAG|@DIGEST] ex) docker pull ubuntu (우분투 최신버전 가져옴) ex) docker pull ubuntu:16.04 (우분투 16.04 버전을 가져옴) ex) docker pull –all-tags fedora |
· --all-tags, -a : 저장소에서 태그가 있는 모든 이미지 다운로드
· --disable-content-trust : 이미지 확인 건너뛰기
· --platform : 서버가 다중 플랫폼 지원이 가능한 경우 플랫폼 설정
이미지 또는 저장소를 레지스트리로 푸시
https://docs.docker.com/engine/reference/commandline/push/
docker push [OPTIONS] NAME[:TAG] |
· --disable-content-trust : 이미지 서명 건너뛰기. 기본값 TRUE.
이미지 만들기 (Dockerfile로 부터)
https://docs.docker.com/engine/reference/commandline/build/
docker build [OPTIONS] PATH | URL | - ex) docker build https://github.com/docker/rootfs.git#container:docker ex) docker build - < Dockerfile |
변경된 컨테이너로 새로운 이미지 만들기
https://docs.docker.com/engine/reference/commandline/commit/
Docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] |
· --author, -a : 작성자 ( e.g : e.g., “John Hannibal Smith hannibal@a-team.com”)
· --change, -c : Dockerfile 명령을 생성된 이미지에 적용
· --message, -m : 커밋 메시지
· --pause, -p : 커밋 중 컨테이너 일시 중지
컨테이너 파일 시스템에 있는 파일이나 디렉터리의 변경 사항 검사
https://docs.docker.com/engine/reference/commandline/diff/
docker diff CONTAINER |
실행중인 컨테이너에서 명령 실행
https://docs.docker.com/engine/reference/commandline/exec/
docker exec [OPTIONS] CONTAINER COMMAND [ARG…] ex) docker exec -d ubuntu_bash bash ex) docker exec -it ubuntu_bash pwd |
· --detach, -d : 분리모드. 백그라운드에서 명령 실행
· --detach-leys : 컨테이너를 분리하기 위한 키 순서 재정의
· --env, -e : 환경 변수 설정
· --interactive, -i : Keep STDIN open even if not attached
· --privileged : 명령에 확장된 권한 부여
· --tty, -t : pseudo-TTY 할당
· --user, -u : 사용자 이름 또는 UID ( format: <name|uid>[:<group|gid>])
· --workdir, -w : 컨테이너 내부 작업 디렉토리
서버에서 실시간 이벤트 가져오기
https://docs.docker.com/engine/reference/commandline/events/
docker event [OPTIONS] ex) docker events ex) docker events --since 1483283804 ex) docker events --since ‘2017-01-05’ ex) docker events--since ‘10m’ |
· --filter, -f : 제공된 조건에 따라 출력 필터링
· --format : 주어진 Go 템플릿을 사용하여 출력 형식화
· --since : 타임스탬프 이후 생성된 모든 이벤트 표시
· --until : 현재 시간까지의 이벤트 스트리밍
컨테이너의 파일 시스템을 tar 아카이브로 보내기
https://docs.docker.com/engine/reference/commandline/export/
docker export [OPTIONS] CONTAINER |
· --output, -o : STDOUT 대신 파일에 쓰기
이미지 기록 보기
docker history [OPTIONS] IMAGE ex) docker history docker ex) docker history docker:scm ex) docker history –format “{{.ID}}: {{.CreatedSince}}” busybox |
· --format : 주어진 Go 템플릿을 사용하여 출력 형식화
· --human, -H : 사람이 읽을 수 있는 형식으로 크기와 날짜 출력
· --no-trunc :출력을 자르지 않음
· --quiet, -q : 숫자ID만 표시
tarball에서 내용을 가져와 파일 시스템 이미지 만들기
https://docs.docker.com/engine/reference/commandline/import/
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]] ex) docker import http://example.com/exampleimage.tgz ex) docker import /path/to/exampleimage.tgz |
· --change, -c : Dockerfile 명령을 생성 된 이미지에 적용
· --message, -m : 가져온 이미지에 커밋 메시지 설정
· --platform : 서버가 다중 플랫폼 지원이 가능한 경우 플랫폼 설정
시스템 전체 정보 표시
https://docs.docker.com/engine/reference/commandline/info/
docker info [OPTIONS] ex) docker info ex) docker info –format ‘{{json .}}’ |
· --format, -f : 주어진 Go 템플릿을 사용하여 출력 형식화
Docker 객체에 대한 저수준 정보 반환
https://docs.docker.com/engine/reference/commandline/inspect/
docker inspect [OPTIONS] NAME|ID [NAME|ID…] ex) docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $INSTANCE_ID ex) docker inspect --format='{{.LogPath}}' $INSTANCE_ID |
· --format, -f : 주어진 Go 템플릿을 사용하여 출력 형식화
· --size, -s : 컨테이너 유형의 전체 파일 크기 표시
· --type : 지정된 유형의 JSON 반환
tar 아카이브 또는 STDIN에서 이미지 로드
https://docs.docker.com/engine/reference/commandline/load/
docker load [OPTIONS] ex) docker load --input fedora.tar
|
· --input, -i : STDIN 대신 tar 아카이브 파일에서 읽기
· --quiet, -q : 부하 출력 억제
Docker 레지스트리에 로그인
https://docs.docker.com/engine/reference/commandline/login/
docker login [OPTIONS] [SERVER] ex) docker login localhost:8080 |
· --password, -p : 패스워드
· --password-stdin : STDIN에서 암호 가져오기
· --username, -u : 사용자명
Docker레지스트리에서 로그아웃
https://docs.docker.com/engine/reference/commandline/logout/
docker logout [SERVER] ex) docker logout localhost:8080 |
하나 이상의 컨테이너에 있는 모든 프로세스 일시 중지
https://docs.docker.com/engine/reference/commandline/pause/
docker pause CONATINAER [CONTAINER…] ex) docker pause my_container |
하나 이상의 컨테이너에 있는 모든 프로세스 일시 중지 해제
https://docs.docker.com/engine/reference/commandline/unpause/
docker unpause CONATINER [CONTAINER…] ex) docker unpause my_container |
컨테이너의 포트매핑 또는 특정 매핑 나열
https://docs.docker.com/engine/reference/commandline/port/
docker port CONTAINER [PRIVATE_PORT[/PROTO]] ex) docker port test ex) docker port test 7890 |
하나 이상의 이미지를 tar 아카이브에 저장. (기본적으로 STDOUT으로 스트리밍 됨)
https://docs.docker.com/engine/reference/commandline/save/
docker save [OPTIONS] IMAGE [IMAGE…] ex) docker save busybox > busybox.tar ex) docker save --output busybox.tar busybox ex) docker save -o fedora-all.tar fedora |
· --output, -o : STDOUT 대신 파일에 쓰기
Docker 허브에서 이미지 검색
https://docs.docker.com/engine/reference/commandline/search/
docker search [OPTIONS] TERM ex) docker search busybox ex) docker search --stars=3 --no-trunc busybox |
· --automated : 자동 빌드만 표시
· --filter, -f : 제공된 조건에 따라 출력 필터링
· --format : Go 템플릿을 사용하여 검색
· --limit : 최대 검색 결과 수. 기본값 25.
· --no-trunc : 출력을 자르지 않음
· --stars, -s : x stars만 표시
실시간으로 컨테이너 자원 사용 통계 표시
https://docs.docker.com/engine/reference/commandline/stats/
docker stats [OPTIONS] [CONTAINER…] ex) docker stats ex) docker stats awesome_brattain 67b2424d8ad1 ex) docker stats --all --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}" fervent_panini 5acfcb1b4fd1 drunk_visvesvaraya big_heisenberg |
· --all, -a : 모든 컨테이너 표시 (기본값은 실행중임)
· --format : Go 템플릿을 사용하여 표시
· --no-stream : 스트리밍 비활성화 및 첫 번째 결과만 가져오기
· --no-trunc : 출력을 자르지 않음
SOURCE_IMAGE를 참조하는 TARGET_IMAGE 만들기
https://docs.docker.com/engine/reference/commandline/tag/
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] ex) docker tag 0e5574283393 fedora/httpd:version1.0 ex) docker tag httpd:test fedora/httpd:version1.0.test |
컨테이너의 실행중인 프로세스 표시
https://docs.docker.com/engine/reference/commandline/top/
docker top CONTAINER [ps OPTIONS] ex) docker top |
하나 이상의 컨테이너 구성 업데이트
https://docs.docker.com/engine/reference/commandline/update/
docker update [OPTIONS] CONTAINER [CONTAINER…] ex) docker update --cpu-shares 512 abebf7571666 ex) docker update --cpu-shares 512 -m 300M abebf7571666 hopeful_morse |
하나 이상의 컨테이너가 멈출 때 까지 차단한 다음 종료 코드 인쇄
https://docs.docker.com/engine/reference/commandline/wait/
dockerr waint CONTAINER [CONTAINER…] ex) docker wait my_container |
컨테이너에서 빠져나오기
exit |
2019-01-16 / Sungwook Kang / http://sqlmvp.kr
Docker, docker command, 도커 명령어
'SW Engineering > DevOps, SRE' 카테고리의 다른 글
Docker Volume (컨테이너 볼륨 공유)-컨테이너 볼륨을 다른 컨테이너와 공유하기 (0) | 2019.03.26 |
---|---|
Docker Volume (호스트 볼륨 공유)-컨테이너 데이터를 호스트 디스크에 저장하기 (0) | 2019.03.26 |
Docker Deploy (0) | 2019.03.26 |
Docker Stack (0) | 2019.03.26 |
Docker Swarms (0) | 2019.03.26 |