본문 바로가기
메가IT아카데미 국기과정/도커와 쿠버네틱스

[1-6] Docker 컨테이너 관리

by 한님폐하 2022. 9. 13.

1. 컨테이너 생성

 - 이미지로 부터 컨테이너를 생성한다. 
 - 이때, 이미지는 Docker에서 서버 기능을 구동하기 위해 필요한 디렉토리 및 파일들의 집합이다. (Ex : /etc, /bin....)
 - 'docker container create' 명령어를 이용하여 이미지에 포함될 리눅스의 디렉토리 및 파일들을 스냅샷 한다.
 - 단, 'docker container create' 명령어는 컨테이너를 생성할 뿐 시작하지는 않는다.


[참고] 스냅샷

 - 스토리지 안에 존재하는 디렉토리와 파일들을 특정 타이밍에 포인트 정보를 추출한것이다.


 1) 명령어 형식

docker container create [옵션] 이미지 [명령어] [인자값...]




 2) 명령어 사용 예제

docker container create --name webserver nginx




 3) 컨테이너 생성

docker container create --name webserver nginx

  
 - 상태를 확인하면 'Created' 상태인 것을 확인할 수 있다.




2. 컨테이너 생성 및 바로 시작

 1) 명령어 형식

docker container run [옵션] 이미지 [명령어] [인자값...]




 2) 옵션

-a, --attach list 표준입력(STDIN), 표준출력(STDOUT), 표준 오류(STDERR)에 attach 한다.
-d, --detach 컨테이너를 백그라운드로 실행하고 컨테이너 ID를 출력한다.
-i, --interactive 키보드 입력을 컨테이너 표준 입력(STDIN)에 연결한다. 즉, 키보드 입력을 컨테이너 쉘로 보낸다.
-t, --tty 단말기 디바이스(pseudo-TTY)를 사용한다. -i 옵션과 같이 사용하면 터미널을 이용하여 대화형 조작이 가능하다.
--rm  컨테이너가 종료하면 종료 상태의 컨테이너를 자동 삭제한다.



 


 3) 명령어와 옵션 사용 예제

 - Interactive Mode

docker container run --name "test1" centos /bin/cal
docker container run -it --name "test1" centos /bin/bash
docker container run -it --rm --name "test2" centos /bin/bash



 - Non-interactive Mode

docker container run -d --name "test3" centos



 - Background Mode

docker container run --rm -d --name "test4" centos /bin/ping localhost



 4) 컨테이너 생성 및 바로 시작

 - 다음 명령을 실행하면 컨테이너를 구동하고 '/bin/cal' 명령어를 수행한다. 그리고 컨테이너는 stop 상태로 전환한다.

docker container run --name "test1" centos /bin/cal



 - '/bin/bash' 명령을 추가하여 컨테이너를 구동할 수 있다. 

docker container run -it --name test3 centos /bin/bash


[참고] centos 이미지는 CMD 기본값이 '/bin/bash'이다.

docker image inspect centos:latest | grep CMD
docker image inspect --format="{{ .ContainerConfig.Cmd }}" centos


 


3. 컨테이너 삭제

 1) 컨테이너 삭제

 - 'docker container rm' 명령어를 이용하여 컨테이너를 삭제할 수 있다.
 - 삭제할 경우 인자값으로는 'CONTAINER ID', ' IMAGE', 'NAMES'를 이용한다.



# docker container rm 947249bdb742 36554120d575 6bcb2f4e24f3 2181d3a8f933
947249bdb742
36554120d575
6bcb2f4e24f3
2181d3a8f933


# docker container ls -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES


 2) 'rm' 옵션을 이용한 컨테이너 삭제

 - 'rm' 옵션을 이용하여 컨테이너 생성 및 명령이 실행되고 바로 컨테이너를 삭제한다.

docker container run --rm --name "test4" centos /bin/cal
docker container rm -f $(docker container ls -aq)

 



[참고] 컨테이너를 강제로 전체 삭제할 경우, 다음과 같이 alias를 추가하여 사용하면 효율적이다.

vi .bashrc
alias crm='docker container rm -f $(docker container ls -aq)'
source .bashrc





4. 컨테이너 백그라운드 실행

 - 'd' 옵션을 이용하여 컨테이너를 백그라운드로 실행할 수 있다.

docker container run --rm -d centos /bin/ping localhost
docker container logs -t 2f648e99ac3f




5. 컨테이너 관리 명령어 정리

 1) 컨테이너 시작(docker container start)

 - 생성(Created) 및 정지(Stop) 중인 컨테이너를 시작(Start)할 때 사용한다. 
 - 컨테이너에 할당된 컨테이너 식별자를 지정하여 컨테이너를 시작한다.


 - 명령 형식

docker container start [옵션] 컨테이너 [컨테이너...]




 - 명령 사용 예제

docker container start 컨테이너




 2) 컨테이너 정지(docker container stop)

 - 실행 중인 컨테이너를 정지시킬 때 사용한다. 
 - 컨테이너에 할당된 컨테이너 식별자를 지정하여 컨테이너를 정지한다. 
 - 또한, 컨테이너를 삭제할 때 'docker container stop' 명령어를 사용하여 실행 중인 컨테이너를 정지시킬 필요가 있다. 
 - 컨테이너를 재시작하고 싶을 때는 'docker container restart' 명령어를 사용한다.


 - 명령 형식

docker container stop [옵션] 컨테이너 [컨테이너...]
docker container restart [옵션] 컨테이너 [컨테이너...]



 - 명령 사용 예제

docker container stop 컨테이너
docker container restart 컨테이너




 3) 컨테이너 삭제(docker container rm)

 - 컨테이너를 삭제할 때 사용한다. 'docker container run' 명령어를 사용하여 정지 중인 컨테이너 프로세스를 삭제한다.
 - 그 외에도 컨테이너의 상태를 확인 하기 위한 'docker container ps' 명령어나 일시정지 하는 'docker container pause' 명령어가 있다.


 - 명령 형식

docker container rm [옵션] 컨테이너 [컨테이너...]



 - 명령 사용 예제

docker container rm 컨테이너
docker container rm -f 컨테이너

 


컨테이너 시작/재시작/중지

docker container create --name testweb nginx
docker container start testweb
docker container restart testweb
docker container stop testweb	#'docker stop' 명령은 컨테이너를 정상적으로 종료한다.
docker container kill testweb	# 'docker kill' 명령은 컨테이너를 강제로 종료한다. 그렇기 때문에 Exited 코드 번호가 '137'으로 출력되는데 이는 128+9(리눅스 SIGKILL 시그널)을 의미한다.
docker kill -s 9 testweb
docker ps -a




6. 컨테이너 및 이미지 일괄 삭제 명령어 정리

 1) 모든 이미지를 삭제시

docker container rm -f $(docker container ls -aq)




 2) 사용하지 않는 컨테이너 삭제시

docker container prune -a -f



 3) 컨테이너를 지정하여 삭제

docker container rm -f CONTAINER




 4) 모든 이미지 삭제

docker image rm -f $(docker image ls -aq)




 5) 사용하지 않는 컨테이너 이미지 삭제시

docker image prune -a -f



 6) 컨테이너 이미지를 지정하여 삭제

docker image rm -f IMAGE




 7) 불필요한 이미지/컨테이너 알괄 삭제(docker system prune)

docker system prune -a -f




[참고] 모든 이미지 삭제 alias 설정 추가

vi .bashrc
alias irm='docker image rm -f $(docker image ls -aq)'
source .bashrc

 

'메가IT아카데미 국기과정 > 도커와 쿠버네틱스' 카테고리의 다른 글

[1-7] Docker 볼륨 관리  (0) 2022.09.14
[1-5] Docker 이미지 업로드  (0) 2022.09.13
[1-4] Docker 이미지 관리  (0) 2022.09.13
[1-3] Docker 구동  (0) 2022.09.13
[1-2] Docker 설치  (0) 2022.09.13