글

라벨이 컨테이너인 게시물 표시

docker container 로그 관리하기 max-size, max-file

이미지
도커 컨테이너를 장기간 운영하다 보면 하드 용량이 싸이는 것을 알수 있습니다. 이는 컨테이너가 로그를 지우지 않고 지속적으로 쌓고 있기 때문입니다. 이는 장기적으로 하드 용량이 가득 차서 문제가 될수 있습니다.    이를 위해 컨테이너에서는 정기적으로 로그 기록을 오래된 순서로 지워줘야 합니다. 이를 위해 'docker run'을 실행할시 설정할수 있고 아니면 docker system에 적용할수 있습니다. 공식 사이트 링크 : https://docs.docker.com/config/containers/logging/local/ 1. 'docker run'을 이용하여 로그 용량 제한하기 $ docker run --log-opt max-size=10m --log-opt max-file=3 image-id copy max-size : 로그파일의 용량을 나타낸다. 단위는 k, m, g 로하고 기본값은 20m이다. 위 커멘드는 10m으로 되어 있다. max-file : 몇개의 로그파일을 만들것인지 결정한다. 그리고 설정한 파일 이상으로 생성될려고 할때 가장 과거의 것을 지운다. 기본으로는 5개로 설정되어 있다.  하지만 매번 'docker run'을 할때마다 셋팅하기가 귀찮다면 시스템에 적용하는 방법이 있다. 2. daemon.json 전체로 docker에 설정하기 Ubuntu(Linux)의 경로 /etc/docker 에 들어가서 아래와 같이 daemon.json파일을 생성합니다. { "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3", "labels": "production_status", "env": ...

docker 도커를 이용하여 컨테이너(CONTAINER) 생성하기 : NestJS 사용

이미지
 안녕하세요. 저번에 이어서 이번에는 컨테이어를 만들어보겠습니다. 컨테이너를 만들기 위해서는 이미지가 필요합니다. 이전글을 참고해 주세요 이전글 : docker 도커를 이용하여 이미지(IMAGE) 생성하기 : NestJS 사용 이제 이전에 만든 이미지를 이용하여 컨테이너를 만들도록 하겠습니다. $ docker run -p [LOCAL PORT]:[CONTAINER PORT] [IMAGE ID OR REPOSITORY:TAG] copy 사진1) 이미지를 이용하여 컨테이너 생성 사진1과 같이 해당 터미널을 실행하면 위와 같이 NestJS가 컨테이너로 생성되면서 실행 되는 것을 알수 있습니다. 사진2) Local로 3000포트 접속  사진2에서 Local의 3000포트에 접속시 컨테이너 안의 NestJS서버와 정상적으로 연결이 됩니다. 그  이유는 Local에서 접속한 포트와 컨테이너에서 노출한 포트가 같기 때문입니다. 사진3) 도커 컨테이너 생성 터미널  터미널로 도커 컨테이너 생성시 실제 Local에서 접속하는 터미널은 [LOCAL PORT]입니다. 이때 컨테이너 내부에 연결되는 포트는 [CONTAINER PORT]입니다. 위 예제에서 3000:3000으로 연결했기 때문에 3000포트에 연결 됬지만 2500:3000으로 할시 Local에서는 2500포트로 접속해야 해당 컨테이너의 3000포트에 접근할수 있습니다. 다른터미널로 현재 돌아가고 있는 컨테이너 확인하기 $ docker ps copy 사진4) 현재 돌아가는 컨테이너 리스트 위 터미널을 이용하여 현재 실행되고 있는 컨테이너와 그 정보들을 알수 있습니다. 그런데 이미지와 마찬가지로 NAME을 따로 지정을 할수 있습니다. 현재 컨테이너를 삭제한 후 새로 생성하도록 하겠습니다. 실행하고 있는 컨테이너를 정지하기 $ docker stop [CONTAINER ID OR NAME] copy 사진5) 도커 정지 Name을 지...