1. nginx ๋ง๋ค๊ธฐ
์ค์ ์ปจํ ์ด๋๋ฅผ ๋์์ ์ฌ๋ฌ๊ฐ ๋์ธ ์ ์์ต๋๋ค. ๊ทธ๋ผ ๊ฐ๊ฐ ์ปจํ ์ด๋ ์์ ๋ค์ด์๋ ํ๋ก๊ทธ๋จ๋ค ๊ฐ์ ํต์ ์ ์ด๋ป๊ฒ ํ๊ฒ์? ๊ทธ๋์ ์ค๋์ ์ปจํ ์ด๋๋ผ๋ฆฌ ํต์ ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณผ ๊ฒ์ธ๋ฐ, ๊ทธ๋ฅ ํ๋ฉด ์ฌ๋ฏธ์์ผ๋ nginx๋ผ๋ ํ๋ก๊ทธ๋จ์ ๋จผ์ ๋ง๋ค์ด์ ๋๋ ค๋ด ์๋ค.
1.1 nginx
์น์๋ฒ์ ํจ๊ป ๋๋ฆฌ๋ฉด ๋งค์ฐ ์ข์ ํ๋ก๊ทธ๋จ์ด ํ๋ ์์ต๋๋ค.
reverse proxy๋ผ๊ณ ํ๋๋ฐ, ์๋ฒ๋ก ๋ค์ด์ค๋ ์์ฒญ์ ์ค๊ฐ์ ๊ฐ๋ก์ฑ์ฃผ๋ ๊ฐ๋จํ ํ๋ก๊ทธ๋จ์
๋๋ค.

โฒ ๊ทธ๊ฑธ ์ฐ๋ฉด ์ ์ ๋ค์ด ์๋ฒ๋ก ์ง์ ๋ค์ด์ค๊ฒ ํ๋๊ฒ ์๋๋ผ, ๋ฆฌ๋ฒ์ค ํ๋ก์ ํ๋ก๊ทธ๋จ์ผ๋ก ๋จผ์ ๋ค์ด์ค๊ฒ ํ๊ณ ,
๋ฆฌ๋ฒ์ค ํ๋ก์๊ฐ ์ ์ ๋ฅผ ๋ค์ ์๋ฒ๋ก ์๋ดํ๋ ์์ผ๋ก ๋ง๋ค์ด๋์ต๋๋ค.
์ ๊ทธ๋ฐ๊ตฌ๋ก ๋นํจ์จ์ ์ธ ํ๋ก๊ทธ๋จ์ ๋์๋๋๋ฉด,
- ์๋ฒ์ ์ ์ฒด๋ฅผ ์์ ํ๊ฒ ์จ๊ธฐ๊ธฐ ๊ฐ๋ฅ
- HTTPS ์ธ์ฆ์ ์ค์น ์ฌ์
- ์๋ฒ๊ฐ ์ฌ๋ฌ๊ฐ๋ฉด ๋ก๋ ๋ฐธ๋ฐ์ฑ ๊ฐ๋ฅ
- ๋๊ฐ ์ ์ํ๋์ง ๋ก๊ทธ๋ ๋จ๊ธฐ๊ธฐ ์ฌ์
- IP ์ฐจ๋จ ์ฝ๊ฒ๊ฐ๋ฅ
๊ทธ๋์ ์ฌ์ฉํฉ๋๋ค. nginx ์๋๋ฉด caddy ์ด๋ฐ๊ฒ ์ ๋ช
ํ๋ฐ,
์ฐ๋ฆฌ๋ nginx๋ผ๋ ๋ฆฌ๋ฒ์ค ํ๋ก์ ํ๋ก๊ทธ๋จ์ ์จ๋ณด๋๋ก ํฉ์๋ค.
์ด๊ฒ๋ ์ด๋ฏธ์ง ๋ง๋ค์ด์ ์ปจํ ์ด๋๋ก ์คํํด๋ณผ ๊ฒ์ธ๋ฐ, ๊ทธ๋ด๋ ค๋ฉด nginx๋ฅผ ๋ก์ปฌ ์ปดํจํฐ์์ ์ค์นํ๊ณ ์ ํ ํ๋ ๋ฐฉ๋ฒ๋ ์๋๊ฒ ์ข๊ฒ์ฃ ? ๊ทธ๋์ผ Dockerfile์ ์์ฑํ๋ ํ ๊ฒ ์๋๋๊น
์ฌ๋ฌ๋ถ๋ค ์ปดํจํฐ์์ nginx ์ค์นํ๊ณ ์คํํ๋ ค๋ฉด,
- ์ปดํจํฐ์ nginx ์ค์น
- ๋์๋ฐฉ์์
.confํ์ผ์ ๋ง๋๋ก ์์ฑํด์ ์ค์นํด๋์ ์ง์ด๋ฃ์ด๋๊ณ - ํฐ๋ฏธ๋์
nginx -g daemon off;์ ๋ ฅํด๋๋ฉด nginx๊ฐ ์คํ๋ฉ๋๋ค.
์ฐ์ .conf ํ์ผ์ ์ด๋ป๊ฒ ์์ฑํ๋์ง ๋ง์ ๋จผ์ ๋ณด๋๋ก ํฉ์๋ค.
1.2 .conf ํ์ผ ์ฌ์ฉ๋ฒ
1server {2listen 80;3location / {4proxy_pass http://localhost:8080;5proxy_set_header Host $host;6proxy_set_header X-Real-IP $remote_addr;7proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;8proxy_set_header X-Forwarded-Proto $scheme;9}10}
๊ธฐ์กด docker ํด๋์ nginx ํด๋๋ฅผ ๋ง๋ค๊ณ myconfig1.conf ํ์ผ์ ์์ ๋ง๋ค๊ณ ,
์์ ์๋ ๋์ถฉ ๊ธฐ๋ณธ์ ์ธ ์ค์ ๋ค์ ๋ณต๋ถํด๋ด
์๋ค.
listen 80์ ๋๊ฐ 80๋ฒ ํฌํธ๋ก ๋ค์ด์ค๋ฉด ๋ฐ์ ์๋ ๋ด์ฉ์ ์คํํ๋ผ๋ ๋ป์ ๋๋ค.location / { }๋ถ๋ถ์ ๋๊ฐ/๋ก ์์ํ๋ ๋ชจ๋ ๊ฒฝ๋ก๋ก ๋ค์ด์ค๋ฉด,localhost:8080์ผ๋ก ๋ณด๋ด๋ผ๋ ๋ป์ ๋๋ค.proxy_set_header๋ถ๋ถ์header๋ผ๋ ๋ถ๋ถ์ IP ์ฃผ์ ๋ฑ ์ฌ๋ฌ ์ ๋ณด๋ฅผ ์ฑ์ฐ๋ผ๋ ๋ป์ธ๋ฐ ์ฌ์ฌํด์ ๋ฃ์ด๋ดค์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ์ค์ ํ์ผ์ ํน์ ํด๋์ ๋ฃ์ด์ค์ผํฉ๋๋ค.
๋ฆฌ๋
์ค์ nginx๋ฅผ ์ค์นํ์ผ๋ฉด /etc/nginx/conf.d/ ํด๋์ ๋ฃ์ด์ฃผ๋ฉด,
nginx๊ฐ ์์์ .conf ํ์ผ์ ๊ฐ์ ธ๊ฐ์ ์ฌ์ฉํด์ค๋๋ค.

์ ํํ ๋งํ๋ฉด /etc/nginx/conf.d/์ด์ฉ๊ตฌ.conf ํ์ผ์
nginx.conf๋ผ๋ ๊ธฐ๋ณธ ์ค์ ํ์ผ์ http { } ์์ ์๋์ผ๋ก ๋ฃ์ด์ ์คํ๋ฉ๋๋ค.
๊ทผ๋ฐ ์ฌ์ํ ๋ฌธ์ ๊ฐ ์๋๊ฒ /etc/nginx/conf.d/default.conf์ด๋ผ๋ ํ์ผ์ด ์๋์ผ๋ก ์์ฑ๋์ด ์๋๋ฐ,
๊ทธ๊ฒ ์ฌ๋ฌ๋ถ๋ค์ด ์์ฑํ ์ค์ ๋ณด๋ค ๋จผ์ ์ ์ฉ๋ ์๊ฐ ์์ต๋๋ค.
๊ทธ๋์ ๊ธฐ๋ณธ์ค์ ์ ์ธ๋ฐ์์ผ๋๊น ๊ทธ ํ์ผ์ ์ญ์ ํ๋ฉด ๋ฉ๋๋ค. ๋ฎ์ด์จ๋ ๋๊ณ ์ญ์ ํด๋ ๋ฉ๋๋ค.
1.3 ์ด๋ฏธ์ง ๋น๋ํ๊ธฐ
๊ทธ๋์ dockerfile ์ด์ฉํด์ nginx ์ด๋ฏธ์ง๋ฅผ ํ๋ฒ ๋ง๋ค์ด๋ณด๋๋ก ํฉ์๋ค. nginx ์ค์นํ๊ณ ์ค์ ํ๊ณ ์คํํ๋๊ฑฐ ๊ทธ๋๋ก Dockerfile์ ์จ๋๊ณ ๋น๋ํ๋ฉด ๋๊ฒ ๊ตฐ์. nginx ํด๋์๋ค๊ฐ Dockerfile ํ์ผ์ ํ๋ ๋ ๋ง๋ค์ด์ค๋๋ค.
1FROM nginx:latest23COPY ./myconfig1.conf /etc/nginx/conf.d/myconfig1.conf4RUN rm /etc/nginx/conf.d/default.conf56EXPOSE 807CMD ["nginx", "-g", "daemon off;"]
- nginx ์ค์นํ๊ณ
/nginx/myconfig1.conf๊ฒฝ๋ก์ ๋ง๋ค์ด๋ ์ค์ ํ์ผ ๋ณต๋ถํ๊ณ ,- ๊ธฐ๋ณธ์ค์ ํ์ผ์ ์ญ์ ํ๊ณ
- nginx ์คํํ๋ผ๊ณ ํ์ต๋๋ค.
1# docker build -t ์ด๋ฏธ์ง๋ช :ํ๊ทธ๋ช ํ์ฌ๊ฒฝ๋ก2$ docker build -t nginx:1 ./nginx
ํฐ๋ฏธ๋์์ nginx๋ผ๋ ์ด๋ฆ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ๋น๋๋ ํด๋ดค์ต๋๋ค.

โฒ ์ด๋ฏธ์ง ์คํ๋ ํด๋ด
์๋ค. ๋๊ฐ ๋ด ์ปดํจํฐ 80๋ฒ ํฌํธ๋ก ๋ค์ด์ค๋ฉด ์ด ์ปจํ
์ด๋ 80๋ฒ ํฌํธ๋ก ์๋ดํ๋ผ๊ณ ํด๋ดค์ต๋๋ค.
๊ทธ๋ผ ์ด์ localhost:80์ผ๋ก ์ ์ํด๋ณด๋ฉด ๋ญ๊ฐ ์ด์ํ๊ฒ ๋์ฌํ
๋ฐ ๊ทธ๋ผ ์ฑ๊ณต์
๋๋ค.
nginx ์ค์ ์๋ค๊ฐ ๋๊ฐ 80๋ฒํฌํธ๋ก ์ ์ํ๋ฉด localhost:8080์ผ๋ก ์๋ดํ๋ผ๊ณ ์ฝ๋์ง๋จ์ผ๋๊น,
๊ทธ๋ผ ์ด์ localhost:8080์ ์น์๋ฒ๋ฅผ ๋์๋์ผ๋ฉด, ์๋๋๋ก ๋ฆฌ๋ฒ์ค ํ๋ก์์ฒ๋ผ ์ ๋์ํ์ง ์์๊น์?

โฒ ๊ทธ๋์ ์ ์ ๋ง๋ ์น์๋ฒ๋ 8080ํฌํธ์ ์ปจํ
์ด๋๋ก ๋์๋ดค์ต๋๋ค.
๊ทธ๋ผ ์ด๋ก ์ localhost:80 ์ ์ํ๋ฉด localhost:8080์ ์๋ ์๋ฒ๊ฐ ๋ ์ผํ๋๋ฐ, ์๋ฌด๊ฒ๋ ์๋จ๋๋ฐ์?

โฒ ๊ทธ ์ด์ ๋ ๊ทธ๋ฆผ์ผ๋ก ๋ณด์๋ฉด ์ง๊ธ ๊ฐ์์ปดํจํฐ 2๋๋ฅผ ๋์๋จ๊ณ , ๋ด ์ปดํจํฐ์ ํฌํธ๋ ๊ฑฐ๊ธฐ์ ๊ฐ๊ฐ ์ฐ๊ฒฐํด๋์ต๋๋ค.
์ผ์ชฝ nginx ๊ฐ์์ปดํจํฐ์๋ โ๋๊ฐ 80๋ฒ ํฌํธ๋ก ๋ค์ด์ค๋ฉด 8080ํฌํธ๋ก ๋ณด๋ด๊ธฐโ ๋ผ๊ณ ์ฝ๋๋ฅผ ์ง๋จ์ต๋๋ค.
ํ์ง๋ง ์ผ์ชฝ nginx ๊ฐ์์ปดํจํฐ์๋ 8080ํฌํธ์์ ๋์์ค์ธ ํ๋ก๊ทธ๋จ์ด ์๋๋ฐ์?
๊ทธ๋์ ๋ด ์ปดํจํฐ 80๋ฒ ํฌํธ์ธ localhost:80์ผ๋ก ๋ค์ด๊ฐ๋, ์๋ฌด๊ฒ๋ ์๋์ค๊ณ ์๋ฌ๊ฐ ๋๋ ๊ฒ์ผ ๋ฟ์
๋๋ค.
๐ก Q. ์ค๋ฅธ์ชฝ ๊ฐ์์ปดํจํฐ์ 8080ํฌํธ์ ์น์๋ฒ ๋์๊ฐ๊ณ ์๋๋ฐ์?
- ๊ทธ๊ฑด nginx์ ์๊ด์๋ ๋ค๋ฅธ ๋ณ๋์ ์ปดํจํฐ์ผ ๋ฟ์ ๋๋ค.
- ๊ทธ๋์ โ80๋ฒ ํฌํธ๋ก ๋ค์ด์ค๋ฉด ์์ ์๋ ๊ฐ์ ์ปดํจํฐ์ 8080๋ฒ ํฌํธ๋ก ๋ณด๋ด๊ธฐโ ์ด๋ ๊ฒ ์ฝ๋๋ฅผ ์ง๋ฉด ์ ๋์ํฉ๋๋ค.
๊ทธ๋ผ ๋ค๋ฅธ ๊ฐ์์ปดํจํฐ๋ก ์ ์ํ๋ ๋ฒ์ ์๋ฉด ๋๊ฒ ๋ค์.
1.4 ๋ค๋ฅธ ๊ฐ์์ปดํจํฐ๋ก ์ ์ํ๋ ค๋ฉด
์ด๋ค ๊ฐ์์ปดํจํฐ์์ ๋ค๋ฅธ ๊ฐ์์ปดํจํฐ๋ก ์ ์ํ๋ ค๋ฉด ์ด๋ฐ ๋ฐฉ๋ฒ๋ ์์ต๋๋ค. ๋ด ์ปดํจํฐ๋ ๊ฐ์์ปดํจํฐ๋ ํฌํธ๋ฅผ ์ฐ๊ฒฐํด๋จ๊ธฐ ๋๋ฌธ์,

โฒ โ๋๊ฐ 80๋ฒ ํฌํธ๋ก ์ ์ํ๋ฉด ๋ค์ ์ฌ๋ผ๊ฐ์ ๋ด ์ปดํจํฐ์ 8080๋ฒ ํฌํธ๋ก ๋ค์ด๊ฐ๋ผโ ์ด๋ ๊ฒ ์ญ๋ฅํ๋ ์์ผ๋ก ์ง๋ ๋๊ธด ํฉ๋๋ค.

โฒ ๊ทผ๋ฐ ์ด๊ฒ๋ณด๋ค ๋ ์์ ํ๊ณ ๊ฐ๋จํ๊ฒ ํ๋ ค๋ฉด network๋ผ๋๊ฑธ ๋ง๋ค์ด์ ๊ทธ ์์ ๊ฐ์ ์ปดํจํฐ๋ฅผ ๋ด์๋์๋ ๋ฉ๋๋ค.
๊ฐ์ network ์์ ๋ค์ด์๋ ๊ฐ์ ์ปดํจํฐ๋ค์ ์๋ก ์ฝ๊ฒ ํต์ ์ด ๊ฐ๋ฅํด์ง๋๋ค.
์๋๋ฉด network ์์ ์ง์ด๋ฃ์ผ๋ฉด ๊ฐ์ IP์ฃผ์๋ฅผ ๋ถ์ฌํด์ฃผ๊ธฐ ๋๋ฌธ์,
๊ฐ์IP์ฃผ์:8080 ์ด๋ฐ ์์ผ๋ก ์ฌ์ฉํ๋ฉด ๋ค๋ฅธ ๊ฐ์์ปดํจํฐ์ ์ ์ ๊ฐ๋ฅํฉ๋๋ค.
2. ์ปจํ ์ด๋ ๊ฐ ํต์
์ปจํ ์ด๋๋ค์ ๊ฐ๊ฐ์ ๋ ๋ฆฝ์ ์ธ ์ปดํจํฐ๊ธฐ ๋๋ฌธ์ ์๋ ์๋ก ๋ง๋๊ณ ๊ทธ๋ด ์๊ฐ ์์ต๋๋ค. ๊ทผ๋ฐ ๋คํธ์ํฌ๋ฅผ ๋ง๋ค์ด์ ๊ทธ ์์ ์ง์ด๋ฃ์ผ๋ฉด ์๋ก ๋ง๋ ์ ์์ต๋๋ค.
์๋๋ฉด ๋คํธ์ํฌ์ ์ปจํ
์ด๋๋ฅผ ๋ฃ์ผ๋ฉด, ์ปจํ
์ด๋๋ง๋ค ๊ฐ์ IP ์ฃผ์๋ฅผ ๋ถ์ฌํด์ค๋๋ค.
๊ทธ๋์ ์ปจํ
์ด๋๊ฐ ๋ค๋ฅธ ์ปจํ
์ด๋๋ก ์ ์ํ๊ณ ์์ฒญ๋ ๋ฆฌ๊ณ ๊ทธ๋ฌ๊ณ ์ถ์ผ๋ฉด ๊ฐ์ IP ์ฃผ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋๋ฐ,
์๋ง๊ฐ ๋จ์ ๋ง ๋ฏฟ์ง ๋ง๋ฌ์ผ๋๊น ์ง์ ๋คํธ์ํฌ๋ฅผ ํ๋ ๋ง๋ค์ด๋ด
์๋ค.
2.1 ๋คํธ์ํฌ ๋ง๋ค๊ธฐ
1# docker network create ๋คํธ์ํฌ์ด๋ฆ์๋ช2$ docker network create mynet1
ํฐ๋ฏธ๋์์ ์ด๋ฐ๊ฑธ ์
๋ ฅํ๋ฉด ๋คํธ์ํฌ๋ฅผ ํ๋ ๊ฐ์์ผ๋ก ๋ง๋ค ์ ์์ต๋๋ค.
์ ๋ mynet1์ด๋ผ๋ ๋คํธ์ํฌ๋ฅผ ๋ง๋ค์ด๋ดค์
1docker network ls
๋ง๋ค์ด๋ ๋คํธ์ํฌ ๋ชฉ๋ก ์กฐํ๋ ๊ฐ๋ฅํฉ๋๋ค. ์ปจํ ์ด๋๋ฅผ ๋คํธ์ํฌ์ ๋ฃ์ผ๋ ค๋ฉด,
- ์ด๋ฏธ ์คํ์ค์ธ ์ปจํ ์ด๋๋ฅผ ๋คํธ์ํฌ์ ์ง์ด๋ฃ์ ์๋ ์๊ณ ,
- ์๋๋ฉด ์ ์ด์ ์ปจํ ์ด๋ ์คํํ ๋ ๋คํธ์ํฌ์ ๋ฃ์ผ๋ผ๊ณ ์ฝ๋์งค ์๋ ์๋๋ฐ,
ํ์๋ก ํด๋ด ์๋ค. ์คํ์ค์ธ ์ปจํ ์ด๋ ๋๊ณ , ํฐ๋ฏธ๋ ๋ช ๋ น์ด๋ฅผ ์ด์ฉํด์ ์ปจํ ์ด๋๋ฅผ ๋์๋ด ์๋ค.
1docker run -d -p 80:80 --network mynet1 --name nginx-container nginx:12docker run -d -p 8080:8080 --network mynet1 --name nodeserver-container nodeserver:1
์ปจํ ์ด๋ ์คํํ ๋ โ๋คํธ์ํฌ ์์ ๋ด์์ฃผ์ธ์โ ํ๊ณ ์ถ์ผ๋ฉด,
--network ๋คํธ์ํฌ์ด๋ฆ์ด์ฉํ๋ฉด ๋๊ฒ ์ต๋๋ค.--name ์ปจํ ์ด๋์ด๋ฆ์ฌ์ฉํ๋ฉด ์ปจํ ์ด๋ ์ด๋ฆ๋ ๋ง๋๋ก ์ ํ ์ ์์ต๋๋ค.
์ปจํ ์ด๋ ์ด๋ฆ๋ ์ด๋ฒ ๊ธฐํ์ ํ๋ฒ ์ง์ด๋ด ์๋ค. ๊ทธ๋ผ ์ปจํ ์ด๋๊ฐ ์ข์ํ์ง ์์๊น์.

โฒ Docker desktop์์ ์ปจํ
์ด๋ ์์ธ๋ด์ฉ์ ์ดํด๋ณผ ์ ์๋๋ฐ,
Inspect ๋ฉ๋ด ๋ค์ด๊ฐ๋ณด๋ฉด ์ง๊ธ ์ปจํ
์ด๋๊ฐ ์ด๋ค ๋คํธ์ํฌ์ ์ํด์๋ ์ง๋ ๊ฒ์ฌํด๋ณผ ์ ์์ต๋๋ค.
์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด mynet1 ์ด๋ผ๋ ๋คํธ์ํฌ์ ์ํด์๊ณ , ๊ฐ์ IP์ฃผ์๋ 172.18.0.2๊ฐ ๋ถ์ฌ๋์๊ตฐ์.
๊ฐ์ ๋คํธ์ํฌ ์์ ์๋ ์ปจํ
์ด๋๋ค์ 172.18.0.2๋ก ์ด ์ปจํ
์ด๋๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
2.2 ํต์ ํ๊ธฐ
์ปจํ ์ด๋๋ผ๋ฆฌ ํต์ ์ด ์ง์ง ๋๋ ํ์ธํ๋ ค๋ฉด, ํ๋์ ์ปจํ ์ด๋๋ก ๋ค์ด๊ฐ์ ๊ฑฐ๊ธฐ๋ค๊ฐ ๋ค๋ฅธ ์ปจํ ์ด๋๋ฅผ ๋ถ๋ฌ๋ณด๋ฉด ๋ฉ๋๋ค.
1docker exec -it ์ปจํ ์ด๋์ด๋ฆ /bin/sh
ํฐ๋ฏธ๋์์ ์ด๋ฐ๊ฑฐ ์
๋ ฅํ๋ฉด ๊ทธ ์ปจํ
์ด๋์ ํฐ๋ฏธ๋๋ก ๋ค์ด๊ฐ ์ ์์ต๋๋ค.
ํน์ Docker desktop์์ Container - Exec ๋ฉ๋ด ๋ค์ด๊ฐ๋ฉด ๋ฉ๋๋ค.
๊ทธ๋์ ์ ๋ nginx ์ปจํ
์ด๋ ํฐ๋ฏธ๋๋ก ๋ค์ด๊ฐ๋ดค์ต๋๋ค.
1# curl ์น์๋ฒ์ปจํ ์ด๋IP2$ curl 172.18.0.3:8080
nginx ์ปจํ ์ด๋ ํฐ๋ฏธ๋์์ ์์ฒ๋ผ ์ ๋ ฅํด๋ด ์๋ค. curl์ด ๋ญ๋๋ฉด ๊ทธ๋ฅ ํน์ ๋๋ฉ์ธ์ด๋ IP ์ฃผ์๋ก ์ ์ํ ๋ ์ฐ๋ ๋ช ๋ น์ด์ ๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ญ๊ฐ ๋จ์ง ์์ต๋๊น? ๊ทธ๋ฌ๋ฉด ํต์ ๋๋ค๋ ์๋ฆฌ์ ๋๋ค.
1# curl ์ปจํ ์ด๋์ด๋ฆ2curl nodeserver-container:808034# curl ์ปจํ ์ด๋์ด๋ฆ.๋คํธ์ํฌ์ด๋ฆ5curl nodeserver-container.mynet1:8080
์ค์ IP์ฃผ์ ๋ง๊ณ curl ์ปจํ
์ด๋ ์ด๋ฆ์ ์
๋ ฅํด๋ ์๋ง ์๋ ๊ฒ๋๋ค.
- ์๋๋ฉด ์ปจํ
์ด๋ ์ด๋ฆ์ ์
๋ ฅํ๋ฉด,
- ๊ทธ๊ฑธ ์๋์ผ๋ก IP์ฃผ์๋ก ๋ฐ๊ฟ์ฃผ๋
DNS๋ผ๋ ํ๋ก๊ทธ๋จ์ด ๋ด๋ถ์ ์ผ๋ก ์คํํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ๊ทธ๊ฑธ ์๋์ผ๋ก IP์ฃผ์๋ก ๋ฐ๊ฟ์ฃผ๋
- ๋ ์ ํํ ํ๋ ค๋ฉด
curl ์ปจํ ์ด๋์ด๋ฆ.๋คํธ์ํฌ์ด๋ฆ์ด๋ ๊ฒ ์จ๋ ๋ฉ๋๋ค.
2.3 ๋ค์ nginx์ ์น์๋ฒ ์ฐ๋
์๋ฌดํผ ๋ค์ ๋์๊ฐ์ nginx์์ ์น์๋ฒ๋ก ํต์ ์ด ๋๋๋ก ๊ณ ์ณ๋ด ์๋ค. ์ด์ nginx ๋ค์ด์ค๋ฉด ์น์๋ฒ ์ปจํ ์ด๋๋ก ๋ณด๋ด๋ผ๊ณ ์ฝ๋์ง๋ ค๋ฉด,
1// myconfig1.conf2server {3listen 80;45location / {6// proxy_pass http://nodeserver-container:8080;7proxy_pass http://์น์๋ฒ์ปจํ ์ด๋IP:8080;8// ์๋ต9}10}
์ด์ ์ด๋ ๊ฒ ๋ฐ๊พธ๋ฉด ๋๊ฒ ๋ค์. ํน์ IP ๋์ ์น์๋ฒ ์ปจํ ์ด๋์ ์ด๋ฆ๋ง ๋ฃ์ด๋ ๋ฉ๋๋ค.
1docker build -t nginx:1 ./nginx23# ๊ธฐ์กด์ ๋์๋จ๋ ์ปจํ ์ด๋๋ค์ ๋ชจ๋ ์ญ์ 4# ์คํ ์์๋ ์ค์ํจ. ์น์๋ฒ๊ฐ ์คํ์ค์ด์ด์ผ nginx๋ ์ ๋์๊ฐ5docker run -d -p 8080:8080 --network mynet1 --name nodeserver-container nodeserver:16docker run -d -p 80:80 --network mynet1 --name nginx-container nginx:1
์ง์ง ์ ๋๋์ง ์ด๋ฏธ์ง ๋น๋ํ๊ณ ์คํ๋ ํด๋ณด๊ณ nginx์ฃผ์๋ก ์ ์ํด๋ด ์๋ค. ๊ทธ๋ผ ์น์๋ฒ๊ฐ ์ ๋จ๋ฉด ์ฑ๊ณต์ ๋๋ค.
๐ก ์น์๋ฒ ์ปจํ ์ด๋์ ๊ฒฝ์ฐ์๋ nginx์์ ์ ์ํ๋ฉด ๋์ด๋ผ
- ๋ด ์ปดํจํฐ์ธ ํธ์คํธ์ ํฌํธ ์ฐ๊ฒฐ์์ ์ด ํ์์์ต๋๋ค.
- ๊ทธ๋์ ์น์๋ฒ ์ปจํ ์ด๋ ๋์ธ ๋๋ -p ์ต์ ์ ๋นผ๋ ๋์ง ์์๊น์.
1docker run -d --network mynet1 --name nodeserver-container nodeserver:1
2.4 bridge๋ชจ๋, host ๋ชจ๋
1$ docker network ls2NETWORK ID NAME DRIVER SCOPE3193b7ea62884 bridge bridge local489c055b40257 host host local566d1a3ee6f78 mynet1 bridge local6fb5fdb1bddd2 none null local
๊ธฐ๋ณธ์ ์ผ๋ก network๋ฅผ ํ๋ ๋ง๋ค๋ฉด bridge ๋ชจ๋๋ก ๋ง๋ค์ด์ค๋๋ค.
๊ทธ๊ฑฐ ๋ง๊ณ host ๋ชจ๋๋ก๋ ๋คํธ์ํฌ๋ฅผ ๋ง๋ค ์ ์๋๋ฐ,
๊ทธ๋ฌ๋ฉด ๊ฐ์์ปดํจํฐ๋ค์ด ๋ด ์ค์ ์ปดํจํฐ์์ ๋์๊ฐ๋ ํ๋ก๊ทธ๋จ์ฒ๋ผ ๋คํธ์ํฌ ์์์ ๋ง๊ตฌ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ทผ๋ฐ ๊ทธ ์ ๋์ ๊ถํ์ ๊ฐ์ ธ์ผํ๋ ํ๋ก๊ทธ๋จ์ ๊ฑฐ์ ์๊ธฐ ๋๋ฌธ์ ๋ณ๋ก ์ธ ์ผ์ ์๊ณ ,
๊ทธ๋ฅ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ฑ๋๋ bridge๋ชจ๋๋ก ๋คํธ์ํฌ๋ฅผ ๋ง๋ค์ด์ ์ฐ๋ฉด ๋๊ฒ ์ต๋๋ค.
์๋๋ฉด ๋์ถฉ ํฌํธ๋ฅผ ๋ง๊ตฌ ์ด์ด๋ฒ๋ฆฌ๊ฑฐ๋ ๊ทธ๋ฌ๋ฉด ๋๊ฐ ์นจ์
ํ ์ ์๋ ๊ธฐํ๋ฅผ ๋ง๋ จํด์ฃผ๋ ๊ฒ์ด๋ฏ๋ก,
ํฌํธ ์คํ์ ์ต์ํํ๋๊ฒ ์ข์ต๋๋ค.
์ค๋์ ๊ฒฐ๋ก ์
- nginx ๊ฐ์ ๋ฆฌ๋ฒ์ค ํ๋ก์ ์ฐ๋ฉด ์น์๋ฒ ์ด์ํ ๋ ๋์๋จ
- ๋คํธ์ํฌ ์์ ์ปจํ ์ด๋ ๋ฃ์ผ๋ฉด ์๋ก ์ฝ๊ฒ ํต์ ๊ฐ๋ฅ