Docker Compose를 사용한 멀티 프로젝트 관리
KUKJIN LEE • 3개월 전 작성
※ 기본적인 이해를 위한 문서입니다. 구현 및 실행에 대한 내용이 아닙니다.
서버1프로젝트와 서버2프로젝트가 서로 다른 상위 디렉토리에 존재하는 경우, 각각의 프로젝트를 Dockerfile을 통해 컨테이너화하고 Docker Compose를 사용하여 이를 하나의 구성으로 묶어 관리할 수 있습니다.
프로젝트 폴더 구조
서버1프로젝트와 서버2프로젝트가 각각 별도의 디렉토리에 존재한다고 가정합니다.
server1/
├── Dockerfile
└── ... (기타 파일)
server2/
├── Dockerfile
└── ... (기타 파일)
단계 1: server1
의 Dockerfile 작성
# server1/Dockerfile
FROM nginx:latest
COPY . /usr/share/nginx/html
단계 2: server2
의 Dockerfile 작성
# server2/Dockerfile
FROM nginx:latest
COPY . /usr/share/nginx/html
단계 3: 각 프로젝트의 Docker 이미지를 빌드
터미널에서 각각의 프로젝트 디렉토리로 이동하여 Docker 이미지를 빌드합니다.
# server1 디렉토리에서
cd /path/to/server1
docker build -t server1-image .
# server2 디렉토리에서
cd /path/to/anotherpath/server2
docker build -t server2-image .
단계 4: Docker Compose 파일 작성
최상위 디렉토리(/path/to/
또는 다른 원하는 위치)에 docker-compose.yml
파일을 생성합니다.
version: '3'
services:
server1:
image: server1-image
ports:
- "8081:80"
server2:
image: server2-image
ports:
- "8082:80"
단계 5: Docker Compose로 컨테이너 실행
-
docker-compose.yml
파일이 있는 디렉토리로 이동합니다.
-
docker-compose up
명령어를 실행하여 두 컨테이너를 동시에 시작합니다.
docker-compose up
명령어를 실행하면 Docker Compose가 docker-compose.yml
파일을 읽고, 빌드된 server1-image
와 server2-image
이미지를 사용하여 서비스를 시작합니다.
-
이후 경로로 접속하여 서비스가 정상적으로 동작하는지 확인합니다.
-
server1
:http://localhost:8081
-
server2
:http://localhost:8082
-