docker

도커

[도커] 컨테이너 SSH 포트 변경 및 확인

방법 1. config 수정 1. openssh-server가 설치되어있고 /etc/ssh/sshd_config를 수정하지 않았다면 아래 명령어로 수정 가능 sed -i 's/^#Port 22$/Port {target_port}/' /etc/ssh/sshd_config 2. 컨테이너 실행 시 아래 커맨드를 docker-compose.yaml에 포함시키면 됨 "command": [ "/bin/bash", "-c", "sed -i 's/^#Port 22$/Port {target_port}/' /etc/ssh/sshd_config && /usr/sbin/sshd && sleep infinity", ] 방법 2. ssh 실행 시 포트 지정 1. 컨테이너 실행 시 아래 커맨드를 docker-compose.yaml..

파이썬

[파이썬] 도커 컨테이너 정보 출력

import docker 필요한 라이브러리 임포트 (https://docker-py.readthedocs.io/en/stable) def add_unit(mem: float) -> str: if mem > 1024**3: mem = round(mem / 1024**3, 2) mem = f"{mem}GiB" elif mem > 1024**2: mem = round(mem / 1024**2, 2) mem = f"{mem}MiB" elif mem > 1024: mem = round(mem / 1024, 2) mem = f"{mem}KiB" else: mem = round(mem, 2) mem = f"{mem}Byte" return mem 데이터 단위를 붙여주기 위한 함수 client = docker.Docke..

도커

[도커] 컨테이너 타임존 설정

1. Dockerfile에 다음을 추가하여 tzdata 설치 apt-get install -y tzdata 2. 컨테이너 실행 시 환경변수 TZ 추가 - Docker를 이용해 실행 시 docker run --env TZ=Asia/Seoul {image_name} {command} - Docker Compose를 이용해 실행 시 environment: - TZ=Asia/Seoul

도커

[도커] 컴포즈 로그 출력 타임 아웃

도커 컴포즈로 로그를 출력하다보면 일정 시간 동안 출력할 로그가 없는 경우 이후부터 로그 출력이 동작하지 않을 때가 있는데, 아래와 같이 환경 변수를 넘겨주어 타임아웃을 늘려주면 됨 COMPOSE_HTTP_TIMEOUT={int} docker-compose logs {service_name} ex. 타임 아웃 = 하루, 로그 추적 (-f), 타임스탬프 출력 (-t), 대상 서비스 = service_1, service_2 COMPOSE_HTTP_TIMEOUT=86400 docker-compose logs -ft service_1 service_2

도커

[도커] 로그 관리 툴 fluentd 설정

replicas 옵션을 통해 컨테이너를 여러 개 띄우다 보니 각 컨테이너에서 생성하는 로그가 하나의 파일에 찍히지 않고 컨테이너 1개의 로그만 제대로 저장되는 현상 발생. 복제된 서비스가 모두 하나의 폴더를 마운트하니 당연한 일인 듯... 도커에 built-in 되어있는 logging driver 중 fluentd를 사용하기로 결정 이미지는 공식 이미지 중 v0.12-debian-2를 사용함. (굳이 구버전을 사용한 이유는 fluent의 플러그인 중 elements를 정렬해주는 fluent-plugin-order를 사용하기 위함이었지만, 현재는 어차피 로그를 csv로 출력하기 때문에 elements 정렬이 필요가 없어 구버전을 사용하는 의미가 사라졌음...) @type forward port 24224 ..

IntegerString
'docker' 태그의 글 목록