[ Docker Compse ]
Docker Compose란 ?
→ 다중 컨테이너 도커 어플리케이션을 정의하고 실행 하기 위한 도구
[ node.js 와 Redis 연결 예시 ]
•
두개의 컨테이너를 연결하기 위해서는 우선 docker run redis로 redis 서버를 먼저 올린다
•
그 후에 노드js앱에 있는 컨테이너를 빌드하고 실행한다
◦
docker build -t 이미지이름 ./
◦
docker run 이미지 이름
이렇게 하게 되면 아래 이미지처럼 오류 로그가 뜰 것이다.
왜 이런 오류가 날까?
현재 독립된 두 컨테이너에 도커를 실행하였는데 이거를 연결할게 없기 때문이다.
이거를 해결 하기위해 docker compose를 이용한다
[ docker-compose.yml] 작성
•
docker-compse.yml 파일은 아래와 같은 코드로 작성하면 된다.
version : "3" // 도커 컴포즈의 버전
services : //이곳에 실행하려는 컨테이너들을 정의
redis-server : //컨테이너 이름
image : "redis" //컨테이너에서 사용하는 이미지
node-app : // 컨테이너 이름
build : . //현 디렉토리에 있는 Dockerfile 사용
ports : // 포트 매핑
- "3000:8080" // 로컬포트 : 컨테이너 포트
Docker
복사
•
위와 같이 작성 후 docker-compose up —build 명령어를 이용하여 실행한다
◦
docker-compose up : 이미지가 없을 때 이미지를 빌드하고 컨테이너 시작
◦
docker-compose up —build : 이미지가 있든 없든 이미지를 빌드하고 컨테이너 시작
◦
docker-compose down : docker-compose를 종료