일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바 io 보조스트림
- filewriter filereader
- 쿠버네티스
- 도커 엔진
- 시작하세요 도커 & 쿠버네티스
- Java IO
- 스레드
- 자바
- 김영한
- Collection
- 쓰레드
- 리스트
- java
- 실전 자바 고급 1편
- 스레드 제어와 생명 주기
- Thread
- Kubernetes
- java network
- container
- 도커
- 동시성
- 인프런
- Docker
- 자료구조
- 알고리즘
- 자바 입출력 스트림
- java socket
- 컨테이너
- LIST
- 멀티 쓰레드
- Today
- Total
쌩로그
[Docker] 시작하세요! 도커 & 쿠버네티스 - 02_도커 엔진 - 도커 컨네이너 로깅 본문
목차
- 포스팅 개요
- 본론
2-1. json-file 로그 사용하기
2-2. syslog 로그
2-3. fluentd 로깅
2-4. 아마존 클라우드워치 로그 - 요약
1. 포스팅 개요
이 포스팅은 위키북스 출판사의 '시작하세요! 도커/쿠버네티스'의 제 2장 도커 엔진에서 도커 컨네이너 로깅
에 대한 부분을 학습하며 기록한 포스팅이다.
참고
윈도우를 사용한다면 커맨드(CMD)보단 WSL 을 사용하자.
또한 학습하다보면 디렉터리를 확인할 수 있다고 하는 부분이 있는데,
윈도우에서는 아무리 찾아도 확인하려는 디렉터리를 찾아볼 수 없는 경우가 있었다.
2. 본론
2-1. json-file 로그 사용하기
컨테이너 내부에서 어떤 일이 일어나는지 아는 것은 디버깅뿐만 아니라 운영 측면에서도 중요하다.
애플리케이션 레벨에서 로그가 기록되도록 개발해 별도의 로깅 서비스를 쓸 수도 있지만 도커는 컨테이너의 표준 출력(StdOut)과 에러(StdErr) 로그를 별도의 메타데이터 파일로 저장하며 이를 확인하는 명령어를 제공한다.
먼저 컨테이너를 생성해 간단한 로그를 남겨 보자.
다음 명령은 mysql 5.7 버전의 컨테이너를 생성하는 명령어다.
$ docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=1234 mysql:5.7
mysql과 같은 애플리케이션을 구동하는 컨테이너는 포그라운드 모드로 실행되므로 -d
옵션을 써 서 백그라운드 모드로 컨테이너를 생성하는 경우가 많다.
따라서 애플리케이션이 잘 구동되는 지 여부를 알 수 없지만 docker logs
명령어를 써서 컨테이너의 표준 출력을 확인함으로써 애플리케이션의 상태를 알 수 있다.
docker logs
명령어는 컨테이너 내부에서 출력을 보여주는 명령어다.
$ docker logs mysql
2025-02-24 22:41:38+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.44-1.el7 started.
2025-02-24 22:41:38+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2025-02-24 22:41:38+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.44-1.el7 started.
2025-02-24 22:41:39+00:00 [Note] [Entrypoint]: Initializing database files
2025-02-24T22:41:39.054572Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
이번에는 다른 방법으로 컨테이너를 생성해보자.
동일한 mysql 컨테이너를 생성하되, -e
옵션을 제외한다.
$ docker run -d --name no_passwd_mysql mysql:5.7
...
위 명령어를 실행한 뒤 docker ps
명령어로 컨테이너의 목록을 확인하면 no_passwd_mysql
컨테 이너는 생성됐으나 실행되지 않았다.docker start
명령어로 다시 시작해도 컨테이너는 시작되지 않는다.
$ docker ps --format "table {{.ID}}\t{{.Status}}\t{{.Ports}}\t{{.Names}}"
CONTAINER ID STATUS PORTS NAMES
dbc4594574e4 Up 3 minutes 3306/tcp, 33060/tcp mysql
$ docker start no_passwd_mysql
no_passwd_mysql
$ docker ps --format "table {{.ID}}\t{{.Status}}\t{{.Ports}}\t{{.Names}}"
CONTAINER ID STATUS PORTS NAMES
dbc4594574e4 Up 4 minutes 3306/tcp, 33060/tcp mysql
이럴 때 docker logs
명령어를 사용하면 애플리케이션에 무슨 문제가 있는지 확인할 수 있다.
위의 경우는 mysql 실행에 필요한 환경변수를 지정하지 않아 컨테이너가 시작되지 않은 것이다.
이처럼 컨테이너가 정상적으로 실행 및 동작하지 않고 docker attach
명령어도 사용하지 못하는 개발 환경에서 docker logs
명령어를 쓰면 간단하고 빠르게 에러를 확인할 수 있다.
$ docker logs no_passwd_mysql
2025-02-24 22:43:59+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.44-1.el7 started.
2025-02-24 22:43:59+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2025-02-24 22:43:59+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.44-1.el7 started.
2025-02-24 22:43:59+00:00 [ERROR] [Entrypoint]: Database is uninitialized and password option is not specified
You need to specify one of the following as an environment variable:
- MYSQL_ROOT_PASSWORD
- MYSQL_ALLOW_EMPTY_PASSWORD
- MYSQL_RANDOM_ROOT_PASSWORD
2025-02-24 22:45:35+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.44-1.el7 started.
2025-02-24 22:45:36+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2025-02-24 22:45:36+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.44-1.el7 started.
2025-02-24 22:45:36+00:00 [ERROR] [Entrypoint]: Database is uninitialized and password option is not specified
You need to specify one of the following as an environment variable:
- MYSQL_ROOT_PASSWORD
- MYSQL_ALLOW_EMPTY_PASSWORD
- MYSQL_RANDOM_ROOT_PASSWORD
컨테이너의 로그가 너무 많아 읽기 힘들다면 --tail
옵션을 써서 마지막 로그 줄부터 출력할 줄의 수를 설정할 수 있다.
아래 명령어는 컨테이너의 로그 중 마지막 2줄만 출력한다.
$ docker logs --tail 2 mysql
2025-02-24T22:41:48.401973Z 0 [Note] mysqld: ready for connections.
Version: '5.7.44' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server (GPL)
--since
옵션에 유닉스 시간을 입력해 특정 시간 이후의 로그를 확인할 수 있으며, -t
옵션으로 타임스탬프를 표시할 수도 있다.
컨테이너에서 실시간으로 출력되는 내용을 확인하려면 -f
옵션을 써서 로그를 스트림으로 확인할 수도 있다.
특히 -f
옵션은 애플리케이션을 개발할 때 유용하다.
$ docker logs --since 1474765979 mysql
2025-02-24 22:41:38+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.44-1.el7 started.
2025-02-24 22:41:38+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
2025-02-24 22:41:38+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.44-1.el7 started.
2025-02-24 22:41:39+00:00 [Note] [Entrypoint]: Initializing database files
2025-02-24T22:41:39.054572Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
$ docker logs -f -t mysql
...
docker logs
명령어는 run
명령어에서 -i -t
옵션을 설정해 docker attach
명령어를 사용할 수 있는 컨테이너에도 쓸 수 있으며, 컨테이너 내부에서 bash 셸 등을 입출력한 내용을 확인할 수 있다.
$ docker run -i -t --name logstest ubuntu:14.04
root@76546e132b13:/# echo test!
test!
$ docker logs logstest
root@76546e132b13:/# echo test!
test!
기본적으로 위와 같은 컨테이너 로그는 JSON 형태로 도커 내부에 저장된다.
이 파일은 다음 경로에 컨테이너의 ID로 시작하는 파일명으로 저장된다.
윈도우는 지나치자.
아래의 log 파일의 내용을 cat
, vi
편집기 등으로 확인하면 logs
명령으로 정제되지 않은 JSON 데이터를 볼 수 있다.
$ cat /var/lib/docker/containers/${CONTAINER_ID}/${CONTAINER_ID}-json.log
윈도우는 다른 경로에 있다.

docker ps
를 하면 아래와 같이 logstest의 컨테이너_ID가 나온다.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
85594f026763 ubuntu:14.04 "/bin/bash" 22 minutes ago Up 22 minutes logstest
그래서 찾아가보면 위와 같이 있다.
계속 보던 거 보자.
그러나 컨테이너 내부의 출력이 너무 많은 상태로 방치하면 json 파일의 크기가 계속해서 커질 수 있고, 결국 호스트의 남은 저장 공간을 전부 사용할 수도 있다.
이러한 상황을 방지하기 위해서 --log-opt
옵션으로 컨테이너 json 로그 파일의 최대 크기를 지정할 수 있다.max-size
는 로그 파일의 최대 크기, max-file
은 로그 파일의 개수를 의미한다.
$ docker run -it --log-opt max-size=10k --log-opt max-file=3 --name log-test ubuntu:14.04
어떠한 설정도 하지 않았다면 도커는 위와 같이 컨테이너 로그를 JSON 파일로 저장하지만 그 밖에도 각종 로깅 드라이버를 사용하게 설정해서 컨테이너 로그를 수집할 수 있다.
사용 가능한 드라이버의 대표적인 예로는 syslog
, journald
, fluentd
, awslogs
등이 있으며 애플리케이션의 특징에 적합한 로깅 드라이버를 선택한다.
참고
로깅 드라이버는 기본적으로 json-file
로 설정되지만 도커 데몬 시작 옵션에서 --log-driver
옵션을 써서 기본적으로 사용할 로깅 드라이버를 변경할 수 있다.
위에서 설명한 max-size
와 같은 -log-opt
옵션 또한 도커 데몬에 적용함으로써 모든 컨테이너에 일괄적으로 사용할 수 있다.
도커 데몬 시작 옵션을 변경하는 방법은 따로 찾아보자.
D0CKER_0PTS="--log-driver=syslog"
D0CKER_0PTS="--log-opt max-size=10k --log-opt max-file=3"
2-2. syslog 로그
컨테이너의 로그는 JSON뿐 아니라 syslog로 보내 저장하도록 설정할 수 있다.
- syslog는 유닉스 계열 운영체제에서 로그를 수집하는 오래된 표준 중 하나로, 커널, 보안 등 시스템과 관련된 로그, 애플리케이션의 로그 등 다양한 종류의 로그를 수집해 저장한다.
- 대부분의 유닉스 계열 운영 체제에서는 syslog를 사용하는 인터페이스가 동일하기 때문에 체계적으로 로그를 수집하고 분석할 수 있다는 장점이 있다.
아래 명령어를 입력해 syslog에 로그를 저장하는 컨테이너를 생성한다.
컨테이너의 커맨드가 echo syslogtest
로 설정되기 때문에 syslogtest
라는 문구를 출력하고 컨테이너는 종료될 것이다.
$ docker run -d --name syslog_container --log-driver=syslog ubuntu:14.04 echo syslogtest
syslog
로깅 드라이버는 기본적으로 로컬호스트의 syslog에 저장하므로 운영체제 및 배포판에 따라 syslog 파일의 위치를 알아야 이를 확인할 수 있다.
우분투 14.04는 /var/log/syslog, CentOS와 RHEL은 /var/log/messages 파일에서,
우분투 16.04와 CoreOS는 journaled -u docker.service 명령어로 확인할 수 있다.
다음은 우분투에서 syslog가 기록된 예시다.
$ tail /var/log/syslog
...
2025-03-03T10:42:57.642180+09:00 Ubuntu 4845cb5a9502[5690]: syslogtest
....
2025-03-03T10:42:57.727711+09:00 Ubuntu kernel: vethef15f88: renamed from eth0
syslog
를 원격 서버에 설치하면 로그 옵션을 추가해 로그 정보를 원격 서버로 보낼 수 있다.
syslog
를 원격에 저장하는 방법의 하나인 rsyslog
를 써서 중앙 컨테이너로 로그를 저장해보자.
아래의 IP는 이번 예시에서 사용된 서버의 IP이며, syslog
를 사용할 서버와 클라이언트 두 개의 머신을 따로 설정한다.
필자의 환경은 아래와 같다.
서버 호스트: 172.30.1.60(윈도우)
클라이언트 호스트: 172.30.1.40(버추얼 박스 우분투)
서버 호스트에 rsyslog
서비스가 시작하도록 설정된 컨테이너를 구동하고, 클라이언트 호스트에서 컨테이너를 생성해 서버의 rsyslog
컨테이너에 로그를 저장한다.
서버 호스트에서 다음 명령어를 입력해 rsyslog
컨테이너를 생성한다.
$ docker run -i -t -h rsyslog --name rsyslog_server -p 514:514 -p 514:514/udp ubuntu:14.04
컨테이너 내부의 rsyslog.conf
파일을 열어 syslog
서버를 구동시키는 항목의 주석을 해제한 후 변경사항을 저장한다.
root@rsyslog:/# vi /etc/rsyslog.conf
17 # provides UDP syslog reception
18 $ModLoad imudp
19 $UDPServerRun 514
20
21 # provides TCP syslog reception
22 $ModLoad imtcp
23 $InputTCPServerRun 514
다음 명령어를 입력해서 rsyslog 서비스를 재시작한다.
rro@rsyslog:/# service rsyslog restart
참고rsyslog
는 컨테이너가 아닌 우분투, CentOS 등의 호스트에서도 쓸 수 있으며, 위 방법은 우분투를 기준으로 한다.
그러나 컨테이너를 쓰면 호스트가 어떤 운영체제이든 상관없이 rsyslog
를 사용할 수 있다.
이처럼 애플리케이션을 컨테이너로 구현하면 도커 엔진이 설치될 수 있는 운영체제라면 어떤 환경이라도 간단히 배포할 수 있다.
컨테이너를 빠져나온 뒤 클라이언트 호스트에서 아래의 명령어를 입력해 컨테이너를 생성한다.
컨테이너 로그를 기록하기 위해 간단한 echo
명령어를 실행한다.
$ docker run -i -t --log-driver=syslog --log-opt syslog-address=tcp://172.30.1.60:514 --log-opt tag="mytag" ubuntu:14.04
root@915f5a2eb31d:/# echo test
test
root@915f5a2eb31d:/#
--log-opt
는 로깅 드라이버에 추가할 옵션을 뜻하며.syslog-address
에rsyslog
컨테이너에 접근할 수 있는 주소를 입력한다.tag
는 로그 데이터가 기록될 때 함께 저장될 태그이며 로그를 분류하기 위해 사용한다.
다시 서버의 rsyslog
컨테이너로 되돌아와 컨테이너 내부의 syslog
파일을 확인하면 로그가 전송된 것을 알 수 있다.
또한 각기 로그 앞에 mytag
라는 명칭이 추가됐다.
$ tail /var/log/syslog
...
Mar 3 11:12:29 172.17.0.1 mytag[5690]: #033]0;root@915f5a2eb31d: /#007root@915f5a2eb31d:/# echo test#015
Mar 3 11:12:29 172.17.0.1 mytag[5690]: test#015
참고
rsyslog
의 설정 파일을 변경할 때 tcp와 udp의 두 방법 모두 활성화했으므로 syslog
쓸 때 tcp
뿐만 아니 라 udp
로도 쓸 수 있다.
$ docker run -i -t --log-driver=syslog --log-opt syslog-address=udp://172.30.1.60:514 --log-opt tag="mytag" ubuntu:14.04
--log-opt
옵션으로 syslog-facility
를 쓰면 로그가 저장될 파일을 바꿀 수 있다.facility
는 로그를 생성하는 주체에 따라 로그를 다르게 저장하는 것으로, 여러 애플리케이션에서 수집되는 로그를 분류하는 방법이다.
기본적으로 daemon
으로 설정돼 있지만 kern
, user
, mail
등 다른 facility
를 사용할 수 있다.
$ docker run -i -t --log-driver syslog --log-opt syslog-address=tcp://172.30.1.60:514 --log-opt tag="maillog" --log-opt syslog-facility="mail" ubuntu:14.04
facility
옵션을 쓰면 rsyslog
서버 컨테이너에 해당 facility
에 해당하는 새로운 로그 파일이 생성된다.
root@rsyslog:/var/log# ls /var/log
alternatives.log bootstrap.log dmesg faillog kern.log **mail.log** ubuntu-advantage.log wtmp
apt btmp dpkg.log fsck lastlog syslog upstart
rsyslog
는 우분투에서 쓸 수 있는 기본적인 로깅 방법이므로 별도의 UI를 제공하지 않지만 logentries
, LogAnalyzer
등과 같은 로그 분석기와 연동하면 웹 인터페이스를 활용해 편리하게 로그를 확인할 수 있다.
2-3. fluentd 로깅
fhientd
는 각종 로그를 수집하고 저장할 수 있는 기능을 제공하는 오픈소스 도구로서, 도커 엔진의 컨테이너의 로그를 fluentd
를 통해 저장할 수 있도록 플러그인을 공식적으로 제공한다.
fluentd
는 데이터 포맷으로 JSON을 사용하기 때문에 쉽게 사용할 수 있을 뿐만 아니라 수집되는 데이터를 AWS S3, HDFS(Hadoop Distributed File System), MongoDB 등 다양한 저장소에 저장할 수 있다는 장점이 있다.
여기서 살펴볼 예제는 fluentd와 몽고DB(MongoDB)를 연동해 데이터를 저장하는 방법을 보여준다.
특정 호스트에 생성되는 컨테이너는 하나의 fluentd에 접근하고, fluentd는 몽고DB에 데이터를 저장하는 구조다.

위 그림은 fluentd를 통해 로그가 수집되는 흐름을 보여준다.
위 그림대로라면 도커 서버, fluentd 서버, 몽고DB 서버로 구성되므로 서버는 최소 3대가 필요하지만 환경에 맞춰 변경해서 사용하면 될 것이다.
예를 들어 각 서버 호스트에 fluentd를 설치할 수도 있고, 테스트를 위해 몽고DB 서버. fluentd 서버, 도커 서버가 하나의 물리 머신에서 동작하도록 구성할 수도 있다.
여기서 사용되는 서버의 목록은 아래와 같다.
몽고DB와 fluentd는 도커 허브에서 공식 이미지를 내려받을 수 있으므로 설치 과정은 생략한다.
도커 서버: 220.116.11.147
fluentd 서버: 220.116.11.164
몽고DB 서버: 220.116.11.168
몽고DB 서버에서 몽고DB 컨테이너를 생성한다.
물론 호스트의 27017 포트는 개방돼 있어야한다.
$ docker run --name mongoDB -d -p 27017:27017 mongo:4.4
참고로 현재 시점에서 mongoDB가 5가 latest 인데, 혹시나 안 된다면 mongo:4.4
를 해주자
fluentd 서버의 호스트에서 다음과 같은 내용을 fluent.conf 파일로 저장한다.fhient.conf
파일 의 주 내용은 들어오는 로그 데이터를 몽고DB에 전송하고, access
라는 이름의 컬렉션에 로그를 저장하며, 몽고DB 컨테이너의 호스트 주소와 포트를 지정한 것이다.
<match docker.**>
는 로그의 태그가 docker로 시작하면 이를 MongoDB에 전달하는 것을 의미한다.
<source>
@type forward
</source>
<match docker.**>
©type mongo
database nginx
collection access
host 220.116.11.168
port 27017
flush_interval 10s
</match>
참고
이 예제에서는 몽고DB에 사용자와 비밀번호를 통한 인증 작업을 설정하지 않았지만 몽고DB에 인증 정보를 설정했다면 위 내용 중 flush_interval 10s 항목 밑에 user, password를 정의하고 사용자명과 비밀번호를 명시해야 한다.
user alicek106
passoword mypw
fluentd.conf 파일이 저장된 디렉터리에서 다음 명령어를 입력해 fluentd
컨테이너를 생성한다.
위 내용의 fluent.conf 파일을 -v
옵션을 이용해 fluentd 컨테이너에 공유하고 설정 파일로 사용한다.
$ docker run -d --name fluentd -p 24224:24224 -v $(pwd)/fluent.conf:/fluentd/etc/fluent.conf -e FLUENTD_CONF=fluent.conf alicek106/fluentd:mongo
참고
도커 허브의 fluentd 이미지에는 몽고DB에 연결하는 플러그인이 내장돼 있지 않다.alicek106/fluentd:mongo
이미지는 공식 fluentd
이미지에 몽고DB 플러그인을 설치한 것이다.
도커 서버에서 로그를 수집할 컨테이너를 생성한다.
이때 --log-driver를 fluentd로 설정하고 --log-op의 fluentd-address 값에 fluentd
서버 주소를 지정한다.
--log-opt tag를 명시함으로써 로그의 태그를 docker.nginx.webserver
로 지정했지만 fluentd
의 설정 파일 중 <match docker.**>
에 맞으므로 몽고DB에 로그로서 저장된다.
이미지는 어떤 것이든 상관없지만 로그가 기록되는 것을 확실히 알 수 있게 nginx
이미지를 사용해 컨테이너를 생성해보자.
$ docker run -p 80:80 -d --log-driver=fluentd --log-opt fluentd-address=220.116.11.164:24224 --log-opt tag=docker.nginx.webserver nginx
위의 docker run
명령어는 호스트의 80번 포트로 nginx 웹 서버에 접근할 수 있다.
웹 서버에 접근해야 컨테이너 내부에서 접근 로그가 출력되므로 한 번 이상은 웹 서버에 접근해야 한다.
따라서 웹 브라우저 등을 통해 위에서 생성한 nginx 서버에 접근(접속)한 뒤 몽고DB 서버에서 몽고DB 컨테이너에 들어가 데이터를 확인하면 nginx 웹 서버에 대한 접근 기록이 저장된 것을 확인할 수 있다.
$ docker exec -it mongoDB mongo
MongoDB shell version v4.4.29
...
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
nginx 0.000GB
>
> use nginx
switched to db nginx
>
> show collections
access
>
>
> db['access'].find()
{ "_id" : ObjectId("67c538f180aa44000a93baa6"), "source" : "stdout", "log" : "121.160.115.227 - - [03/Mar/2025:05:06:47 +0000] \"GET /favicon.ico HTTP/1.1\" 404 555 \"http://220.116.11.147/\" \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36\" \"-\"", "container_id" : "3e25993be204d9546e89559b023925a33226b260018a6552fd2ee689d9d055c4", "container_name" : "/eager_fermi", "time" : ISODate("2025-03-03T05:06:47Z") }
>
여기서 기억해야 할 것
- 도커 엔진은 fluentd 서버에 컨테이너의 로그를 전송했고,
- 이 로그는 다시 몽고DB 서버로 전송되어 저장됐다는 점이다.
2-4. 아마존 클라우드워치 로그
AWS(Amazon Web Service)에서는 로그 및 이벤트 등을 수집하고 저장해 시각적으로 보여주는 클라우드워치(CloudWatch)를 제공한다.
도커를 AWS EC2에서 사용하고 있다면 다른 도구를 별도로 설치할 필요 없이 컨테이너에서 드라이버 옵션을 설정하는 것만으로 클라우드워치 로깅 드라이버를 사용할 수 있다.
AWS 부분은 생략한다.
3. 요약
도커의 컨테이너에서 로그를 관리 및 기록하는 법에 대해 알아보았다.
'Deploy > Docker' 카테고리의 다른 글
[Docker] 시작하세요! 도커 & 쿠버네티스 - 02_도커 엔진 - 컨테이너 자원 할당 제한 (0) | 2025.03.03 |
---|---|
[Docker] 시작하세요! 도커 & 쿠버네티스 - 02_도커 엔진 - 도커 네트워크 (1) | 2025.02.28 |
[Docker] 시작하세요! 도커 & 쿠버네티스 - 02_도커 엔진 - 도커 볼륨 (1) | 2025.02.27 |
[Docker] 시작하세요! 도커 & 쿠버네티스 - 02_도커 엔진_컨테이너 다루기(명령어 및 애플리케이션 구축) (0) | 2025.02.27 |
[Docker] 시작하세요! 도커 & 쿠버네티스 - 01_도커란 (0) | 2025.02.27 |