Docker Basic

[Docker Basic] 08. Docker 기본 명령어 - 컨테이너 실행 및 조작 관련 명령

Divine Providence 2020. 4. 10. 00:42

< 도커 기본 명령어 차례 >

● 시스템 명령

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

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

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