docker-compose networks를 사용해서 로컬에서 간편하게 개발하기
2025. 2. 22. 05:27ㆍDocker
사용 이유
- 여러 종류의 DB Volumes의 데이터를 한 곳에서 관리하기 위함
- 같은 DB를 각각의 서버가 동일하게 바라보기 위함
- 간단하게 실행 및 관리를 쉽게 하기 위함
사용 방법
- docker-compose.yml, shart.sh 파일을 생성
- shart.sh파일을 실행시킨다.
파일 생성
참고
- volumes를 설정 할 때 도커 컨테이너에 저장되는 위치를 DB마다 정확하게 지정해주어야 데이터가 사라지지 않는다.
- DB 마다 저장되는 위치가 다르니 확인해주어야한다.
docker-compose.yml 파일
# docker-compose.yml
services:
mysql:
image: mysql:8.1
container_name: mysql
environment:
MYSQL_ROOT_PASSWORD: root1234
MYSQL_DATABASE: testdb
MYSQL_USER: user
MYSQL_PASSWORD: p1234
ports:
- "3306:3306"
volumes:
- ./mysql:/var/lib/mysql
networks:
- backend
postgres:
image: postgres:17.2
container_name: postgres
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: p1234
POSTGRES_DB: testdb
ports:
- "5432:5432"
volumes:
- ./postgres:/var/lib/postgresql/data
networks:
- backend
mongo:
image: mongo:8.0
container_name: mongo
ports:
- "27017:27017"
volumes:
- ./mongo:/data/db
networks:
- backend
networks:
backend:
external: true
start.sh 파일
# start.sh
docker network create backend
docker-compose up
실행
명령어 실행
sh start.sh
명령어를 실행하면 활성화한 DB가 실행된다.
서버에서 활성화된 DB를 연결하려면 network를 연결해주고 docker-compose를 실행시킨다.
ex) docker-compose 예시 파일
services:
app:
build:
context: .
dockerfile: ./Dockerfile
env_file:
- ./config/.env
ports:
- '3000:3000'
command: pnpm run start:debug
volumes:
- ./:/app/
- /app/node_modules
networks:
- backend
networks:
backend:
external: true
728x90
반응형
'Docker' 카테고리의 다른 글
docker-compose 사용 방법 (1) | 2023.12.31 |
---|---|
Docker build 시 bcrypt 에러 해결 방법 Error: Error loading shared library... (2) | 2023.10.29 |
Dockerfile 만들기 (.dockerignore) (0) | 2021.08.22 |
Docker 볼륨 마운트 (0) | 2020.11.18 |