728x90 Docker6 [Docker-compose] 서버의 DB 연결 지연 이슈 docker-compose 로 구성한 server 컨테이너의 서버와 db 컨테이너의 MySQL 서버 연결시 데이터베이스 연결이 지연되는 문제가 발생했다. 서버는 빠르게 실행되어 데이터베이스와 연결을 시도하지만 데이터베이스는 서버보다 늦게 실행되기 때문에, 서버 혼자 열심히 데이터베이스 연결을 시도하다가 죽어버리는 현상이었다. `depends_on` 은 컨테이너 간의 종속성을 설정하는데 사용되는 옵션으로, 이 옵션을 통해 특정 컨테이너가 다른 컨테이너의 실행을 완료한 후 시작되도록 지정할 수 있다. version: '3.8'services: server: image: webapp depends_on: - db db: image: database 하지만 `depends_o.. 2024. 10. 30. [Docker] Docker Compose 는 무엇인가 Docker Compose 란? Docker Compose 는 여러개의 도커 컨테이너를 정의하고 실행하기 위한 도구이다. Docker Compose 를 사용하면 복잡한 멀티 컨테이너 도커 애플리케이션을 쉽게 관리할 수 있다. 여러개의 서비스가 함께 동작하는 애플리케이션을 개발, 테스트, 배포할 때 특히 유용하다. Docker Compose 는 yaml 파일을 사용하여 도커 애플리케이션의 구성을 정의한다. 이 yaml 파일에는 애플리케이션에 필요한 서비스, 네트워크, 볼륨 등의 설정이 포함된다. 또한, 여러 서비스간의 의존성, 실행순서, 환경변수 등을 지정할 수 있다. Docker Compose 파일의 구성요소 간단한 docker-compose.yml 파일의 예시를 살펴보자. version: '3' ser.. 2024. 1. 7. [Docker] 바인드 마운트(bind mount) Docker container 로그의 경우 아래 경로에 쌓인다. $ sudo su $ vi /var/lib/docker/containers/${container-id}/${container-id}-json.log 하지만 로그 외 컨테이너 내부의 특정 디렉토리를 호스트의 특정 경로에 마운트 해야 하는 경우가 있는데(예를 들어 파일비트로 로그를 읽어야 할때), 이 경우 바인드 마운트(bind mount) 를 사용하면 된다. $ docker run -d --name filebeat -v ${host 경로}:${docker container 내부 디렉토리 PATH} filebeat 2021. 9. 19. [Docker] Docker 컨테이너 로그 관리 AWS EC2 인스턴스에 API 를 docker 로 띄웠었는데, docker 컨테이너 로그가 쌓이며 디스크 용량 부족으로 인하여 API 가 죽었고 서비스가 약 30분 정도 정지되었다. 또 이런 일이 발생하지 않도록 하기 위해 리눅스의 logrotate 를 이용하여 docker 컨테이너 로그를 관리하려고 한다. $ sudo vi /etc/logrotate.d/docker-container /var/lib/docker/containers/*/*.log { rotate 7 daily compress size=1M missingok delaycompress copytruncate } - rotate 7: 백업하는 개수. 최대 7개의 파일을 보관 (log.1, log.2, ..., log.7) - daily: 로.. 2021. 6. 16. [Docker] Timezone 설정하기 Dockerfile 을 이용해서 이미지 빌드를 하게 되면 기본적으로 Timezone 이 UTC 로 되어 있다. 백엔드 단에서 개발하거나 로그를 관리할 때는 UTC 여도 상관 없었지만, 클라이언트 측에 시간을 전송해야 하는 상황이 발생했다. Timezone 을 KST 로 변경하는 방법은 아래와 같다. ▷ Dockerfile ARG DEBIAN_FRONTEND=noninteractive ENV TZ=Asia/Seoul RUN apt-get install -y tzdata * DEBIAN_FRONTEND=noninteractive: tzdata 설치 시 사용자가 직접 timezone 설정을 할 수 있도록 입력할 수 있는 부분이 나오는데, 도커 이미지를 생성할 때는 입력을 할 수 없으므로 사용자의 입력 없이 넘.. 2021. 6. 2. [Docker] docker 설치하기 Mac, Windows 에 docker 설치하기 1. Mac: docs.docker.com/docker-for-mac/install/ Install Docker Desktop on Mac docs.docker.com 2. Windows: docs.docker.com/docker-for-windows/install/ Install Docker Desktop on Windows docs.docker.com Ubuntu 18.04 에 docker 설치하기 (출처: docs.docker.com/engine/install/ubuntu/) 1) 오래된 버전 제거 $ sudo apt-get remove docker docker-engine docker.io containerd runc 2) 리포지토리 설정하기 htt.. 2021. 4. 27. 이전 1 다음 728x90 반응형