๐Ÿ“Œ ๊ณต๋ถ€ ๊ณ„๊ธฐ

์ถ”๊ฐ€์ ์ธ ๋„์ปค ๊ณต๋ถ€๋ฅผ ์œ„ํ•ด ์œ ํŠœ๋ธŒ ๋”ฐ๋ฐฐ๋„ ๋„์ปค ์‹œ๋ฆฌ์ฆˆ๋ฅผ ๋ณด๋ฉด์„œ ์ •๋ฆฌํ•ด ๋ด…๋‹ˆ๋‹ค. 

 

๋ชฉ์ฐจ

 

๐Ÿ“9-1. ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ํ†ต์‹  (๋„คํŠธ์›Œํฌ) : ์ด๋ก 

1๏ธโƒฃ ์ปจํ…Œ์ด๋„ˆ๋Š” ์–ด๋–ป๊ฒŒ ํ†ต์‹ ํ•˜๋‚˜์š”?

 

* ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๊ฒŒ ๋˜๋ฉด ์ปจํ…Œ์ด๋„ˆ๋Š” Net namespace[๊ฐ์ฃผ:1]๋ผ๋Š” ๊ธฐ์ˆ ์„ ํ†ตํ•ด์„œ ๊ตฌํ˜„๋œ ๊ฐ€์ƒํ™”๋กœ ๊ฐ์ž ๋…๋ฆฝ๋œ ๋„คํŠธ์›Œํฌ ๊ณต๊ฐ„์„ ํ• ๋‹น ๋ฐ›๋Š”๋‹ค. 

 

 

  • ์ปจํ…Œ์ด๋„ˆ์˜ ๋„คํŠธ์›Œํฌ ๋ชจ๋ธ 

 

โ‘  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑ์‹œ eth0๋ผ๋Š” ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ปจํ…Œ์ด๋„ˆ์— ํ• ๋‹น

โ‘ก ๊ทธ์™€ ๋™์‹œ์— ํ˜ธ์ŠคํŠธ์—๋„ veth(virtual ethernet)๋ผ๋Š” ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ํ• ๋‹น

โ‘ข ์ด veth๋ฅผ ํ†ตํ•ด ์ปจํ…Œ์ด๋„ˆ์˜ eth0 ์ธํ„ฐํŽ˜์ด์Šค์™€ ์„œ๋กœ ํ†ต์‹ 

 

โ‘ฃ ๊ทธ๋ฆฌ๊ณ  ํ˜ธ์ŠคํŠธ veth๋Š” docker0๊ณผ ๋ฐ”์ธ๋”ฉ๋˜๊ณ  

โ‘ค docker0๋Š” ํ˜ธ์ŠคํŠธ์˜ eth0 ์ธํ„ฐํŽ˜์ด์Šค ์—ฐ๊ฒฐ๋˜์–ด 

โ‘ฅ ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ๋“ค์–ด์˜จ ์š”์ฒญ์„ ์—ฐ๊ฒฐ 

 

 

* ethernet ์ด๋ž€?

์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ ๋ฐฉ์‹์œผ๋กœ ๊ฐ€์ •์ด๋‚˜ ๊ฑด๋ฌผ๊ณผ ๊ฐ™์€ ๋กœ์ปฌ ํ™˜๊ฒฝ(LAN)์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ํ™œ์šฉ๋˜๋Š” ๊ธฐ์ˆ  ๊ทœ๊ฒฉ์ด๋‹ค.

์ด๋”๋„ท์€ OSI ๋ชจ๋ธ์˜ ๋ฌผ๋ฆฌ ๊ณ„์ธต์—์„œ ์‹ ํ˜ธ์™€ ๋ฐฐ์„ , ๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต์—์„œ MAC(media access control)ํŒจํ‚ท๊ณผ ํ”„๋กœํ† ์ฝœ์˜ ํ˜•์‹์„ ์ •์˜ํ•œ๋‹ค. 

๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ๊ฐ ๊ธฐ๊ธฐ๋“ค์ด 48๋น„ํŠธ ๊ธธ์ด์˜ ๊ณ ์œ ์˜ MAC ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์ด ์ฃผ์†Œ๋ฅผ ์ด์šฉํ•ด ์ƒํ˜ธ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ ธ ์žˆ๋‹ค.

 

* docker0 ๋ž€?

docker0 ์ธํ„ฐํŽ˜์ด์Šค๋Š” ํ˜ธ์ŠคํŠธ์˜ eth0 ์ธํ„ฐํŽ˜์ด์Šค์™€ ์ปจํ…Œ์ด๋„ˆ eth0 ์‚ฌ์ด์˜ ์ค‘์žฌ์ž ์—ญํ• , ์—ฐ๊ฒฐ ๋‹ค๋ฆฌ ์—ญํ• ์„ ํ•˜๋Š” ๊ฐ€์ƒ ๋ธŒ๋ฆฟ์ง€๋กœ ๋„์ปค๋ฅผ ์„ค์น˜ํ•˜๋ฉด ๋„์ปค ๋‚ด๋ถ€๋กœ์ง์— ์˜ํ•ด ์ž๋™์œผ๋กœ ์„ค์ •๋˜๋ฉฐ, ์ž๋™์œผ๋กœ IP๋ฅผ ํ• ๋‹น๋ฐ›๊ฒŒ ๋œ๋‹ค. 

(๊ธฐ๋ณธ 172.17.X.X๋กœ ์‹œ์ž‘ํ•˜๋ฉฐ netmask๋Š” 255.255.0.0์œผ๋กœ ์„ค์ •

 

* veth (virtual ethenet) ๋ž€?

์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ์‹œ ๋„์ปค๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์ฃผ๋Š” ๊ฐ€์ƒ์˜ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋กœ, ํ•ญ์ƒ ์Œ์œผ๋กœ ์ƒ์„ฑ๋œ๋‹ค.

ํ•˜๋‚˜๋Š” vethxxxx ๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ํ˜ธ์ŠคํŠธ์— ์ƒ์„ฑ๋˜์–ด docker0์— ๋ฐ”์ธ๋”ฉ ๋˜๋Š” ๊ฒƒ ํ•˜๋‚˜์™€

eth0๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ์ƒ์„ฑ๋˜์–ด veth์™€ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ ํ•˜๋‚˜๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. 

 

 

  • ๊ทธ๋ž˜์„œ ์ปจํ…Œ์ด๋„ˆ ๋„คํŠธ์›Œํฌ๋Š” 

- virtual ethernet bridge : 172.17.0.0/16

- L2[๊ฐ์ฃผ:2] ํ†ต์‹ ๊ธฐ๋ฐ˜

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

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

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

 

 

 

1) ์ด๋”๋„ท ip ์ฃผ์†Œ ์กฐํšŒ

ip address

docker0์— ์ปจํ…Œ์ด๋„ˆ ๋Œ๋ฆฌ๋‹ˆ๊นŒ veth๊นŒ์ง€ ๋ณด์ธ๋‹ค

** wsl2 ํ™˜๊ฒฝ์—์„œ๋Š” ๋ณ„๋„๋กœ bridge ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™” ํ•˜์ง€ ์•Š์œผ๋ฉด docker0์ด ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•œ๋‹ค.

 

 


2๏ธโƒฃ ์ปจํ…Œ์ด๋„ˆ ํฌํŠธ๋ฅผ ์™ธ๋ถ€๋กœ ๋…ธ์ถœํ•  ์ˆ˜ ์žˆ์–ด์š”?

 

Port Forwarding ์„ ํ†ตํ•ด ํฌํŠธ๋ฅผ ์™ธ๋ถ€๋กœ ๋…ธ์ถœ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. 

 

docker run [-p ํ˜ธ์ŠคํŠธํฌํŠธ:์ปจํ…Œ์ด๋„ˆํฌํŠธ] <์ด๋ฏธ์ง€๋ช…:ํƒœ๊ทธ>

 

iptables rule์„ ํ†ตํ•ด ํฌํŠธ ๋…ธ์ถœ์ด ๊ฐ€๋Šฅํ•œ๋ฐ ํฌํŠธํฌ์›Œ๋”ฉ์„ ํ•˜๋ฉด ๋ฐฉํ™”๋ฒฝ ๋ฃฐ์ด ๋งŒ๋“ค์–ด์ ธ ์—ฐ๊ฒฐ ๊ฐ€๋Šฅ

์•„๋ž˜ ๋ช…๋ น์–ด๋กœ ํฌํŠธํฌ์›Œ๋”ฉ ๋œ๊ฑฐ ํ™•์ธ ๊ฐ€๋Šฅ

iptables -t nat -L -n -v

 

* 80ํฌํŠธ๋ฅผ ์—ด๊ณ ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ๋“ค์ด ์—ฌ๋Ÿฌ๊ฐœ์ธ ๊ฒƒ์€ ๊ฐ€๋Šฅ ํ•˜๋‚˜ ํ˜ธ์ŠคํŠธ์˜ eth0 ์— 80ํฌํŠธ๋กœ ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ๋Š” ๊ฑด ํ•˜๋‚˜. ์ปจํ…Œ์ด๋„ˆ ๋ผ๋ฆฌ๋Š” ip๊ฐ€ ๋‹ฌ๋ผ์„œ ํฌํŠธ๊ฐ€ 80ํฌํŠธ๋กœ ๊ฐ™์•„๋„ ๊ฐ์ž์˜ ํฌํŠธ๋ผ ์ƒ๊ด€์—†์ง€๋งŒ ์—ฐ๊ฒฐ๋˜๋Š” ํ˜ธ์ŠคํŠธ์˜ ํฌํŠธ 80์€ ๋‹จ ํ•˜๋‚˜๋งŒ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ nginx๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ์—ฐ๊ฒฐํ•ด์ฃผ๊ณ  ์‹ถ๋‹ค๋ฉด, 80ํฌํŠธ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ํฌํŠธ๋กœ ์—ฐ๊ฒฐ์‹œํ‚ค๋ฉด ๋œ๋‹ค. 

* ํฌํŠธ๋ผ๋ฆฌ๋Š” ๊ผญ ๊ฐ™์€ ํฌํŠธ๋กœ ์ผ์น˜์‹œํ‚ฌ ํ•„์š” ์—†๋‹ค.

 

* ํ˜ธ์ŠคํŠธ ํฌํŠธ ์ค‘ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์žˆ๋Š” ํฌํŠธ ์ค‘์— ๋žœ๋ค์œผ๋กœ ๋ถ€์—ฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด

# ํ˜ธ์ŠคํŠธํฌํŠธ๋Š” ๋žœ๋ค์œผ๋กœ ์ง€์ •
docker run [-p ์ปจํ…Œ์ด๋„ˆํฌํŠธ] <์ด๋ฏธ์ง€๋ช…:ํƒœ๊ทธ>

๋งŒ์•ฝ ๋Œ€๋ฌธ์ž P๋งŒ ํ•œ๋‹ค๋ฉด dockerfile์—์„œ expose๋กœ ์ •์˜ํ•˜๊ณ  ์žˆ๋Š” ํฌํŠธ์— ๋งž์ถฐ ๋žœ๋ค ํฌํŠธ๋ฅผ ์„ค์ •ํ•˜๊ฒŒ ๋œ๋‹ค. 

docker run -P <์ด๋ฏธ์ง€๋ช…:ํƒœ๊ทธ>

 

 


3๏ธโƒฃ ์ปจํ…Œ์ด๋„ˆ ๋„คํŠธ์›Œํฌ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

docker0์— ํ• ๋‹น๋˜๋Š” ip๋Š” ์›ํ•˜๋Š”๋Œ€๋กœ staticํ• ๋‹น์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค 

๊ทธ๋Ÿผ static์œผ๋กœ ํ• ๋‹นํ•˜๊ฑฐ๋‚˜ ์›ํ•˜๋Š” ip๋Œ€์—ญ๋Œ€์— ํ• ๋‹นํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด 

docker0์˜ ๋Œ€์—ญ๋Œ€๋ฅผ ๋ฐ”๊พธ๊ฑฐ๋‚˜ ์œ ์ € ์ •์˜์˜ ๋„คํŠธ์›Œํฌ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ๊ฐ€๋Šฅํ•˜๋‹ค 

 

1) ๋„คํŠธ์›Œํฌ ์ƒ์„ฑ 

# docker network create [--driver ๋ฐฉ์‹] [--subnet ๋Œ€์—ญ๋Œ€/์‚ฌ์ด๋”] [--gateway ip์ฃผ์†Œ์„ค์ •] <๋„คํŠธ์›Œํฌ๋ช…>
docker network create --driver bridge --subnet 192.168.100.0/24 --gateway 192.168.100.254 mynet

 

* driver : bridge ํ˜•ํƒœ์˜ ๋„คํŠธ์›Œํฌ๋‚˜ ํ˜ธ์ŠคํŠธ ๋˜๋Š” non base์˜ ๋„คํŠธ์›Œํฌ๋ฅผ ํ•  ๊ฒƒ์ธ์ง€ ์„ค์ • ๊ฐ€๋Šฅ

* subnet : ์„œ๋ธŒ๋„ท ๋Œ€์—ญ๋Œ€ ์„ค์ •. ์ƒ๋žตํ•˜๊ฒŒ ๋˜๋ฉด docker0์— ๋”ฐ๋ฅธ ์ˆœ์„œ์ ์ธ ๋Œ€์—ญ๋Œ€๊ฐ€ ์„ค์ •๋œ๋‹ค. 

* gateway : ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ํ†ต์‹ ๋ง, ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋Š” ๋„คํŠธ์›Œํฌ ๊ฐ„์˜ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ์ปดํ“จํ„ฐ๋‚˜ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋‘๋ฃจ ์ผ์ปซ๋Š” ๋ง๋กœ, ์ฆ‰ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ๋กœ ๋“ค์–ด๊ฐ€๋Š” ์ž…๊ตฌ ์—ญํ• 

 

 

๐Ÿงโ“ IP์ฃผ์†Œ ๋’ค /์ˆซ์ž๋Š” ๋ญ์ง€? CIDR (์‚ฌ์ด๋”)์•ผ! ์‚ฌ์ด๋”๋Š” ๋˜ ๋ญ”๋ฐ!?

๋”๋ณด๊ธฐ

์ •์˜๋กœ ํ•˜์ž๋ฉด Classless Inter-Domain Routing ์œผ๋กœ ํด๋ž˜์Šค ์—†๋Š” ๋„๋ฉ”์ธ๊ฐ„ ๋ผ์šฐํŒ… ๊ธฐ๋ฒ•์ด๋ผ๊ณ  ํ•œ๋‹ค.

(์ด๊ฒŒ ๋ฌด์Šจ๋ง์ด์•ผ)

 

โž• IP์—๋„ ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹จ ๋ง์ด์•ผ?
์‚ฌ์ด๋”๋ฅผ ์•Œ๊ธฐ ์ „์— ๋จผ์ € IPํด๋ž˜์Šค๊ฐ€ ์–ด๋–ป๊ฒŒ ๋‚˜๋‰˜๋Š” ์ง€ ๋ถ€ํ„ฐ ๋ณด์ž.

 

1๏ธโƒฃ Aํด๋ž˜์Šค

๋งจ์•ž์ž๋ฆฌ ์ˆ˜๊ฐ€ ํ•ญ์ƒ 0์ธ ๊ฒฝ์šฐ๋กœ 2์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•˜๋ฉด 0xxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ์ด๋‹ค. 

๋ฒ”์œ„๋Š” 00000000.00000000.00000000.00000000 (0.0.0.0) ~ 01111111.11111111.11111111.11111111 (127.255.255.255) ์ด๋‹ค.

 

Aํด๋ž˜์Šค๋Š” ํ•˜๋‚˜์˜ ๋„คํŠธ์›Œํฌ๊ฐ€ ๊ฐ€์žฅ ๋งŽ์€ ํ˜ธ์ŠคํŠธ ์ˆ˜๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ํด๋ž˜์Šค์ด๋ฉฐ, 

ip์ฃผ์†Œ ์ฒซ ์˜ฅํ…Œ๋“œ[๊ฐ์ฃผ:3] ๊นŒ์ง€๋ฅผ ๋„คํŠธ์›Œํฌ ๋ฒ”์œ„๋กœ ํ•œ๋‹ค

 

์ฒซ ์˜ฅํ…Œ๋“œ ๋ถ‰์€ ์ž๋ฆฌ๋Š” ๋„คํŠธ์›Œํฌ ๋ฒ”์œ„, ๋’ค์˜ 3๊ฐœ์˜ ์˜ฅํ…Œ๋“œ ํŒŒ๋ž‘ ๋ถ€๋ถ„์€ ํ˜ธ์ŠคํŠธ ๋ฒ”์œ„

00000000 00000000 00000000 00000000

๋„คํŠธ์›Œํฌ๋Š” ์ฒซ์ž๋ฆฌ 0์€ ๊ณ ์ •์ด๋ผ ์ด๋ฅผ ์ œ์™ธํ•˜๋ฉด 2^7๊ฐœ ๊นŒ์ง€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, 127์€ ๋ฃจํ”„๋ฐฑ์ฃผ์†Œ[๊ฐ์ฃผ:4] ๋ผ ์ œ์™ธ๋˜์•ผํ•ด์„œ ๋„คํŠธ์›Œํฌ ๋ฒˆํ˜ธ๋Š” 1~126๊นŒ์ง€ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

๋งŒ์•ฝ 13.0.0.0์˜ ๋„คํŠธ์›Œํฌ๋ฅผ ํ• ๋‹น ๋ฐ›์œผ๋ฉด 13๋ถ€๋ถ„์ด ๋„คํŠธ์›Œํฌ, ๋‚˜๋จธ์ง€ 0.0.0์€ ํ˜ธ์ŠคํŠธ IP๋กœ ํ• ๋‹น ๊ฐ€๋Šฅํ•œ๋ฐ

์ด ๊ฒฝ์šฐ 13.0.0.0์€ ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ ํ‘œํ˜„์„ ์œ„ํ•ด, 13.255.255.255๋Š” ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ฃผ์†Œ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋น ์ง€๊ฒŒ ๋˜๊ณ  ์ด๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ์ฃผ์†Œ๋“ค์€ ์ „๋ถ€ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์–ด์„œ ip๊ฐœ์ˆ˜์˜ ์‹์ด

(2^(ํ˜ธ์ŠคํŠธ 2์ง„์ˆ˜ ์ˆ˜))-2 ๊ฐœ๋กœ ์œ„์—์„œ๋Š” (2^24)-2๊ฐœ๊ฐ€ ๋œ๋‹ค.  

 

๋„คํŠธ์›Œํฌ ๊ฐœ์ˆ˜ ํ˜ธ์ŠคํŠธ ๊ฐœ์ˆ˜
2^7 - 1 (์•ž์ด 0๊ณ ์ •์—, 127์ œ์™ธ) 2^24 - 2
(๋„คํŠธ์›Œํฌ ์ฃผ์†Œ 0.0.0๊ณผ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ฃผ์†Œ 255.255.255 ์ œ์™ธ)

 


2๏ธโƒฃ Bํด๋ž˜์Šค

 

Bํด๋ž˜์Šค๋Š” ๋ฐ˜๋“œ์‹œ 10์œผ๋กœ ์‹œ์ž‘ํ•˜๋ฉฐ 2์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•˜๋ฉด 10xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ๋œ๋‹ค.

128.0.0.0 ~ 191.255.255.255๊นŒ์ง€์˜ ๋ฒ”์œ„๋ฅผ ์ง€๋‹Œ๋‹ค

์•ž์ด 10์œผ๋กœ ๊ณ ์ •๋˜์–ด 127 ์ดํ›„์˜ 128 ๋ถ€ํ„ฐ ๋„คํŠธ์›Œํฌ ๋ฒ”์œ„๊ฐ€ ์‹œ์ž‘.

 

๋„คํŠธ์›Œํฌ ๋ฒ”์œ„๊ฐ€ ๋‘๋ฒˆ์งธ ์˜ฅํ…Œ๋“œ ๊นŒ์ง€์ด๋‹ค

 

00000000 00000000 00000000 00000000
๋„คํŠธ์›Œํฌ ๊ฐœ์ˆ˜ ํ˜ธ์ŠคํŠธ ๊ฐœ์ˆ˜
2^14 (์•ž์˜ 10์ด ๊ณ ์ •) 2^16 - 2
(๋„คํŠธ์›Œํฌ ์ฃผ์†Œ 0.0.0๊ณผ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ฃผ์†Œ 255.255.255 ์ œ์™ธ)

 


 3๏ธโƒฃ Cํด๋ž˜์Šค

 

Cํด๋ž˜์Šค๋Š” ๋ฐ˜๋“œ์‹œ 110์œผ๋กœ ์‹œ์ž‘ํ•˜๋ฉฐ 2์ง„์ˆ˜๋กœ ํ‘œํ˜„ํ•˜๋ฉด 110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx  ์ด๋ฉฐ

์•ž์ด 110์œผ๋กœ ๊ณ ์ •๋˜์–ด 192.0.0.0 ~ 223.255.255.255 ๊นŒ์ง€์˜ ๋ฒ”์œ„๋ฅผ ๊ฐ–๋Š”๋‹ค๊ณ  ํ•œ๋‹ค. 

 

๋„คํŠธ์›Œํฌ ๋ฒ”์œ„๊ฐ€ ์„ธ๋ฒˆ์งธ ์˜ฅํ…Œ๋“œ ๊นŒ์ง€์ด๋‹ค

๋„คํŠธ์›Œํฌ ๋ฒ”์œ„๊ฐ€ ๊ฐ€์žฅ ํฌ๋ฏ€๋กœ ์ƒ๋Œ€์ ์œผ๋กœ ํ˜ธ์ŠคํŠธ ๊ฐœ์ˆ˜๋ฅผ ๊ฐ€์žฅ ์ ๊ฒŒ ๊ฐ€์งˆ์ˆ˜ ์žˆ๋Š” ํด๋ž˜์Šค์ด๊ธฐ๋„ ํ•˜๋‹ค. 

 

00000000 00000000 00000000 00000000
๋„คํŠธ์›Œํฌ ๊ฐœ์ˆ˜ ํ˜ธ์ŠคํŠธ ๊ฐœ์ˆ˜
2^21 (์•ž์˜ 110์ด ๊ณ ์ •) 2^8 - 2
(๋„คํŠธ์›Œํฌ ์ฃผ์†Œ 0.0.0๊ณผ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ ์ฃผ์†Œ 255.255.255 ์ œ์™ธ)

 


ํด๋ž˜์Šค๊ฐ€ ์–ด๋–ป๊ฒŒ ๋‚˜๋‰˜๋Š”์ง€ ์•Œ์•„ ๋ณด์•˜๋‹ค๋ฉด ์ด์ œ ๋‹ค์‹œ ์‚ฌ์ด๋”๋กœ ๋Œ์•„์™€ ๋ณด์ž. 

 

IP์ฃผ์†Œ๋ฅผ 2์ง„์ˆ˜๋กœ ๋œ 8๋น„ํŠธ 4๊ฐœ ๋ธ”๋ก์œผ๋กœ ๋‚˜๋ˆ„๋ฉด ์ด 32๊ฐœ์˜ ์ž๋ฆฌ์ˆ˜๊ฐ€ ์ƒ๊ธด๋‹ค

์‚ฌ์ด๋”๋Š” 32๊นŒ์ง€์˜ ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ์ด ๋ง์ธ ์ฆ‰์Šจ ์ด ์•„๋ž˜ ์ž๋ฆฟ์ˆ˜๋“ค์„ ํ•ด๋‹น ์ˆ˜ ๋งŒํผ ๊ณ ์ •ํ•˜์—ฌ ๊ทธ๋ฃนํ•‘ํ•˜๊ฒŒ ๋œ๋‹ค.

00000000 00000000 00000000 00000000

/24๋ฅผ ์˜ˆ๋กœ ๋“ค์ž๋ฉด ์•„๋ž˜ ๋ถ‰์€ ์ˆซ์ž 24๊ฐœ๊นŒ์ง€ ๊ฐ™์€ IP์ฃผ์†Œ๋ฅผ ์‚ฌ์ด๋” ๊ทธ๋ฃน์œผ๋กœ ๋งŒ๋“ค๊ฒŒ ๋œ๋‹ค. 

00000000 00000000 00000000 00000000

์˜ˆ์‹œ๋กœ 192.168.100.0 ์—์„œ 24 ์‚ฌ์ด๋”๋ฅผ ์„ค์ •ํ•ด์ฃผ๊ฒŒ ๋˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์ˆ˜๊ฐ€ ๊ณ ์ • ip๊ฐ€ ๋˜๊ณ  ๋‚˜๋จธ์ง€๊ฐ€ ํ˜ธ์ŠคํŠธ๋กœ ๋ฐฐ์ •๋œ๋‹ค. 

11000000 10101000 01100100 00000000

Cํด๋ž˜์Šค์™€ ๋ฒ”์œ„๊ฐ€ ๊ฐ™์•„์„œ ๋ญ๊ฐ€ ๋‹ค๋ฅด๋ƒ?! ์‹ถ์ง€๋งŒ

 

๊ธฐ์กด ํด๋ž˜์Šค๋Š” ์˜ฅํ…Œ๋“œ ๋‹จ์œ„๋กœ๋งŒ ๊ทธ๋ฃน์„ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์—ˆ๋‹ค๋ฉด! 

์‚ฌ์ด๋”๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด /16, /24, /32 ์˜ฅํ…Œ๋“œ ๊ธฐ์ค€์ด ์•„๋‹Œ ๊ทธ ์™ธ์˜ ์ˆซ์ž๋กœ๋„ ์‚ฌ์ด๋” ๋ธ”๋ก์œผ๋กœ ๊ทธ๋ฃนํ•‘์ด ๊ฐ€๋Šฅํ•ด์„œ 

ํด๋ž˜์Šค์™€ ์ƒ๊ด€์—†์ด ๋ผ์šฐํŒ…์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์ด๋”๋ฅผ ํด๋ž˜์Šค ์—†๋Š” ๋„๋ฉ”์ธ๊ฐ„ ๋ผ์šฐํŒ… ๊ธฐ๋ฒ•์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

๊ธฐ์กด์˜ Network Class ๋ฐฉ์‹์— ๋น„ํ•ด ์œ ์—ฐํ•˜๊ฒŒ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๊ณ  ๊ทธ๋ฃน๋“ค์„ ๊ณ„์ธต์ ์œผ๋กœ ๊ด€๋ฆฌ๊ฐ€๋Šฅ ํ•ด IP ์ฃผ์†Œ ์ฒด๊ณ„๋ฅผ ๋ณด๋‹ค ํšจ์œจํ™”ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

 

2) ๋„คํŠธ์›Œํฌ ์กฐํšŒ 

docker network ls

 

3) ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ์‹œ ๋„คํŠธ์›Œํฌ ์„ค์ • 

net ์˜ต์…˜์œผ๋กœ ๋„คํŠธ์›Œํฌ๋ฅผ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ docker0๋กœ ์„ค์ •๋œ๋‹ค. 

ip์˜ต์…˜๋„ ์„ค์ •ํ•ด์ฃผ์ง€ ์•Š๋Š”๋‹ค๋ฉด ์„ค์ •๋˜๋Š” ๋„คํŠธ์›Œํฌ ๋Œ€์—ญํญ์—์„œ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฐฐ์ •๋œ๋‹ค.

(docker0๋กœ ๋„คํŠธ์›Œํฌ๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๋‹ค๋ฉด ip์˜ต์…˜์„ ์‚ฌ์šฉํ•ด static ip ํ• ๋‹น์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ์œ ์ € ์ •์˜ ๋„คํŠธ์›Œํฌ๋งŒ ๊ฐ€๋Šฅ)

# docker run [-d] [--name ์ปจํ…Œ์ด๋„ˆ๋ช…] [--net ๋„คํŠธ์›Œํฌ์ด๋ฆ„] [--ip ip์ฃผ์†Œ] [-p ํ˜ธ์ŠคํŠธํฌํŠธ:์ปจํ…Œ์ด๋„ˆํฌํŠธ] <์ด๋ฏธ์ง€๋ช…:ํƒœ๊ทธ>
docker run -d --name web --net mynet --ip 192.168.100.100 -p 80:80 nginx:1.14

 

 

 


 

4๏ธโƒฃ ์ปจํ…Œ์ด๋„ˆ๋ผ๋ฆฌ ํ†ต์‹ ์€ ์–ด๋–ป๊ฒŒ ํ•˜๋‚˜์š”?

์ปจํ…Œ์ด๋„ˆ ๊ฐ„์˜ ํ†ต์‹ ์„ ์ด์šฉํ•ด ํ”„๋ก ํŠธ ์„œ๋ฒ„์™€ ๋ฐฑ ์„œ๋ฒ„๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค. 

 

1) ์—ฐ๊ฒฐํ•  ์ปจํ…Œ์ด๋„ˆ ํ•˜๋‚˜ ์ƒ์„ฑ 

์˜ˆ์‹œ๋กœ mysql์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•  ๊ฑด๋ฐ mysql์˜ ์ปจํ…Œ์ด๋„ˆ๋Š” ์ƒ์„ฑ์‹œ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •์ด ํ•„์š”ํ•˜๋‹ค.

e์˜ต์…˜์œผ๋กœ environment ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด mysql ๊ณ„์ • ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์„ค์ •

(v์˜ต์…˜์œผ๋กœ ํ˜ธ์ŠคํŠธ์— ๋ฐ์ดํ„ฐ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณผ๋ฅจ๋งˆ์šดํŠธ)

# e์˜ต์…˜ (environment ํ™˜๊ฒฝ๋ณ€์ˆ˜)
docker run -d --name mysql -v /dbdata:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=wordpress \
-e MYSQL_PASSWORD=wordpress \
mysql

 

2) ์—ฐ๊ฒฐํ•  ๋‹ค๋ฅธ ์ปจํ…Œ์ด๋„ˆ ํ•˜๋‚˜ ์ƒ์„ฑ 

์—ฌ๊ธฐ์„œ ๋‹ค๋ฅธ ์ปจํ…Œ์ด๋„ˆ์™€ ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด link ์˜ต์…˜์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. 

# --link ์—ฐ๊ฒฐํ• ์ปจํ…Œ์ด๋„ˆ๋ช…:์ž„์˜๋ช…์นญ
docker run -d --name wordpress --link mysql:mysql \
-e WORDPRESS_DB_PASSWORD=wordpress \
-p 80:80 wordpress:4

 

 

 

 

 


๐Ÿ“9-2. ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ํ†ต์‹  (๋„คํŠธ์›Œํฌ) : ์‹ค์Šต

1๏ธโƒฃ ์ปจํ…Œ์ด๋„ˆ ๋„คํŠธ์›Œํฌ ์‚ฌ์šฉํ•˜๊ธฐ & ์ปจํ…Œ์ด๋„ˆ ํฌํŠธ ์™ธ๋ถ€๋กœ ๋…ธ์ถœํ•˜๊ธฐ

 

1) ๋„์ปค bridge, eth0 ์ฃผ์†Œ ํ™•์ธ 

ip address

๋„์ปค 0์— ํ• ๋‹น๋œ ipํ™•์ธ

 

 

brctl์€ ์ด๋”๋„ท ๋ธŒ๋ฆฌ์ง€ ๊ด€๋ฆฌ ๋„๊ตฌ๋กœ bridge-utils ํŒจํ‚ค์ง€์— ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. 

apt-get์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  apt-get install bridge-utils ํ•ด์„œ ์„ค์น˜ํ•ด์ฃผ๋ฉด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ณ๋ณด๋ฉด docker0๊ฐ€ ๋ธŒ๋ฆฌ์ง€ ์ธํ„ฐํŽ˜์ด์Šค์ž„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

brctl show

 

 

 

2) ์ปจํ…Œ์ด๋„ˆ ํ•˜๋‚˜๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ํ• ๋‹น๋œ ์•„์ดํ”ผ๋ฅผ ํ™•์ธํ•ด๋ณด์ž 

docker run -it --name c1 busybox

c1์„ ์ข…๋ฃŒํ•˜์ง€ ๋ง๊ณ  ๋‹ค๋ฅธ ์„ธ์…˜์œผ๋กœ ์ ‘์†ํ•ด ๋˜ํ•˜๋‚˜์˜ busybox๋ฅผ ๋Œ๋ ค๋ณด๋ฉด

๊ทธ ๋‹ค์Œ ์•„์ดํ”ผ๋ฅผ ํ• ๋‹น ๋ฐ›์€ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‹ค๋ฅธ ์ปจํ…Œ์ด๋„ˆ๋กœ ์›น์„œ๋ฒ„๋ฅผ ํ•˜๋‚˜ ๋Œ๋ ค๋ด๋„ ๊ทธ ๋‹ค์Œ ์•„์ดํ”ผ๊ฐ€ ํ• ๋‹น ๋œ ๊ฑธ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ์ปจํ…Œ์ด๋„ˆ๋“ค์€ docker0๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€๋กœ ๋‚˜๊ฐ„๋‹ค.

 

 

3) ์ข€ ๋” ์ž์„ธํ•˜๊ฒŒ ๋ณด๊ธฐ

docker inspect c1

* sandbox : ์ปจํ…Œ์ด๋„ˆ์˜ ๋„คํŠธ์›Œํฌ ํ™˜๊ฒฝ

* endpoint : veth, ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค 

 

๋งŒ์•ฝ ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹ ํ˜ธ๊ฐ€ ๋‚˜๊ฐ€๋ ค๋ฉด gateway๋ฅผ ํ†ตํ•ด ๋‚˜๊ฐ„๋‹ค 

์ด๊ฑธ ๋ฐ›๋Š” ๋ธŒ๋ฆฌ์ง€ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ž์‹ ์˜ ip์ฃผ์†Œ๋ฅผ ํ˜ธ์ŠคํŠธ ip address๋กœ ๋ฐ”๊พธ์–ด ์™ธ๋ถ€๋กœ ๋ณด๋‚ด๋Š” Masquerade ์„œ๋น„์Šค (๋งˆ์Šค์ปค๋ ˆ์ด๋“œ), nat ์„œ๋น„์Šค (Network Address Translation) ๋ฅผ ์ง€์›ํ•˜๊ฒŒ ๋œ๋‹ค. 

 

 

์•„๋ž˜ ๋ช…๋ น์–ด๋กœ nat ํ…Œ์ด๋ธ”์„ ๋ณด๋ฉด docker0์—์„œ ๋‚˜๊ฐ€๋Š” ๊ฒƒ์€ ์–ด๋””๋กœ๋“  ๋งˆ์Šค์ปค๋ ˆ์ด๋“œ๋ฅผ ํ•ด์ค€๋‹ค๋Š” ๊ฒŒ ํ‘œ์‹œ๊ฐ€ ๋˜์–ด ์žˆ๋‹ค. 

iptables -t nat -L -v

 

 


2๏ธโƒฃ ์ปจํ…Œ์ด๋„ˆ ํฌํŠธ ์™ธ๋ถ€๋กœ ๋…ธ์ถœํ•˜๊ธฐ

 

  • ํฌํŠธํฌ์›Œ๋”ฉ ์˜ต์…˜๋“ค
# ํ˜ธ์ŠคํŠธํฌํŠธ:์ปจํ…Œ์ด๋„ˆํฌํŠธ
docker run --name web1 -d -p 80:80 nginx:1.14
# ์ปจํ…Œ์ด๋„ˆํฌํŠธ
docker run --name web2 -d -p 80 nginx:1.14
# ๋Œ€๋ฌธ์ž P, expose ์„ค์ •๋œ ํฌํŠธ์— ๋งž์ถ”๋Š” ์˜ต์…˜
docker run --name web3 -d -P nginx:1.14

 

1) ํ˜ธ์ŠคํŠธ ํฌํŠธ์™€ ์ปจํ…Œ์ด๋„ˆ ํฌํŠธ ๋‘˜๋‹ค ์„ค์ • 

docker run -p 80:80 -d --name web1 nginx

์™ธ๋ถ€์—์„œ ์ปจํ…Œ์ด๋„ˆ๋กœ ์ ‘๊ทผ๊นŒ์ง€ ํ™•์ธ!

 

2) ์ปจํ…Œ์ด๋„ˆ ํฌํŠธ๋งŒ ์„ค์ •

ํ˜ธ์ŠคํŠธ์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํฌํŠธ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋žœ๋ค์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ 80ํฌํŠธ์™€ ์—ฐ๊ฒฐ๋จ

docker run -p 80 -d --name web2 nginx

๋žœ๋ค์œผ๋กœ 32768 ํ• ๋‹น

 

3) ๋Œ€๋ฌธ์ž P ์˜ต์…˜ : dockerfile์— ์„ค์ •๋œ expose๋˜์–ด ์žˆ๋Š” ํฌํŠธ๋งŒํผ ์„ค์ •

ํ—ˆ๋ธŒ์—์„œ ๋‹ค์šด ๋ฐ›์€ ์ด๋ฏธ์ง€๋“ค์€ ํ—ˆ๋ธŒ ์ƒ์„ธ dockerfile์—์„œ ์–ด๋Š ํฌํŠธ์— ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค. 

ํ…Œ์ŠคํŠธํ•ด๋ณด๋ ค๋Š” nginx ๊ณต์‹ dockerfile์—๋Š” expose๋กœ 80์ด ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ๋Œ€๋ฌธ์ž P ์˜ต์…˜ ์‚ฌ์šฉ์‹œ 80์œผ๋กœ ์„ค์ •๋œ๋‹ค. 

์ด๋ฏธ 80์ด ์žˆ๋‹ค๋ฉด ๋žœ๋คํฌํŠธ๋กœ ์„ค์ •ํ•˜๊ฒŒ ๋œ๋‹ค. 

์—ฌ๋Ÿฌ๊ฐœ expose๋˜์–ด ์žˆ๋‹ค๋ฉด ์—ฌ๋Ÿฌ๊ฐœ ๋ชจ๋‘ ์„ค์ •๋œ๋‹ค. ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ์ค‘๋ณต์ด๋ผ๋ฉด ์ด๋˜ํ•œ ๋žœ๋คํฌํŠธ๋กœ ์„ค์ •

docker run -P -d --name web3 nginx

์ค‘๋ณต๋œ 80ํฌํŠธ๋ฅผ ํ”ผํ•ด, ๋˜ ์ž„์˜๋กœ ์ค‘๋ณต๋  ์ˆ˜ ์žˆ๋Š” ๊ทธ๋‹ค์Œ ํฌํŠธ๋ฅผ ํ”ผํ•ด 32769๋กœ ํ• ๋‹น๋œ ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

 

 

 

๐Ÿ“ข ์ด๋ ‡๊ฒŒ 3๊ฐ€์ง€๋กœ ํฌํŠธํฌ์›Œ๋”ฉํ•ด ์™ธ๋ถ€๋กœ ๋ถ€ํ„ฐ ์ปค๋„ฅ์…˜ํ•˜์—ฌ ์„œ๋น„์Šค ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. 

 


3๏ธโƒฃ ์œ ์ € ์ •์˜ (user-defined) ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑํ•˜๊ธฐ

 

1) ๋„คํŠธ์›Œํฌ ์กฐํšŒ

docker network ls

์—ฌ๊ธฐ์„œ bridge์„ ์“ฐ๊ณ  ์žˆ๋Š”๊ฒŒ docker0 ์ด๋‹ค

 

 

2) ๋„คํŠธ์›Œํฌ ์ƒ์„ฑ

docker network create --driver bridge --subnet 192.168.100.0/24 --gateway 192.168.100.254 mynet

* driver ์„ค์ • ์•ˆํ•ด๋„ ๊ธฐ๋ณธ ์„ค์ •์ด bridge

* subnet ์„ค์ •์„ ์•ˆํ•˜๋ฉด ๊ธฐ๋ณธ ๋„์ปค๊ฐ€ ์“ฐ๋Š” ๋Œ€์—ญํญ์ด 172.17 ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋ฏ€๋กœ ๊ทธ ์ดํ›„๋กœ ์„ค์ •๋œ๋‹ค. 

* ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์„ค์ • ์•ˆํ•˜๋ฉด ๋Œ€์—ญํญ ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ๋ฅผ ์ œ์™ธํ•˜๊ณ  ๊ฐ€์žฅ ์ฒซ๋ฒˆ์งธ ์•„์ดํ”ผ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.  

 

3) ๋„คํŠธ์›Œํฌ ์ƒ์„ธ ์กฐํšŒ

# docker network inspect <๋„คํŠธ์›Œํฌ๋ช…>
docker network inspect mynet

 

 

4) ๋„คํŠธ์›Œํฌ ์‚ฌ์šฉ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ

# --net ๋„คํŠธ์›Œํฌ๋ช…
docker run -it --name c1 --net mynet busybox

์„ค์ •ํ•œ ip๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธ!

 

 


4๏ธโƒฃ ์ปจํ…Œ์ด๋„ˆ ์„œ๋น„์Šค ์šด์˜

์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•ด๋ณด์ž 

 

1) mysql ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ ๋ฐ ์‹คํ–‰

docker run -d --name mysql -v /dbdata:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=wordpress \
-e MYSQL_DATABASE=wordpress \ 
-e MYSQL_USER=wordpress \
-e MYSQL_PASSWORD=wordpress \
mysql

 

2) wordpress ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ ๋ฐ ์‹คํ–‰

docker run -d --name wordpress --link mysql:mysql \
-e WORDPRESS_DB_HOST=db \
-e WORDPRESS_DB_USER=wordpress \
-e WORDPRESS_DB_PASSWORD=wordpress \
-e WORDPRESS_DB_NAME=wordpress \
-p 80:80 wordpress

 

ํ ... wsl๋กœ ํ•˜๋ฉด db ์—ฐ๊ฒฐ ์‹คํŒจํ–ˆ๋‹คํ•˜๊ณ 

๋ฒ„๋ฐ•์œผ๋กœํ•˜๋ฉด Failed to connect to localhost port 80 ๋œจ๊ณ ....

๋งˆ์ง€๋ง‰ ์—ฐ๊ฒฐ ๋ถ€๋ถ„์— ์žˆ์–ด์„œ ์ด์Šˆ๊ฐ€ ์žˆ๋Š” ๋ฐ ์ด๋ถ€๋ถ„์€ ํ•ด๊ฒฐํ•˜๋ฉด ์ถ”๊ฐ€์˜ˆ์ •!

 

 


๋„์ปค ๋„คํŠธ์›Œํฌ ๊ตฌ์กฐ ์ฐธ์กฐ

 

[Docker] Docker Network (docker0์™€ veth)

Docker Network ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๊ฒŒ ๋˜๋ฉด ์ปจํ…Œ์ด๋„ˆ๋Š” NET namespace๋ผ๋Š” ๊ธฐ์ˆ ์„ ํ†ตํ•ด ๊ตฌํ˜„๋œ ๊ฐ€์ƒํ™” ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ž ๋…๋ฆฝ๋œ ๋„คํŠธ์›Œํฌ ๊ณต๊ฐ„์„ ํ• ๋‹น ๋ฐ›์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์ด ๋…๋ฆฝ๋œ ๋„คํŠธ์›Œํฌ ๊ณต๊ฐ„

yoo11052.tistory.com

 

  1. Net namespace
    Network interface, iptables ๋“ฑ ๋„คํŠธ์›Œํฌ ๋ฆฌ์†Œ์Šค์™€ ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ๋ถ„ํ• ํ•˜์—ฌ ๊ฐ๊ฐ์˜ ๋‹ค๋ฅธ namespace์— ํ• ๋‹น [๋ณธ๋ฌธ์œผ๋กœ]
  2. L2 (Layer 2)
    OSI๊ณ„์ธต์˜ 2๋ฒˆ์งธ ๋ ˆ์ด์–ด์ธ ๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต ํ†ต์‹ ์„ ๋งํ•œ๋‹ค [๋ณธ๋ฌธ์œผ๋กœ]
  3. ์˜ฅํ…Œ๋“œ octet
    2์ง„์ˆ˜ 8์ž๋ฆฌ๋ฅผ ์˜ฅํ…Œ๋“œ๋ผ๊ณ  ํ•œ๋‹ค. [๋ณธ๋ฌธ์œผ๋กœ]
  4. ๋ฃจํ”„๋ฐฑ์ฃผ์†Œ
    ๋„คํŠธ์›Œํฌ์ƒ์—์„œ ์ž์‹ ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ€์ƒ์ ์ธ ์ฃผ์†Œ์ด๋ฉฐ, ์ž์‹ ์—๊ฒŒ ๋‹ค์‹œ ๋„คํŠธ์›Œํฌ ์ž…๋ ฅ์ด ๋“ค์–ด์˜จ๋‹ค๊ณ  ํ•˜์—ฌ ๋ฃจํ”„๋ฐฑ(Loopback) ์ฃผ์†Œ๋ผ ํ•œ๋‹ค [๋ณธ๋ฌธ์œผ๋กœ]

+ Recent posts