Docker Volume (도커 볼륨)

-         도커 볼륨을 이용해서 데이터 공유하기

 

·         Version : Docker

 

Docker 컨테이너가 삭제(또는 재시작)되면 컨테이너의 변경된 데이터가 함께 삭제된다.  데이터를 영속적으로 보존하기위해 volume  옵션을 사용하여 호스트 저장소를 마운트하여 사용한다.

·         Docker Volume (호스트 볼륨 공유) : http://sqlmvp.kr/221449590567

·         Docker Volume (컨테이너 볼륨 공유) : http://sqlmvp.kr/221451346970

 

이번 포스트에서는 도커 자체에서 제공하는 볼륨 기능을 활용하는 방법에 대해서 알아본다. 볼륨을 생성할 플러그인을 사용하여 다양한 종류의 스토리지 백엔드를 있지만 이번 포스트에서는 기본적인 도커 엔진에서 제공되는 local 사용한다.

 

 도커 볼륨을 생성하는 명령어는docker volume create 사용한다. 생성된 볼륨을 확인하는 방법은 docker volume ls 이다.

docker volume create –name my-vol

docker volume ls

 


 

도커 볼륨은 실제 호스트의 어느 경로에 만들어 졌는지 확인하는 방법은 docker volume inspect 명령을 사용한다.

docker volume inspect my-vol

 

 

도커 볼륨을 삭제하는 명령어는docker volume rm 이다. 참고로 컨테이너를 삭제해도 볼륨은 자동으로 삭제되지 않는다.

docker volume rm my-vol

 

사용되지 않는 모든 볼륨을 삭제하려면 아래 명령을 실행 한다.

docker volume prune

 

도커 볼륨을 사용하는 컨테이너를 생성하기 위해서는 [볼륨이름]:[컨테이너 공유 디렉터리]  순으로 명령을 입력한다. 아래 예시는 my-vol이라는 볼륨을 컨테이너의 /app 디렉터리에 마운트 한다. /app 디렉터리에 파일을 쓰면 해당 파일이 볼륨에 저장된다.

docker run -d --name devtest -v my-vol:/app nginx:latest

 

도커 볼륨은 여러 컨테이너에서 사용할 있으므로 아래 그림처럼 파일을 쉐어하여 머신간에 데이터를 공유할 있다.

 


만약 여러 컨테이너가 있고 여러 볼륨이 있을 해당 컨테이너가 어떤 볼륨을 사용하는지 확인하는 명령은 docker container inspect 사용한다. 명령은 컨테이너의 상세한 정보를 나타낸다.

docker container inspect devtest

 

 

컨테이너가 아닌 외부에 데이터를 저장하고 컨테이너는 데이터로 동작하도록 설계하는 것을 스테이트리스(stateless)라고 하며 컨테이너 내부에 데이터를 저장하고 상태가 있는 경우 스테이트풀((stateful)하다고 한다.

 

 

[참고자료]

https://docs.docker.com/storage/volumes/

 

 

 

2019-02-02 / Sungwook Kang / http://sqlmvp.kr

 

Docker, docker volume, 도커 볼륨, 도커 명령어, 도커 파일 공유, 도커 호스트 디렉터리 공유

Docker Volume (컨테이너 볼륨 공유)

-         컨테이너 볼륨을 다른 컨테이너와 공유하기

 

·         Version : Docker

 

Docker 컨테이너가 삭제(또는 재시작)되면 컨테이너의 변경된 데이터가 함께 삭제된다.  데이터를 영속적으로 보존하기위해 volume 사용하는데 지난 포스트에서는 호스트의 디렉터리를 컨테이너와 공유하여, 컨테이너의 데이터 파일을 호스트에 저장하는 방법에 대해서 알아 보았다.

·         Docker Volume (호스트 볼륨 공유) : http://sqlmvp.kr/221449590567

 

이번 포스트에서는 볼륨을 사용하는 컨테이너를 다른 컨테이너와 공유하는 방법에 대해서 살펴 본다.  컨테이너를 생성할 --volumes-from 옵션을 설정하면 -v 또는 -volume 옵션을 적용한 컨테이너의 볼륨 디렉터리를 공유할 있다.

 

여러 컨테이너가 동일한 컨테이너에 --volume-from 옵션을 사용하여 볼륨을 공유하여 사용할 있다. 이러한 구조를 활용하면 호스트에서 볼륨만 공유하고 별도의 역할을 담당하지 않는 볼륨 컨테이너로서 활용할 있다.

 

아래 실습을 통해서 볼륨 컨테이너를 공유하는 방법에 대해서 살펴본다. 우선  볼륨 컨테이너로 사용할 컨테이너에 호스트 볼륨을 공유한다.

docker run  --name volumes_container  -v /tmp/sharetest:/var/sharetest sqlmvp/get-started:part2

 

 

 

볼륨 컨테이너에 연결할 컨테이너를 실행한다. 이때 --volumes-from [볼륨 컨테이너이름] 옵션을 사용하여 컨테이너의 볼륨을 공유한다.

docker run  --name volumes_share1 --volumes-from volumes_container sqlmvp/get-started:part2


 

 

볼륨 컨테이너에 동시에 여려 컨테이너가 볼륨을 공유하는지 확인하기 위해서 다른 컨테이너를 하나 실행한다.

docker run  --name volumes_share2 --volumes-from volumes_container sqlmvp/get-started:part2

 

 

호스트 볼륨이 공유된 볼륨 컨테이너의 디렉터리가 다른 컨테이너에 공유된 것을 확인할 있다.

 

 

[참고자료]

https://docs.docker.com/storage/volumes/

 

 

 

2019-01-25 / Sungwook Kang / http://sqlmvp.kr

 

Docker, docker volume, 도커 볼륨, 도커 명령어, 도커 파일 공유, 도커 호스트 디렉터리 공유

Docker Volume (호스트 볼륨 공유)

-         컨테이너 데이터를 호스트 디스크에 저장하기

 

·         Version : Docker

 

Docker 이미지로 컨테이너를 생성하면 이미지는 읽기 전용이 되며 컨테이너의 변경된 부분만 별도로 저장해서 컨테이너의 정보를 보존한다. 컨테이너에 저장된 데이터는 컨테이너가 삭제되면 데이터가 함께 삭제된다. 이러한 문제를 해결하기 위해서 데이터를 영속적(Persistent) 저장하는 방법에는 가지가 있으며 이번 포스트에서는 볼륨(Volume) 대해서 살펴본다.

 

볼륨은 Docker 컨테이너에 의해 생성되고 Docker컨테이너에 의해 사용되는 데이터를 유지하는 기본 메커니즘이다. 바인드 마운트는 호스트 시스템의 디렉터리 구조에 따라 다르지만 Volume Docker 의해 완벽하게 관리된다. 볼륨에는 바인드 마운트에 비해 가지 장점이 있다.

·         바인드 마운트보다 볼륨을 백업하거나 마이그레이션 하는 것이 쉽다.

·         Docker CLI 명령 또는 Docker API 사용하여 볼륨을 관리할 있다.

·         볼륨은 Linux Windows컨테이너에서 작동한다.

·         볼륨은 여러 컨테이너간에 안전하게 공유할 있다.

·         볼륨 드라이버를 사용하면 원격 호스트 또는 클라우드 공급자에 볼륨을 저장하고 볼륨 내용을 암호화하거나 다른 기능을 추가할 있다.

·         볼륨은 컨테이너에 의해 미리 채워진 내용을 가질 있다.

 

 

호스트 볼륨을 공유하는 방법은 컨테이너를 생성할 -v 옵션을 사용하여 호스트의 디렉터리와 컨테이너 디렉터리를 공유한다. 아래 예제는 호스트의 myvol2볼륨을 컨테이너의 /app 마운트 한다.

docker run -d --name devtest -v myvol2:/app nginx:latest

 

만약 마운트 하려는 볼륨이 호스트에 존재하지 않으면 호스트에 해당 디렉터리가 생성되면서 컨테이너와 공유 된다(컨테이너의 파일이 호스트로 복사됨). 이렇게 -v 옵션으로 공유된 디렉터리는 컨테이너가 삭제되더라도 호스트의 디렉터리는 삭제되지 않기 때문에 데이터를 보전할 있다. 볼륨 공유는 디렉터리 단위 뿐만 아니라 파일 단위의 공유도 가능하며 여러 개의 -v 옵션을 사용하여 동시에 여러 볼륨 공유도 가능하다.

 

만약 호스트에 이미 디렉터리가 존재하고 컨테이너에도 존재할 디렉터리를 공유하면 어떻게 될까? 결과적으로는 컨테이너의 파일이 삭제되고 호스트의 파일이 공유된다. , 컨테이너의 디렉터리 자체가 덮어 써지는 것이다. (호스트의 디렉터리가 컨테이너의 디렉터리에 마운트 되는 방식이다.)

 

아래 실습은 MAC 설치된 Docker 환경에서 Volume 공유하는 예시이다. 우선 볼륨을 공유하기 전에 Docker 속성에서 호스트(MAC) 디렉터리가 공유되어 있는지 확인한다. 호스트의 디렉터리가 아래 Docker 환경에 공유되어 있지 않으면 사용할 없다.

 

필자의 경우 이미 다운로드 받은 이미지를 컨테이너로 실행하면서 볼륨을 공유하였다.

docker run  --name friendlyhello  -v /tmp/sharetest:/var/sharetest sqlmvp/get-started:part2

 

 

호스트(MAC) /tmp 하위에는 sharetest라는 디레겉리가 존재하지 않았지만 컨테이너가 실행되면서 해당 디렉터리가 생성되었다.

 


컨테이너의 디렉터리를 조회하면 호스트의 sharetest 디렉터리가 공유된 것을 확인할 있으며 호스트의 파일이 조회되는 것을 확인할 있다.

 


호스트에서 볼륨을 확인하려면 아래 명령을 실행한다. 볼륨 이름을 지정하지 않으면 무작위의 16진수 형태로 생성된다.

docker volume ls

 

 

 

위에서도 언급하였지만 컨테이너를 삭제한다고 해서 호스트의 볼륨이 삭제되지는 않는다. 따라서 불필요한 볼룸은 호스트에서 수동으로 삭제해주어야 한다. 아래 스크립트는 특정 볼룸을 삭제 한다.

docker volume rm myvol2

 

 

아래 스크립트는 모든 볼륨을 삭제 한다.

docker volume prune

 

 

 

[참고자료]

https://docs.docker.com/storage/volumes/

 

 

 

2019-01-23 / Sungwook Kang / http://sqlmvp.kr

 

Docker, docker volume, 도커 볼륨, 도커 명령어, 도커 파일 공유, 도커 호스트 디렉터리 공유

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