docker 를 활용하여 직접 msa 구성

2025. 10. 20. 09:22·devops

목표

docker 를 활용하여 직접 msa 를 구성해본다.

과정

1. nginx 이미지 준비

Dockerfile

FROM nginx

COPY default.conf /etc/nginx/conf.d/default.conf

default.conf

upstream blog_servs{
    server myblog-1:80;
    server myblog-2:80;
    # server myblog-3:80;
}

server{
    listen 80;
    location /{
        proxy_pass http://blog_servs;
    }
}

2. blog 서비스 구동

어제 실습 과 똑같기 때문에 패스한다.

3. nginx 컨테이너 구동

docker run -d -p 9050:80 --name nginx_lb_1 --link myblog-1 --link myblog-2 myblog:20251014.1

여기서 사용된 --link 옵션은 더 이상 사용되지 않은 docker 기능이다. 도커의 network 를 만들고 컨테이너들을 같은 네트워크에 두는 방법을 사용할 것을 권장한다.
참고로, docker network 의 종류로는 bridge, host, none가 존재한다.

  • bridge: 아무 설정하지 않으면 적용되는 네트워크 모드, 사용자가 직접 네트워크를 만드는 경우 bridge 모드가 적용되고 docker daemon 에 내부 DNS 서버를 구동하여 같은 네트워크 안에 있는 컨테이너들은 컨테이너의 이름을 통해서 통신할 수 있다.
  • host: host pc 와 동일한 네트워크 네임스페이스를 사용한다. 포트 충돌이 발생할 수 있기 때문에 많이 사용되지 않는다.
docker run -d --name web --network host nginx
  • none: 네트워크가 없음

결론

직접 base nginx 이미지로부터 설정 정보를 복사하여 새로운 nginx이미지를 만들고 컨테이너로 구동하였다. 서비스가 추가된다면 다시 컨테이너를 띄워야 하는 문제점이 있음을 알 수 있었다.
=> Docker compose 를 활용하여 해결해본다.

link 가 아닌 docker network 를 활용한 방법

docker network 을 활용한 msa 구성

# 기존 nginx_lb 컨테이너 중단 및 삭제(--link 옵션으로 생성된 컨테이너이기 때문)
docker stop nginx_lb_2
docker rm nginx_lb_2

# nginx 컨테이너 다시 띄움
docker run -d -p 9050:80 --name nginx_lb_3 nginx_lb:20251014.2

network 설정을 아직 하지 않았기 때문에 컨테이너가 정상적으로 동작하지 못하는 것을 확인할 수 있다.

image)image

# 도커 네트워크 생성 및 연결
docker network create blog-net
docker network connect blog-net myblog-1
docker network connect blog-net myblog-2
docker network connect blog-net nginx_lb_3

# nginx 컨테이너 재구동
docker restart nginx_lb_3

nginx 컨테이너가 정상적으로 동작하는 것을 확인할 수 있다.

image

'devops' 카테고리의 다른 글

Spring Cloud Gateway 와 Spring Eureka 를 통해 MSA 환경 구축  (0) 2025.10.20
SPRING GATEWAY 를 이용한 MSA( 멀티 서비스, 멀티 서버 구현하기)  (0) 2025.10.20
GW LB 를 이용한 무중단 배포(업데이트)  (0) 2025.10.20
nginx-proxy 이미지 없이 docker compose 를 활용하여 직접 MSA 구성  (0) 2025.10.20
docker compose 를 이용한 서비스 디스커버리 및 scale out - in  (0) 2025.10.15
'devops' 카테고리의 다른 글
  • SPRING GATEWAY 를 이용한 MSA( 멀티 서비스, 멀티 서버 구현하기)
  • GW LB 를 이용한 무중단 배포(업데이트)
  • nginx-proxy 이미지 없이 docker compose 를 활용하여 직접 MSA 구성
  • docker compose 를 이용한 서비스 디스커버리 및 scale out - in
khw7385
khw7385
khw7385 님의 블로그 입니다.
  • khw7385
    khw7385 님의 블로그
    khw7385
  • 전체
    오늘
    어제
    • 분류 전체보기 (43) N
      • 코딩테스트 (7)
      • 자바 (3)
      • 스프링 (3)
      • cs (7)
        • 자료구조 (3)
        • 알고리즘 (1)
        • 객체지향 (3)
      • 개발일지 (6)
        • 트러블슈팅 (1)
      • 데이터베이스 (3)
        • Redis (2)
        • MySQL (1)
      • 기타 (2)
      • devops (6)
      • LG CNS AM INSPIRE (6) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
khw7385
docker 를 활용하여 직접 msa 구성
상단으로

티스토리툴바