
๋ ๊ฐ์ ์คํ๋ง ๋ถํธ ์๋น์ค๊ฐ ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ตฌ์กฐ์ ๋๋ค.
/hello ํธ์ถ ์ "hello"๋ผ๋ ๋ฌธ์์ด์ ๋ฐํํ๋ ์๋ฒ.OpenFeign์ ์ด์ฉํด Service-B๋ฅผ ํธ์ถ. ์์ ์ ๋ฉ์์ง์ B์ ์๋ต์ ํฉ์ณ์ ๋ฐํ. (sevice-a: hi ###### service-b: hello)๊ฐ์ฅ ๊ธฐ๋ณธ์ด ๋๋ ๋จ๊ณ๋ก, ๋ด ์ปดํจํฐ(Local) ํ๊ฒฝ์์ ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ง์ ์คํํฉ๋๋ค.
18080 ํฌํธ18081 ํฌํธlocalhost:18081๊ณผ ๊ฐ์ด ์ค์ ํธ์คํธ์ IP์ ํฌํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํธ์ถํฉ๋๋ค.๊ฐ ์๋น์ค๋ฅผ ์ปจํ ์ด๋๋ก ๊ฒฉ๋ฆฌํ์ฌ ์คํํฉ๋๋ค. ์ฌ๊ธฐ์ ํต์ฌ์ ์ปจํ ์ด๋ ์ด๋ฆ์ผ๋ก ์๋ก๋ฅผ ์ธ์ํ๊ฒ ๋ง๋๋ ๊ฒ์ ๋๋ค.
๋์ปค์ ๊ธฐ๋ณธ ๋ธ๋ฆฌ์ง(Bridge) ๋คํธ์ํฌ๋ ์ปจํ ์ด๋ ์ด๋ฆ์ผ๋ก ์๋ก๋ฅผ ์ฐพ๋ DNS ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๊ฐ ์ง์ ๋คํธ์ํฌ๋ฅผ ๋ง๋ค๊ณ ์ฐ๊ฒฐํด์ค์ผ ํฉ๋๋ค.
์ฌ์ฉ์ ์ ์ ๋คํธ์ํฌ ์์ฑ:
docker network create my-network
Service-B ์ด๋ฏธ์ง ๋น๋ ๋ฐ ์คํ:
# 1. ์ด๋ฏธ์ง ์์ฑ (Dockerfile ์์น์์ ์คํ)
docker build -t img-service-b .
# 2. ์ปจํ
์ด๋ ์คํ (๋คํธ์ํฌ ์ง์ ํ์!)
docker run -d --name service-b \
--network my-network \
-p 18081:8080 \
img-service-b
8080์ผ๋ก ํต์ผํ ์ ์์ต๋๋ค. ํธ์คํธ ํฌํธ(18081)๋ฅผ ํตํด์๋ง ์ธ๋ถ์ ์ฐ๊ฒฐ๋ฉ๋๋ค.๋งค๋ฒ ๋คํธ์ํฌ๋ฅผ ์์ฑํ๊ณ , ๊ธด docker run ๋ช
๋ น์ด๋ฅผ ์ผ์ผ์ด ์
๋ ฅํ๋ ๋ฒ๊ฑฐ๋ก์์ docker-compose.yml ํ๋๋ก ํด๊ฒฐํฉ๋๋ค.
version: '3.8'
services:
service-a:
image: img-service-a
ports:
- "18080:8080"
environment:
- SERVICE_B_URL=http://service-b:8080
depends_on:
- service-b
service-b:
image: img-service-b
ports:
- "18081:8080"
networks:
default:
driver: bridge
โจ Docker Compose๊ฐ ์ฃผ๋ ์ด์
๐ Docker Compose๋ฅผ ์ฌ์ฉํ์ฌ ์๋น์ค๋ฅผ ์คํํ๋ฉด, Docker Compose๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๋ธ๋ฆฌ์ง ๋คํธ์ํฌ๋ฅผ ์์ฑํ์ฌ ๊ฐ ์๋น์ค ์ปจํ ์ด๋๋ฅผ ๊ทธ ๋คํธ์ํฌ์ ์ฐ๊ฒฐํฉ๋๋ค. ์ด ๋คํธ์ํฌ๋ docker-compose.yml ํ์ผ์ ์ ์๋ ๋ชจ๋ ์๋น์ค๊ฐ ์๋ก ํต์ ํ ์ ์๋๋ก ํฉ๋๋ค.