< 도커 기본 명령어 차례 >

● 시스템 명령

docker version

docker system info

docker system df

docker system prune

docker login

locker logout

 

● 이미지 관리 명령

docker pull

docker image ls

docker images

docker image inspect

docker image tag

docker push

docker search

docker image rm

docker image prune

docker container commit

 

● 컨테이너 실행 및 조작 관련 명령

docker container create

docker container run

docker container attach

docker container exec

 

● 컨테이너 정보 확인 명령

docker container ps

docker container stats

docker container inspect

docker container top

docker container port

docker container diff

docker container logs

docker container ls

 

● 컨테이너 관리 명령

docker container stop

docker container start

docker container kill

docker container restart

docker container prune

docker container pause

docker container unpause

docker container rename

docker container cp

 

● 컨테이너/이미지 백업 명령

docker container export

docker image import

docker image save

docker image load

 

● 네트워크 명령

docker network ls

docker network create

docker network connect

docker network disconnect

docker networkinspect

docker network rm

brctl show

 

● 볼륨 명령 
docker volume create 
docker volume ls 
docker volume rm 
docker volume prune 
docker volume inspect


 

 

 

docker container export

설명

- 형식 : docker container export 컨테이너명 > 파일명.tar 

- 가동중인 컨테이너의 디렉토리/파일들을 모아 tar로 만들 수 있음.  즉 컨테이너를 작동시키는 데 필요한 파일들 모두 압축 아카이브로 모을 수 있다.
- 이 tar를 바탕으로 다른 서버에서 컨테이너를 가동시킬 수 있음.
- 이러한 명령어는 백업 말고도 마이그레이션 용도로도 사용 가능. (예를들어, 비 인터넷 망의 경우 도커허브 등을 쓸 수 없어 원래 쓰던 것을 export로 가져와서 다른곳에서 import)
- export한 것은, import만 가능하다.

옵션
- 미확인

예시

1. 컨테이너 생성 : docker container run --name webserver -d -p 80:80 nginx 
2. tar 백업 : docker container export webserver > webserver.tar  (현재 프롬프트 경로에 저장된다.)
3. 내용물 보기 : tar -tvf webserver.tar 

docker image import

설명
-
형식: cat 파일또는주소 | docker image import  - 이미지명:태그명

        docker image import <파일 또는 url> | - 이미지명:태그명

- tar 파일로부터 도커 image 만든다.
- tar 
파일을 풀면컨테이너의 루트 파일시스템을 그대로 가져오는 .
압축된 디렉토리나 파일도 취급 가능하지만, docker iamge import 명령에서 지정할  있는 파일은 하나이므로,

여러 파일을 지정할  없다그래서 tar 등으로 묶어둬야 한다.
  루트권한으로 하지 않으면 액세스 권한 문제로 특정 파일이 포함되지 않을  있으므로 조심해야 한다.
- docker image import
 지정할  있는 아카이브 파일 리스트 : tar, tar.gz, tgz, bzip, tar.xz, txz

옵션
- 미확인

예시

1. tar 파일을 가지고 docker image를 생성한다.

- 현재 경로에 webserver.tar 가 있는 상태

2. 확인

 

docker image save

설명

- 이미지를 tar로 저장한다. 
- 형식 : docker image save 옵션 저장파일명 이미지명  (저장파일은 현재 경로에 저장된다)
- save는 export와 다르다. save는 전체 레이어 구조까지 포함한 형태로 가져오고, export는 파일만 가져온다. 그래서 save를 더 많이 사용한다.
- 이러한 명령어는 백업 말고도 마이그레이션 용도로도 사용 가능  (예를들어, 비 인터넷 망의 경우 도커허브 등을 쓸 수 없어 원래 쓰던 것을 save로 가져와서 다른곳에서 load)
- save 한 것은, load만 가능하다.

옵션
-o : 저장할 파일 이름 명시

예시

 

docker image load

설명
- tar 파일로부터 도커 image를 만든다. (읽어온다)
- 형식 : docker image load 옵션 파일명
- 현재경로에 이미지를 만들 tar 파일이 있어야 한다.


옵션
-i : 읽어들일 파일명을 명시

예시

< 도커 기본 명령어 차례 >

● 시스템 명령

docker version

docker system info

docker system df

docker system prune

docker login

locker logout

 

● 이미지 관리 명령

docker pull

docker image ls

docker images

docker image inspect

docker image tag

docker push

docker search

docker image rm

docker image prune

docker container commit

 

● 컨테이너 실행 및 조작 관련 명령

docker container create

docker container run

docker container attach

docker container exec

 

● 컨테이너 정보 확인 명령

docker container ps

docker container stats

docker container inspect

docker container top

docker container port

docker container diff

docker container logs

docker container ls

 

● 컨테이너 관리 명령

docker container stop

docker container start

docker container kill

docker container restart

docker container prune

docker container pause

docker container unpause

docker container rename

docker container cp

 

● 컨테이너/이미지 백업 명령

docker container export

docker container import

docker image save

docker image load

 

● 네트워크 명령

docker network ls

docker network create

docker network connect

docker network disconnect

docker networkinspect

docker network rm

brctl show

 

● 볼륨 명령 
docker volume create 
docker volume ls 
docker volume rm 
docker volume prune 
docker volume inspect


 

docker container stop

설명
- 실행중인 컨테이너를 중지시킨다.
- 여러개 컨테이너를 한꺼번에 중지할때는, 인수의 컨테이너 부분을 여러개 넣으면 됨

옵션
--time, -t : 컨테이너의 정지 시간을 지정. 기본값은 10초

예시

docker stop $(docker ps -a -q)  (모든 컨테이너 중지 ) // docker ps -a -q를 변수화해서 docker stop 에 넣으라는 의미.
docker container stop -t 2 컨테이너명  (2초후에 컨테이너 정지)

 

docker container start

설명
- docker container start 컨테이너명
- 중지된 컨테이너를 실행시킨다.
- 여러개 컨테이너를 한꺼번에 시작할때는, 인수의 컨테이너 부분을 여러개 넣으면 됨

옵션
--attach, -a : 표준 출력, 표준 오류 출력을 연다
--interactive, -i : 컨테이너의 표준 입력을 연다.

예시
- 없음

 

docker container rm

설명
- 컨테이너를 삭제한다. 정지중인 컨테이너 프로세스를 삭제한다.
- docker container rm [옵션] 컨테이너명

옵션
--force, -f : 실행중인컨테이너를 강제 삭제
--volumes, -v : 할당한 볼륨을 삭제

예시

docker rm $(docker ps -a -q)   (모든 컨테이너 삭제)
docker rm $(docker ps --filter 'status=exited' -a -q)    (exit 상태의 모든 컨테이너 삭제)
docker container rm -f $(docker ps -aq)   (구동중인 컨테이너까지 싹다 삭제, 위에 모든 컨테이너 삭제와 동일함) 

 

 

docker container kill

설명
- 강제로 컨테이너를 정지할때 사용한다.
- kill -9 와 혼동하지 말 것. 이것은 해당 프로세스를 죽이는거지 컨테이너를 스톱시키는것이 아님.

옵션
- 미확인

예시
- 없음

 

docker container restart

설명
- 컨테이너를 다시 시작한다.
- 컨테이너 여러개 명시 가능

옵션
--time, -t : 컨테이너의 재시작 시간을 지정. 기본값은 10초

예시

docker container restart -t 2 컨테이너명 (2초후에 컨테이너 재시작)

 

docker container prune

설명
- 정지중인 컨테이너만 삭제한다.

옵션
- 미확인

 

예시
- 없음

docker container pause

설명
- 컨테이너를 중단시킨다.
- docker container ls로 확인하면, STATUS가 paused로 확인된다.

옵션

- 미확인

예시
- 없음

 

docker container unpause

설명
- 중단된 컨테이너를 재개시킨다.

옵션
- 미확인


예시
- 없음

docker container rename

설명
- 컨테이너의 이름을 변경한다.


옵션
- 미확인

예시

docker container rename 이전이름 새이름

 

docker container cp

설명
- 컨테이너와 호스트 사이에 파일을 복사한다.
- docker container cp 컨테이너이름:컨테이너안의파일경로 호스트파일경로
- docker container cp 호스트파일경로 컨테이너이름:컨테이너안의파일경로

옵션
- 미확인

예시
docker container cp webserver:/etc/nginx/nginx.conf /tmp/nginx.conf (컨테이너에서 호스트로)
docker container cp ./test.txt webserver:/tmp/test.txt   (호스트에서 컨테이너로)

< 도커 기본 명령어 차례 >

● 시스템 명령

docker version

docker system info

docker system df

docker system prune

docker login

locker logout

 

● 이미지 관리 명령

docker pull

docker image ls

docker images

docker image inspect

docker image tag

docker push

docker search

docker image rm

docker image prune

docker container commit

 

● 컨테이너 실행 및 조작 관련 명령

docker container create

docker container run

docker container attach

docker container exec

 

● 컨테이너 정보 확인 명령

docker container ps

docker container stats

docker container inspect

docker container top

docker container port

docker container diff

docker container logs

docker container ls

 

● 컨테이너 관리 명령

docker container stop

docker container start

docker container kill

docker container restart

docker container prune

docker container pause

docker container unpause

docker container rename

docker container cp

 

● 컨테이너/이미지 백업 명령

docker container export

docker container import

docker image save

docker image load

 

● 네트워크 명령

docker network ls

docker network create

docker network connect

docker network disconnect

docker networkinspect

docker network rm

brctl show

 

● 볼륨 명령 
docker volume create 
docker volume ls 
docker volume rm 
docker volume prune 
docker volume inspect


 

 

 

docker container ps

설명

- 실행 상태의 컨테이너 상태 보기

- CONTAINER ID, NAMES 둘다 컨테이너를 식별할 수 있는 고유한 이름이다.

 

옵션

-a : stop된 컨테이너까지 모두 보기

 

예시

# docker container ps -a (stop된것까지 다 나옴)
# docker container ps -a -f name=cadvisor (cadvisor만 표시해줌)
# docker container ps -a --format "{{ .ID }}: {{ .Status }}" (id랑 status 컬럼만 보고싶은경우)
# docker container ps -a -f exited=0 (status가 종료코드가 0인애들만)
# docker ps -a --format "table {{ .ID}}\t{{ .Status }}" (docker 커맨드를 표 형식으로 실행)

 

docker container inspect

설명
- 컨테이너 상세 정보 확인
-  docker container inspect 컨테이너명
- docker image inspect 와 동일한 json 형태이다.
- 명령어에서 container 를 빼도 된다.

옵션
--format : 지정된 형식만 보여줌

예시

# 참고 : 표시 포맷 리스트

.ID 컨테이너 아이디 
.Image 이미지 아이디 
.Command 실행 명령 
.CreatedAt 컨테이너가 작성된 시간 
.RunningFor 컨테이너의 가동 시간 
.Ports 공개 포트 
.Status 컨테이너 상태 
.Size 컨테이너 디스크 크기 
.Names 컨테이너명 
.Mounts 볼륨 마운트 
.Networks  네트워크명 

 

docker container top

설명
- 가동중인 컨테이너에서 프로세스를 확인.

옵션
- 미확인

예시

 

docker container port

설명
- 가동중인 컨테이너에서 실행되고 있는 프로세스가 전송되는 포트 확인
- docker container port 컨테이너명

옵션
- 미확인

예시

이것의 의미는, 컨테이너의 80번 포트가 호스트 80번 포트로 전송된다 라는 의미임.


docker container diff

설명
- docker container diff 컨테이너명
- 컨테이너 안에서 어떤 조작을 하여 컨테이너가 이미지로부터 생성되었을때와 달라진 점 (차분)을 확인
- 컨테이너 안에서 뭔가 작업을 했는데, 이 내역을 최초 컨테이너가 생성된 시점과 비교하여 달라진 점(변경된 점, 한마디로 무슨 변경을 가했는지)을 출력해준다.
- 변경속성 : A = 추가된 파일 C = 변경된 파일 D = 삭제된 파일

옵션
- 미확인

예시

1. centos를 컨테이너로 실행한다.

- 아래 보면 프롬프트가 f879669147로 바뀐 것을 알 수 있다. centos 컨테이너로 진입한 것.

2. 컨테이너 안에서 여러가지 작업을 한다.

3. 컨테이너 밖으로 나간 후, 변경점을 확인한다.

 

docker container logs

설명
- docker container logs 컨테이너명
- 컨테이너가 백그라운드에서 실행되고 있는 내용들을 볼 수 있음.

옵션
-t : 타임스탬프를 표시해준다.
-f : 실시간으로 관측 가능

예시

1. 자신에게 핑을 날리는 컨테이너를 만들어 본다.

2. docker logs로 확인한다.

- 실행되는 내용들을 보여주고 프롬프트가 떨어진다.

3. 만약 실제로 진행사항을 보고싶으면, attach로 연결한다.

- 계속 ping을 치고 있다 ㅎ


docker container ls

설명
- 가동중인 컨테이너 목록을 표시한다. docker ps와 차이점이 없는 듯 하다. 
- 모든 컨테이너는 컨테이너ID를 가진다.

옵션

--all, -a : 실행중, 정지중 모두 포함하여 모든 컨테이너 표시
--filter, -f : 표시할 컨테이너 필터링 

--last, -n : 마지막으로 실행된 N건의 컨테이너만 표시
--latest, -l : 마지막으로 실행된 컨테이너만 표시
--no-trunc : 정보를 생략하지 않고 표시
--quiet, -q : 컨테이너 아이디만 표시
--size, -s : 파일 크기 표시
--format : 표시 포맷 지정 

 

예시

docker container ls -a -f name=test1 (필터링)
docker container ls -a -f exited=0 (필터링)
docker container ls -a --format "table {{.Names}}\t{{.Status}}\t{{.Mounts}}"  (표로 보기 출력 형식 지정)
docker container ls -a --format "{{.Names}}: {{.Status}}" (출력 형식 지정)

< 도커 기본 명령어 차례 >

● 시스템 명령

docker version

docker system info

docker system df

docker system prune

docker login

locker logout

 

● 이미지 관리 명령

docker pull

docker image ls

docker images

docker image inspect

docker image tag

docker push

docker search

docker image rm

docker image prune

docker container commit

 

● 컨테이너 실행 및 조작 관련 명령

docker container create

docker container run

docker container attach

docker container exec

 

● 컨테이너 정보 확인 명령

docker container ps

docker container stats

docker container inspect

docker container top

docker container port

docker container diff

docker container logs

docker container ls

 

● 컨테이너 관리 명령

docker container stop

docker container start

docker container kill

docker container restart

docker container prune

docker container pause

docker container unpause

docker container rename

docker container cp

 

● 컨테이너/이미지 백업 명령

docker container export

docker container import

docker image save

docker image load

 

● 네트워크 명령

docker network ls

docker network create

docker network connect

docker network disconnect

docker networkinspect

docker network rm

brctl show

 

● 볼륨 명령 
docker volume create 
docker volume ls 
docker volume rm 
docker volume prune 
docker volume inspect


 

 

 

docker container create

설명
- 이미지를 기반으로 컨테이너를 만든다. 만들기만하고 시작하지는 않는다.
- 이미지의 실체는, 도커에서 서버 기능을 작동시키기 위해 필요한 디렉토리 및 파일들이며, 구체적으로는 /etc /bin 같은 디렉토리, 파일들이다.
- 컨테이너를 생성하면, 이미지에 포함된 리눅스 디렉토리와 파일들의 스냅샷을 만든다.
- 이 스냅샷으로 컨테이너를 생성한다. 스냅샷이라고 표현했는데, 그냥 복사했다고 봐도 무방하다.
- run이 create를 대체하기 때문에 딱히 혼자 쓰이지 않는다.

- 컨테이너 생성 후 나오는 긴 문자열은 컨테이너 아이디이다. 도커 컨테이너를 고유하게 식별하기 위해 사용된다. 예시 : 9f5add6253a20d5a2a807502060dd8c4cbb86a59a5f52e6857ebac58e8634be7

 


옵션
a, --attach=[STDIN | STDOUT | STDERR] : 표준입력, 표준출력, 표준에러출력을 연결
--cidfile="파일명" : 컨테이너 아이디를 파일로 출력

예시

# docker container create nginx

만든 후에, docker container ls 에서, STATUS 부분에 Created 를 확인할 수 있다.

 

docker container attach

설명
- docker container attach 컨테이너명
- 가동중인 컨테이너에 연결한다. /bin/bash로 연결한 것이 아님.
- attach로 연결하면, 기존에 연결된 터미널이 있으면(예를들어 bash로 붙은거라던지, 다른 attach라던지) 똑같이 복제되어 작동한다.
- 연결분리 (종료아님) ctrl+p, ctrl+q 입력. 

- 만약 ctrl+c 를 해버리면, 종료가 되어서 서비스가 down 된다.. 조심!

옵션
- 미확인

예시

- 실행중인 컨테이너에 붙으면, 그 컨테이너의 상태로 빠진다. 

- nginx 컨테이너에 attach 했는데, nginx 만 실행했을 뿐 따로 쉘은 없으므로 프롬프트가 없게 된다.

 

docker container exec

설명
- 가동중인 컨테이너에서 프로세스 또는 명령어 실행. 현재 컨테이너 자체에서 실행중인 프로세스와는 별개다.
- docker container exec 옵션 컨테이너명 실행할명령 인수
- 컨테이너의 터미널로 들어가는 방법으로 자주 사용된다. /bin/bash 사용. 또한 attach가 안될때도 사용한다.
- exec 명령은 실행중인 컨테이너에서만 가능하다.

옵션
--detach, -d : 명령을 백그라운드에서 실행
--interactive, -i : 컨테이너의 표준 입력을 연다.
--tty, -t : pseudo-TTY 를 할당한다.
--user, -u : 사용자명을 지정한다.

예시
- 배쉬 쉘 실행 : docker container exec -it webserver /bin/bash
- 명령 직접 실행하기 : docker container exec -it webserver /bin/echo "Hello world"

- 다른 컨테이너에 ping 날리기 : docker exec -t web01 ping 172.17.0.6 

docker container run

- 도커의 "시작과 끝" 인 명령어. 너무 방대한 내용이므로 다른 섹션에서 다룰 예정

- 대부분 도커 컨테이너 실행할 때는 이 명령어를 사용한다.

< 도커 기본 명령어 차례 >

● 시스템 명령

docker version

docker system info

docker system df

docker system prune

docker login

locker logout

 

● 이미지 관리 명령

docker pull

docker image ls

docker images

docker image inspect

docker image tag

docker push

docker search

docker image rm

docker image prune

docker container commit

 

● 컨테이너 실행 및 조작 관련 명령

docker container create

docker container run

docker container attach

docker container exec

 

● 컨테이너 정보 확인 명령

docker container ps

docker container stats

docker container inspect

docker container top

docker container port

docker container diff

docker container logs

docker container ls

 

● 컨테이너 관리 명령

docker container stop

docker container start

docker container kill

docker container restart

docker container prune

docker container pause

docker container unpause

docker container rename

docker container cp

 

● 컨테이너/이미지 백업 명령

docker container export

docker container import

docker image save

docker image load

 

● 네트워크 명령

docker network ls

docker network create

docker network connect

docker network disconnect

docker networkinspect

docker network rm

brctl show

 

● 볼륨 명령 
docker volume create 
docker volume ls 
docker volume rm 
docker volume prune 
docker volume inspect

 


 

 

 

docker pull

설명

- docker pull [옵션] 이미지명[:태그명]

- 기본적으로 hub.docker.com 에서 이미지를 다운받는다.

- 레드햇이나 다른 업체들도 허브가 있고, 직접 private하게 구축할수도 있다.

- 아무 태그도 안쓰면, :latest 태그를 쓴 것처럼 자동으로 최신을 받는다.

- 다운받을때 여러개가 나오면서 pull complete라고 나오는데, 유니온 파일시스템이라 레이어별로 받기 때문임.

- 이미지명 대신, 주소를 넣을 수 있음. 주소는 http:// 을 제외한다.

 

옵션

-a : 해당 이미지의 모든 태그를 가져온다.

 

예시

docker pull 옵션 이미지명:태그명
docker pull -a centos (entos의 모든 태그의 이미지 다운로드)
docker pull 192.168.56.100:5000/mybuild:1.0 (해당 아이피를 가진 프라이빗 레지스트리에서 mybuild 1.0을 받음)
docker pull registry.asia.tesorflow/tensorflow (이런 url을 지정해서 접속. 단, https:// 이런거 제외)
docker pull utyk/goodi:mysql_v2 (도커허브에서 특정 유저의 이미지를 받을 때. "유저명/이미지명:태그" 형식)

 

docker image ls

설명

- docker images 와 동일하다.

- docker image ls [옵션] [레포지토리명]

 

옵션

--all, -a : 모든 이미지 표시  --all=false 이런식

--digests : 다이제스트 값 표시 여부

--digests=false : 이미지고유식별자를 출력하지 않음. 너무 길기 때문에 필요한 경우에만 보면 된다.

--no-trunc : 결과를 모두 표시   --no-trunc=false

--quiet, -q : 도커 이미지 ID만 표시  --quiet=false

 

예시

- REPOSITORY : 이미지의 이름

- IMAGE ID : 는 고유한 이미지 ID이다. 랜덤문자열이다.

- CREATED : 해당 이미지가 "생성된" 날짜. 다운받은 날짜가 아닌것으로 보임.

- DIGEST : --digests 옵션을 넣으면 보이고, 이것은 레지스트리에 업로드한 이미지를 고유하게 식별하기 위해 sha로 암호화된 식별자

 

docker image inspect

 

설명

- 이미지에 대한 상세 정보를 확인한다.

- docker image inspect 이미지명

- json 구조의 데이터 구조를 가지며, 이 구조로 정보를 보여준다.  (json : JavaScript Object Notation ; 텍스트 기반 데이터 포맷)

- 컨테이너의 모든 정보 확인 가능 (빌드옵션, 네트워크정보, 유니온파일시스템, 이름, ID 등 기타 모든 자세한 정보들)

- json에서 특정 값을 확인할때는 아래 옵션처럼 --format 옵션을 사용하여 json 형식 데이터의 계층 구조를 지정한다.

- 이 구조는 레벨 구조이다. Id, Parent, DockerVersion 같은 것들이며, 그 하위는 .으로 구분하여 표현한다. 예시 참고

 

옵션

--format : 지정된 형식만 보여줌

 

예시

- ContainerConfig 아래의 Image를 출력 : docker image inspect --format="{{ .ContainerConfig.Image }}" mysql

- OS 상세정보확인 docker inspect --format="{{.Os}}" centos:7

- CPU 아키텍쳐 정보 docker inspect --format="{{.Architecture}}" centos:7

- IMAGE 상세정보 docker inspect --format="{{.ContainerConfig.Image}}" centos:7

 

- 아래 예시는 전체를 보여주며, 각 항목이 계층화되어 있다.

- ID, RepoTags 는 같은 계층이고, RepoTags 밑에 nginx:latest는 그 아래 계층이다.

내용이 아주 길다. 너무 길어서 중략함.

Id : 이미지의 ID

Created : 작성일

DockerVersion : 도커 버전

Architecture : cpu 아키텍쳐

volume : 호스트os와 연동된 path

workingdir : 홈디렉토리같은곳. 예를들어 아파치면 아파치 설정파일이 있는곳을 여기로 잡는다.

유니온파일시스템 mergedir, upperdir, workdir

그 외에 여러가지 정보가 있다.

 

docker image tag

설명

- 명령어로서의 tag는 현재 존재하는 image에 대해 새로운 이름과 태그를 추가하는 것이다.

- 이미지를 새로 만드는 것이 아니므로, 원본과 tag본은 image ID가 동일하다. 말그대로 알리아스만 추가한 것.

- 태그는 일반적으로 식별하기 쉬운 버전명을 붙인다.

- 내가 작성한 이미지를 도커 허브 등 레포지토리에 올리는(push) 경우, 규칙에 맞춰서 이미지에 사용자명을 만들어야 한다.

- 해당 이름이 도커 허브 레포지토리 안의 경로가 되기 때문에, push 하는 경우 업로드하려는 위치에 맞춰 이미지에 tag 명령을 통해 이름을 설정한다.

- 규칙 : 도커허브사용자명/이미지명:[태그명]

- 도커허브 등의 레포지토리에서, 사용자명/이미지명 의 형식을 따르지 않는 그냥 centos, apache 이런것들은 도커 오피셜 이미지이다. (사용자명이 없는 이미지)

 

옵션

- 미확인

 

예시

- docker image tag 이미지명:태그 바꿀이미지명:태그 

- 여기서 / 는 오해하지 말아야 할 것이, "바꿀이미지명"에 포함되는 것임.

- /를 쓰는 이유는 도커허브에 올리는 형식을 맞추기 위해서이다.

- 예를들어 어떤 이미지가 있는데, 그 이미지에 대해 사용자명이 loaden이고 컨테이너명이 nginx-test이고 태그버전정보가 latest이라면, 아래처럼 사용한다.

docker image tag nginx:latest loaden/nginx-test:latest

- 아래처럼 원래 있는 nginx의 IMAGE ID와 utyk/nginx-test의 IMAGE ID가 동일하다.

 

docker push

설명
- docker push 사용자명/이미지명[:태그]
- 내가 만든 이미지를 도커 허브 등의 레포지토리에 업로드한다.
- push를 하려면, 내가 올리려는 이미지가 어디로 올려야 할지 명시하기 위해서는 이미지의 이름을 정확히 지정해야 한다. docker image tag 명령 참고
- 즉 예를 들어서, 내 계정에 특정 이미지를 올리려고 한다면, 아래와 같이 내계정명/이미지명 을 tag로 만들어야 한다.
- 도커허브에는 내계정/레포지토리:태그  구조이고, push로 올릴때는 내계정/이미지명:태그 형식으로 올린다.
- 도커허브에서 미리 레포지토리를 생성해두고 push로 올려도 되고, 그냥 push 로 올려도 도커허브에서 레포지토리가 자동으로 생성된다.

옵션
- 미확인

예시

업로드 후, docker hub에서 아래와 같이 확인할 수 있다.

 

docker search

설명
- 기본적으로 도커허브에 공개된 이미지를 검색한다.
- docker search [옵션] 키워드
- 도커 허브에 공개된 이미지가 모두 안전하지 않으므로, 도커 이미지를 사용할때는 안전을 위해 공식 이미지 또는 dockerfile이 제대로 공개된것을 선택하여 확인해야 한다.

옵션
--no-trunc : 결과를 모두 표시
--no-trunc=false : 모든 결과 표시
--linit : n 건의 검색 결과를 표시
--filter=stars=n : 즐겨찾기(별표)의 수 n개 이상만 검색함 (docker search --filter=stars=10 nginx)
--automated=false : automated build만 표시

예시

- AUTOMATED : github 등의 외부 소스 저장소에 있는 소스를 도커허브에서 자동으로 빌드해서 만든것인지 여부를 알려줌.

 

docker image rm

설명
- 도커 이미지를 삭제 (docker rm은 컨테이너 삭제이다)
- docker image rm [옵션] 이미지명 [이미지명 ...]
- 해당 이미지로 만들어놓은 컨테이너가 존재한다면, 이미지는 삭제되지 않음. (컨테이너가 살아있든 중단되었든 , docker ps -a 로 보이는 경우)
- 이름(REPOSITORY항목) 또는 Image ID를 명시한다.

옵션
--force, -f : 이미지를 강제로 삭제. 컨테이너도 죽는다. 강제는 별로 좋지않으므로 비추함.
--no-prune=false : 태그가 없는 부모 이미지를 삭제하지 않음

예시

# docker image rm utyk/nginx-test

이미지 전체 삭제 : docker rmi $(docker images -q)
 

 

 

 

 

docker container commit

설명
- docker container commit 옵션 컨테이너명 이미지명:태그명
- 이미지에서 컨테이너를 만들지만, 컨테이너에서 이미지를 만들 수도 있다.
- 컨테이너로부터 이미지를 작성한다.
- 내가 이미지를 가져와서 여러가지 수정 후, commit 하면 내가 수정한 정보를 그대로 가진 이미지를 생성할 수 있다.

옵션
--author, -a : 작성자를 지정함. 예를들어, "Choe Sung Kyu <utyk@naver.com>"
--message, -m : 메시지를 작성
--change, -c : 커밋 시 Dockerfile 명령을 지정한다.
--pause, -p : 컨테이너를 일시 정지하고 커밋한다.

예시
현재 실행된 컨테이너 상태. 이 컨테이너를 이미지로 만든다.

컨테이너로 이미지 생성

결과 확인

< 도커 기본 명령어 차례 >

● 시스템 명령

docker version

docker system info

docker system df

docker system prune

docker login

locker logout

 

이미지 관리 명령

docker pull

docker image ls

docker images

docker image inspect

docker image tag

docker push

docker search

docker image rm

docker image prune

docker container commit

 

 컨테이너 실행 및 조작 관련 명령

docker container create

docker container run

docker container attach

docker container exec

 

● 컨테이너 정보 확인 명령

docker container ps

docker container stats

docker container inspect

docker container top

docker container port

docker container diff

docker container logs

docker container ls

 

● 컨테이너 관리 명령

docker container stop

docker container start

docker container kill

docker container restart

docker container prune

docker container pause

docker container unpause

docker container rename

docker container cp

 

● 컨테이너/이미지 백업 명령

docker container export

docker container import

docker image save

docker image load

 

● 네트워크 명령

docker network ls

docker network create

docker network connect

docker network disconnect

docker networkinspect

docker network rm

brctl show

 

● 볼륨 명령 
docker volume create 
docker volume ls 
docker volume rm 
docker volume prune 
docker volume inspect

 


 

 

 

docker version

설명

- 설치한 도커의 버전 정보 확인

- root로 실행해야 함

- 도커 데몬이 내려간 경우, Server: Docker Engine 부분이 제대로 나오지 않음.

- Client 엔진은 도커 명령어를 쓰는 환경 같은 것이며, Server가 실제 도커 데몬이다.

- Version: 19.03.5 은 연월일과 동일하다. (19년 3월 5일)

- Go version : go라는 언어로 도커를 만들었음.

 

옵션

- 미확인

 

예시

 

docker system info

설명

- 도커 실행환경 정보 확인

- 아래에 warning 등의 메시지가 나올 수 있는데, 확인해서 해결해 줘야 함.

 

옵션

- 미확인

 

예시

Containers: 0 - 컨테이너 수
Images: 1 - 이미지 수
Server Version: 19.03.5 - 도커 버전
Storage Driver: overlay2 - 스토리지 드라이버 종류
Volume: local - 로컬 파일시스템 /루트를 사용한다는 것
Network: bridge host ipvlan macvlan null overlay - 여러종류의 네트워크들
Swarm: inactive - 도커 스웜은 안쓰고 있음
OSType: linux - 운영체제 종류
Architecture: x86_64 - 아키텍쳐
CPUs: 8 - 호스트OS의 코어 수
Total Memory: 7.625GiB - 호스트OS의 메모리 양

 

docker system df

설명

- 도커 디스크 사용 상태 확인

 

옵션

-v : 이미지별, 컨테이너별, 볼륨별 정보 등을 상세히 확인

 

예시

 

docker system prune

설명

- 사용하지 않는 이미지, 컨테이너, 볼륨, 네트워크 등을 일괄 삭제한다.

 

옵션

--all, -a 사용하지 않는 리소스를 모두 삭제
--force, -f 강제적으로 삭제

 

예시

 

docker login

설명

- 도커 허브 레포지토리를 사용하기 위해 로그인이 필요하다.

- docker login [옵션] [서버]

- 옵션을 지정하지 않으면 사용자명과 비밀번호를 물어본다.

- 서버명을 지정하지 않으면 도커 허브에 자동으로 액세스된다.

 

옵션

--password, -p 비밀번호
--username, u 사용자명

 

예시

 

docker logout

설명

- 도커 허브 로그인한 것을 로그아웃한다.

- docker logout [옵션] [서버]

- 서버명을 지정하지 않으면 도커 허브에 자동으로 액세스된다.

 

옵션

--password, -p 비밀번호
--username, u 사용자명

 

예시

+ Recent posts