[Docker Basic] 08. Docker 기본 명령어 - 컨테이너 실행 및 조작 관련 명령
< 도커 기본 명령어 차례 >
● 시스템 명령
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
- 도커의 "시작과 끝" 인 명령어. 너무 방대한 내용이므로 다른 섹션에서 다룰 예정
- 대부분 도커 컨테이너 실행할 때는 이 명령어를 사용한다.