์ƒ์„ธ ์ปจํ…์ธ 

๋ณธ๋ฌธ ์ œ๋ชฉ

[Docker] Docker์˜ ๋„คํŠธ์›Œํฌ ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž (1)

๐Ÿ˜Ž ์ง€์‹ in Action/โ˜๏ธ ๐Ÿ–ฅ๏ธ

by :ํ•ดํ”ผ๋ž˜๋น—๐Ÿพ 2024. 1. 1. 12:56

๋ณธ๋ฌธ

728x90

์ปจํ…Œ์ด๋„ˆ๊ฐ„ ํ†ต์‹ (๋„คํŠธ์›Œํฌ)

ํ”„๋กœ์ ํŠธ์—์„œ redis๋ž‘ spring boot ์ปจํ…Œ์ด๋„ˆ๋ž‘ ์—ฐ๊ฒฐํ•˜๋‹ค๊ฐ€ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค

 

docker0

: ๋„์ปค๋ฐ๋ชฌ์ด ์‹œ์ž‘๋˜๋ฉด, ์ƒ๊ธฐ๋Š” ๋„์ปค ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค

- virtual ethernet bridge : 172.17.0.0/16

- L2 ํ†ต์‹  ๊ธฐ๋ฐ˜

- container ์ƒ์„ฑ ์‹œ,veth ์ธํ„ฐํŽ˜์ด์Šค ์ƒ์„ฑ(sandbox)

- ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ๋Š” ์™ธ๋ถ€ ํ†ต์‹ ์„ docker0 ํ†ตํ•ด ์ง„ํ–‰

- container running ์‹œ 172.17.X.Y ๋กœ IP ์ฃผ์†Œ ํ• ๋‹น 

- docker network ls ํ–ˆ์„ ๋•Œ DRIVER ์—ด์— ์žˆ๋Š” ๊ฐ’์ด bridge : ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋„คํŠธ์›Œํฌ ์ด ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ์ปจํ…Œ์ด๋„ˆ๋Š” ์™ธ๋ถ€์˜ ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, -p ์˜ต์…˜์œผ๋กœ ์™ธ๋ถ€์— ํฌํŠธ๋ฅผ ๊ณต๊ฐœํ•  ์ˆ˜ ์žˆ์Œ

port-forwarding

container port๋ฅผ ์™ธ๋ถ€๋กœ ๋…ธ์ถœ์‹œ์ผœ ์™ธ๋ถ€ ์—ฐ๊ฒฐ ํ—ˆ์šฉ

iptables rules๋ฅผ ํ†ตํ•œ ํฌํŠธ ๋…ธ์ถœ

docker run -p hostport:containerport nginx:1.14
iptables -t nat -L -n -V

user-defined bridge network ์ƒ์„ฑ

docker network ls  #์ปจํ…Œ์ด๋„ˆ ๋„คํŠธ์›Œํฌ ๋ชฉ๋ก ์ถœ๋ ฅ
docker network inspect # ๋„คํŠธ์›Œํฌ๋ช…์„ ์ง€์ •ํ•ด์„œ ์ž์„ธํ•œ ๋‚ด์šฉ์„ ํ‘œ์‹œ
docker network create # ์ปจํ…Œ์ด๋„ˆ ๋„คํŠธ์›Œํฌ๋ฅผ ์ƒ์„ฑ
docker network rm # ์ปจํ…Œ์ด๋„ˆ ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ญ์ œ
docker network connect # ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ปจํ…Œ์ด๋„ˆ ๋„คํŠธ์›Œํฌ์— ์ ‘์†
docker network disconnect # ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ปจํ…Œ์ด๋„ˆ ๋„คํŠธ์›Œํฌ์—์„œ ๋ถ„๋ฆฌ

์˜ˆ์‹œ)

 

 

 

 

docker network crate --driver brdige \
--subnet 192.168.100.0/24 \
--gateway 192.168.100.254 \
mynet

docker network ls

docker run -d --name web -p 80:80 \
nginx:1.14

curl localhost

docker run -d --name app.js \
--net mynet --ip 192.168.100.100 \
-p 8080:8080 \ 
smlinux/app.js

curl localhost:8080
728x90

๊ด€๋ จ๊ธ€ ๋”๋ณด๊ธฐ