TIL)23.09.11(도커 spring & redis 배포)

주민·2023년 9월 12일
0

TIL

목록 보기
83/84

spring app docker로 배포하는 글을 전에 작성했다. > 여기
docker-compose 세부 설명 > 여기

DB는 RDS(mysql)로 해서 문제 없을 줄 알았는데 중간에 redis를 사용하는 부분이 있어 컨테이너를 두 개 사용하는 방식으로 변경했다.

※ spring app 이미지가 docker hub에 올라가 있고 정상 가동 되고 있다는 가정하에 진행합니다.

1. docker-compose.yml 파일 작성

기존에는 도커 엔진을 통해 명령을 실행했지만 도커 컴포즈는 docker-compose란 파일을 통해 명령을 사용한다.

도커 컴포즈를 통해 컨테이너를 생성하면 서비스 간의 네트워크가 자동으로 생성되어 두 개의 컨테이너를 연동하여 사용할 수 있다.(도커 엔진을 통해 따로 만들면 연동되지 않는다.)

version: '3'
services:
  spring-app:
    image: user/sample
    container_name: sample
    ports:
      - "8080:8080"
    depends_on:
      - redis

  redis:
    image: redis:latest
    container_name: redis
    ports:
      - "6379:6379"
  • version : docker-compose 파일의 버전
    -> 버전에 따른 다양한 기능과 구문을 제공
    -> 3 을 제일 많이 사용
  • service : 실행되는 내용
    • spring-app : 서비스 이름
    • image : 컨테이너를 만들 이미지
    • container_name : 컨테이너명
    • ports : 사용하는 포트
    • depends_on : 서비스 간의 종속성을 정의하는데 사용
      -> spring-app에서 depends_on: redis를 해주면 redis가 먼저 실행되도록 한다.

▶ 이름 ~ 포트까지가 컨테이너 하나를 만드는 명령어(run)이다, 여러 개를 작성하는 경우는 여러 개의 컨테이너가 생성된다.(container_name 생략 가능)

2.docker-compose 다운로드

리눅스는 컴포즈를 따로 다운로드 받아야 한다.
리눅스 서버에서 아래 명령어를 입력해주면 된다.

sudo apt install -y python3 python3-pip
sudo pip3 install docker-cpmpose

3.docker-compose 파일 실행

cmd에서 아래 명령어로 간단하게 실행 할 수 있다.

# docker-compose -f 파일위치\파일명 up - d

docker-compose -f C:\Users\user\Desktop\sample\docker-compose.yml up -d

위 명령어는 윈도우 버전인데 EC2 서버에서 사용해야한다면 docker-compose 파일을 리눅스 서버에 옮기고 위치를 확인해야한다.
윈도우 -> 리눅스 파일 이동1
윈도우 -> 리눅스 파일 이동2

scp -i "서버 pem 파일 드래그" C:\Users\user\Desktop\test/docker-compose.yml 서버ID@1IPv4 주소:/home/ubuntu(* 리눅스 서버 위치)
  • 리눅스.ver
docker-compose -f /home/ubuntu/docker-compose.yml up -d

0개의 댓글