일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- docker create
- 이미지 레지스트리
- etc
- 명령어
- 도커
- 자격증
- 리눅스
- RM
- LS
- locate 설치 방법
- 셸
- Ctrl
- 파일
- find
- umask
- mkdir
- 리눅스마스터2급
- lcoate 설치
- Docker
- q!
- container
- 레드햇
- PS
- 이미지
- 컨테이너
- docker logout
- 디스크
- docker logs
- image
- linux
- Today
- Total
Bae's Digital Dialogues
도커[Docker] 컨테이너의 라이프사이클(Lifecycle) 본문
실행 중인 컨테이너의 로그를 확인할 수 있는 명령어이다.
$docker logs(컨테이너명) #컨테이너의 로그 조회
먼저 도커 create 명령을 사용해서 컨테이너를 생성 상태로 만들어보자
$docker create --name tencounter devwikirepo/tencounter #컨테이너를 created 상태로 생성
이미지를 다운 받은것을 확인할 수 있다.
docker ps-a를 통해서 컨테이너를 확인해 보면 이렇게 10 카운터가 create상태라는 것을 확인할 수 있다.
지금 상태에서는 CPU나 메모리를 사용하지 않고 오로지 격리된 공간만 만들어진 상태인것이다.
이제 이 상태에서 start 명령을 사용해서 tencounter를 실행해 보자
$docker start tencounter #컨테이너를 실행
실행하고 나서 docker ps -a로 확인해 보면 이렇게 실행 중인 상태인 up인 것을 확인할 수 있다
그런데 이 tencounter는 10초 뒤에 종료되기 때문에 조금 기다렸다가 다시 docker ps -a 명령으로 확인해 보면 이 컨테이너가 Exited, 종료된 상태인 것을 확인할 수 있다.
이 내부에서 실행 중인 프로세스가 10초 뒤에 종료된 상태인 것이다.
그럼 이제 다시 docker start 명령을 입력해보자
$docker start -i tencounter #컨테이너를 실행 및 출력 연결
-i 옵션을 추가하면 컨테이너를 실행함과 동시에 컨테이너의 출력을 바로 터미널로 연결할 수 있다.
이렇게 컨테이너가 실행되면서 로그가 출력되는 것을 확인할 수 있다.
정확히 10까지만 출력되고 프로세스가 종료되는 걸 확인할 수 있다.
그리고 다시 docker ps -a로 컨테이너를 확인해 보면 역시 컨테이너가 종료된 상태인 것을 확인할 수 있다.
그리고 이제 docker rm 명령으로 tencounter를 삭제해보자
$docker rm tencounter #실습 컨테이너 삭제
정상적으로 삭제가 되었다.
다음으로 hundredcounter로 실습을 해보자
hundredcounter를 실행해 보자
$docker run --name hundredcounter devwikirepo/hundredcounter #실습용 컨테이너 실행
이번에는 -d 옵션을 주지 않았기 때문에 이렇게 1부터 100까지 출력되는 것을 확인할 수 있다.
그러면 이상태에서 docker pause 명령을 사용해 실행 중인 컨테이너를 정지해 보자
$docker pause hundredcounter #실습용 컨테이너 일시정지
이렇게 38까지 출력된 상태에서 1이 정지된 것을 확인할 수 있다. 이 상태에서는 CPU는 사용하지 않지만 상태가 메모리에 그대로 저장되어 있기 때문에 메모리는 사용하는 상태이다.
여기서 다시 docker unpause 명령을 입력해보자
$docker unpause hundredcounter #실습용 컨테이너 재실행
다시 정지된 상태에서 그대로 시작되는 것을 확인할 수 있다.
이제 stop을 활용해 보자
$docker stop hundredcounter #실습용 컨테이너 정지
프로세스의 종료 명령을 전달하고, 이 종료 명령이 실행 중인 프로세스면 정확히 10초 뒤에 종료된다.
이렇게 stop 명령을 실행하고 10초가 지난 뒤에 프로세스가 종료되는 것을 확인할 수 있다.
docker ps -a 명령으로 컨테이너의 목록을 출력하면 이렇게 hundredcounter가 종료된 것을 확인할 수 있다.
이번에는 컨테이너를 재실행해 보자
$docker start -i hundredcounter #실습용 컨테이너 재시작 및 터미널 연결
i 옵션을 주면 실행되면서 터미널로 바로 연결이 되기 때문에 1부터 출력이 된다. stop된 상태에서 start를 다시 했기 때문에 완전히 처음부터 실행되는 것을 확인할 수 있다.
이번에는 다시 아래 셀로 와서 이 컨테이너를 리스타트 해보자
$docker restart hundredcounter #실습용 컨테이너 재시작 및 터미널 연결
이 명령도 마찬가지로 재시작 명령이기 때문에 10초 뒤에 컨테이너가 재시작되는 것을 확인할 수 있다.
재시작이 되었기 때문에 기존에 연결되어 있던 셀은 종료가 된 상태이고, 빠ㅕ나온 상태에서 docker ps 명령을 사용해 보면 이번에는 이 hundredcounter가 Up상태인 것을 확인할 수 있다.
이제 실행 중인 컨테이너의 로그를 확인해 보자
$docker logs hundredcounter #실습용 컨테이너의 로그 확인
이렇게 로그를 출력할 수 있다. 아까 45 상태에서 리스타트가 되었기 때문에 로그가 45까지 남아있는 것을 확인할 수 있다.
그리고 리스타트를 했기 때문에 다시 1부터 출력이 되는 것을 확인할 수 있다.
그런데 이 로그 명령은 일회성 출력이기 때문에 한 번만 출력되고 종료된다.
이 로그를 지속적으로 터미널에 띄우려면 docker logs에 -f 옵션을 추가해서 로그를 계속적으로 출력할 수 있다.
$docker logs -f hundredcounter #실습용 컨테이너의 로그를 터미널로 연결(실시간 로그 확인)
그러면 이제 컨테이너를 docker rm -f 명령을 사용해서 삭제해보자
$docker rm -f hundredcounter #실습 컨테이너 삭제
삭제가 완료되었다.
'Docker' 카테고리의 다른 글
도커[Docker] 이미지 레지스트리 (0) | 2024.05.27 |
---|---|
도커[Docker] 이미지의 메타데이터(Metadata) (0) | 2024.05.21 |
도커[Docker] 이미지와 컨테이너 (0) | 2024.05.20 |
도커[Docker] 컨테이너 실행 (0) | 2024.05.20 |
도커[Docker] 가상화 기술과 하이퍼바이저 가상화 (0) | 2024.05.14 |