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, 도커 명령어

 

+ Recent posts