Docker Compse

작성자
스터디 날짜
2023/08/15
태그
docker-compose
1 more property

[ 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를 종료