- [ DevOps/Docker ]도커 컴포즈를 활용한 다중 컨테이너 관리2025-07-29 17:46:19도커 컴포즈를 활용한 다중 컨테이너 관리1. 도커 컴포즈(Docker Compose) 개요1-1. 도커 컴포즈란?도커 컴포즈는 다중 컨테이너로 구성된 도커 애플리케이션을 정의하고 실행하기 위한 도구이다. 이 도구는 compose.yml 또는 docker-compose.yml 파일을 사용하여 애플리케이션의 모든 서비스를 구성하며, 단일 명령어를 통해 전체 애플리케이션 스택의 라이프사이클을 관리하는 것을 가능하게 한다. 이는 복잡한 마이크로서비스 아키텍처 환경에서 여러 컨테이너 간의 상호 의존성을 효율적으로 관리하는 데 필수적인 기능을 제공한다.1-2. 주요 기능도커 컴포즈는 다음과 같은 주요 기능을 제공한다.서비스 정의: 애플리케이션을 구성하는 각 컨테이너(서비스)의 이미지, 포트, 환경 변수, 볼륨 등을..
- [ DevOps/Docker ]Docker Compose를 활용한 서비스 구축2025-07-24 21:29:09Docker Compose를 활용한 서비스 구축본 포스트는 Docker CLI가 아닌 Docker Compose를 이용하여 다양한 서비스를 구축하는 방법을 다룬다. compose.yml과 Dockerfile을 이용해 Redis, MySQL과 같은 기반 서비스부터 Java, Node.js 기반 애플리케이션, 그리고 정적 웹사이트까지 컨테이너화하는 전체적인 과정을 설명한다.1. Redis 캐시 서버 구축첫 번째 실습은 간단한 Redis 캐시 서버를 컨테이너로 실행하는 과정이다.1-1. compose.yml 파일 작성Redis 서버 구동을 위한 compose.yml 파일은 다음과 같이 작성한다.services: my-cache-server: container_name: my-cache-server ..
- [ DevOps/Docker ]Docker Compose 기본 사용법2025-07-24 18:25:01Docker Compose 기본 사용법1. Docker Compose 정의Docker Compose는 여러 개의 Docker 컨테이너를 정의하고 실행하기 위한 도구이다. compose.yml 파일을 사용하여 애플리케이션의 서비스를 선언적으로 구성하고 관리할 수 있다. 이를 통해 복잡한 다중 컨테이너 애플리케이션을 효율적으로 개발하고 운영하는 기반을 마련할 수 있다.2. compose.yml 파일 작성compose.yml 파일을 아래와 같이 작성한다.services는 compose.yml 파일의 최상위 키 중 하나로, 애플리케이션을 구성하는 각기 다른 컨테이너들을 정의하는 역할을 한다.services 아래에 정의된 각 항목(예: my-web-server)은 하나의 독립된 서비스(컨테이너)를 의미한다.이 예..
- [ DevOps/Docker ]Docker 빌드 시간 단축 및 개발 효율 극대화: 캐싱과 볼륨 활용 팁2025-07-24 14:16:43Docker 빌드 시간 단축 및 개발 효율 극대화: 캐싱과 볼륨 활용 팁Docker는 애플리케이션을 컨테이너화하여 일관된 개발 및 배포 환경을 제공하는 강력한 도구이다. 하지만 Docker를 사용하다 보면 이미지 빌드 시간이 길어지거나 코드 변경 시 매번 이미지를 재빌드해야 하는 번거로움에 직면할 수 있다. 이번 포스팅에서는 Docker의 캐싱 메커니즘과 볼륨(Volume)을 효과적으로 활용하여 이러한 문제를 해결하고 개발 효율을 극대화하는 방법을 알아본다.1. Docker 캐싱으로 빌드 시간 단축하기Docker는 이미지를 빌드할 때 각 명령어를 개별 **레이어(Layer)**로 만든다. 이때 Docker는 이전 빌드에서 변경되지 않은 레이어에 대해서는 캐시를 사용하여 재빌드를 피한다. 이 캐싱 원리를 ..
- [ DevOps/Docker ]도커(Docker)로 Nginx 웹 서버 컨테이너 만들기2025-07-21 11:18:59도커(Docker)로 Nginx 웹 서버 컨테이너 만들기1. 도커와 Nginx란 무엇인가1-1. 도커(Docker)의 개념도커(Docker)는 컨테이너 기반의 오픈소스 가상화 플랫폼이다. 도커를 사용하면 애플리케이션과 그 실행 환경을 하나의 컨테이너로 패키징하여, 어디서든 일관되게 실행할 수 있다.1-2. Nginx란 무엇인가Nginx는 가볍고 빠른 성능을 자랑하는 오픈소스 웹 서버이다. 정적 파일 서비스, 리버스 프록시, 로드 밸런싱 등 다양한 기능을 제공한다. 공식 도커 이미지는 도커허브에서 제공된다.참고: Nginx Docker Hub 공식 페이지2. 도커로 Nginx 웹 서버 컨테이너 만들기2-1. index.html 파일의 중요성웹 프로젝트의 메인 페이지는 일반적으로 index.html로 작명한..
- [ DevOps/Docker ]Next.js 애플리케이션을 Docker와 Alpine으로 배포하기2025-07-21 10:45:47Next.js 애플리케이션을 Docker와 Alpine으로 배포하기1. Next.js 프로젝트 생성C:\docker-practice>npx create-next-app@latest√ What is your project named? ... my-next-app√ Would you like to use TypeScript? ... No / Yes√ Would you like to use ESLint? ... No / Yes√ Would you like to use Tailwind CSS? ... No / Yes√ Would you like your code inside a `src/` directory? ... No / Yes√ Would you like to use App Router? (recommen..
- [ DevOps/Docker ]Docker를 활용한 Nest.js 애플리케이션 컨테이너화 및 관리2025-07-18 18:42:51Docker를 활용한 Nest.js 애플리케이션 컨테이너화 및 관리1. Nest.js 프로젝트 생성my-nest-server 프로젝트를 생성 후 해당 프로젝트로 이동, 해당 프로젝트 내에서 Dockerfile을 생성하면 된다.C:\Users\dandycode\Documents\GitHub\docker-practice>nest new my-nest-server2. Dockerfile 생성FROM nodeWORKDIR /appCOPY . .RUN npm installRUN npm run buildEXPOSE 3000ENTRYPOINT [ "node", "dist/main.js" ]FROM node이 Dockerfile은 Node.js 런타임이 포함된 공식 node 이미지를 기반으로 시작한다. 즉, Node...
- [ DevOps/Docker ]Dockerfile의 WORKDIR 명령어 이해하기2025-07-17 11:18:56Dockerfile의 WORKDIR 명령어 이해하기1. WORKDIR 명령어의 정의Dockerfile에서 WORKDIR 명령어는 컨테이너 내부에서 이후에 실행되는 모든 RUN, CMD, ENTRYPOINT 명령어에 대한 작업 디렉토리를 설정하는 역할을 수행한다. 이는 컨테이너 내부에서 명령어를 실행할 때 경로를 명시적으로 지정할 필요 없이 상대 경로를 사용할 수 있도록 하여, Dockerfile의 가독성과 유지보수성을 향상시키는 중요한 요소이다. WORKDIR이 설정되지 않은 경우, 기본 작업 디렉토리는 / (루트)로 설정된다.2. WORKDIR 명령어의 작동 방식WORKDIR 명령어는 컨테이너 이미지 내부에 디렉토리를 생성하고, 해당 디렉토리를 이후 명령어의 기본 작업 경로로 지정한다. 만약 지정된 디..