Alert

์ด ๊ธ€์€ Claude Code์˜ ๋„์›€์„ ๋ฐ›์•„ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค

TL;DR

  • ์ปจํ…Œ์ด๋„ˆ๋Š” ์ž์‹ ๋งŒ์˜ ๊ฒฉ๋ฆฌ๋œ ๋„คํŠธ์›Œํฌ ์„ธ๊ณ„์— ์žˆ์–ด ํ˜ธ์ŠคํŠธ์˜ NIC๋ฅผ ์ง์ ‘ ์“ฐ์ง€ ๋ชปํ•จ
  • bridge ๋„คํŠธ์›Œํฌ๋Š” ๋„์ปค๊ฐ€ ํ˜ธ์ŠคํŠธ ์•ˆ์— ๋งŒ๋“œ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์Šค์œ„์น˜, veth pair๋กœ ์ปจํ…Œ์ด๋„ˆ์™€ ์—ฐ๊ฒฐ
  • ์•„์›ƒ๋ฐ”์šด๋“œ๋Š” ์ถœ๋ฐœ์ง€ IP๋ฅผ ํ˜ธ์ŠคํŠธ IP๋กœ ๋ฐ”๊พธ๋Š” NAT(masquerade)๋กœ ์ธํ„ฐ๋„ท์— ๋‚˜๊ฐ
  • ์ธ๋ฐ”์šด๋“œ๋Š” ๊ธฐ๋ณธ ์ฐจ๋‹จ, -p 8080:80๋กœ ํฌํŠธ๋ฅผ ์—ด์–ด์•ผ DNAT ๊ทœ์น™์ด ์ƒ๊ฒจ ์™ธ๋ถ€์—์„œ ๋„๋‹ฌ
  • ์ปจํ…Œ์ด๋„ˆ ์•ฑ์€ 127.0.0.1์ด ์•„๋‹ˆ๋ผ 0.0.0.0์— ๋ฐ”์ธ๋”ฉํ•ด์•ผ ํฌ์›Œ๋”ฉ๋œ ํŠธ๋ž˜ํ”ฝ์„ ๋ฐ›์Œ

Source


1. ์™œ ํ—ท๊ฐˆ๋ฆฌ๋Š”๊ฐ€

๋„์ปค๋ฅผ ์“ฐ๋‹ค ๋ณด๋ฉด ์ž์ฃผ ๊ฒช๋Š” ๋‘ ๊ฐ€์ง€ ์ƒํ™ฉ์ด ์žˆ๋‹ค.

  • ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—์„œ๋Š” apt update๋‚˜ ์™ธ๋ถ€ API ํ˜ธ์ถœ์ด ์ž˜ ๋˜๋Š”๋ฐ,
  • ์ •์ž‘ ๋ธŒ๋ผ์šฐ์ €์—์„œ localhost:80์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ์— ์ ‘์†ํ•˜๋ฉด ์•„๋ฌด ์‘๋‹ต์ด ์—†๋‹ค.

๋‘˜ ๋‹ค ๊ฐ™์€ ๋„คํŠธ์›Œํฌ ๋ฌธ์ œ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค. ํ•˜์ง€๋งŒ ๋„์ปค๋Š” ๋‚˜๊ฐ€๋Š” ํŠธ๋ž˜ํ”ฝ(์•„์›ƒ๋ฐ”์šด๋“œ)๊ณผ ๋“ค์–ด์˜ค๋Š” ํŠธ๋ž˜ํ”ฝ(์ธ๋ฐ”์šด๋“œ)์„ ์™„์ „ํžˆ ๋‹ค๋ฅด๊ฒŒ ๋‹ค๋ฃฌ๋‹ค. ์ด ๋‘˜๋งŒ ๋–ผ์–ด ๋†“๊ณ  ๋ณด๋ฉด ๋„์ปค ๋„คํŠธ์›Œํ‚น ์งˆ๋ฌธ์˜ ์ ˆ๋ฐ˜์€ ์ €์ ˆ๋กœ ํ’€๋ฆฐ๋‹ค.

Docker ๋„คํŠธ์›Œํฌ๋Š” ๋“œ๋ผ์ด๋ฒ„ ์ข…๋ฅ˜์™€ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๋‹ค๋ฃฌ๋‹ค. ์ด ๊ธ€์€ ๊ทธ ๋Œ€์‹  ํŒจํ‚ท์ด ์‹ค์ œ๋กœ ์–ด๋–ค ๊ธธ์„ ๋”ฐ๋ผ ํ๋ฅด๋Š”์ง€๋ฅผ ํŒŒ๊ณ ๋“ ๋‹ค.


2. ๊ธฐ๋ณธ ๊ฐœ๋… - ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ฒฉ๋ฆฌ๋œ ๋„คํŠธ์›Œํฌ์— ์‚ฐ๋‹ค

์ปจํ…Œ์ด๋„ˆ์˜ ๋„คํŠธ์›Œํฌ ์„ธ๊ณ„

์ปจํ…Œ์ด๋„ˆ๋Š” ์ž๊ธฐ๋งŒ์˜ ์ž‘์€ ๋„คํŠธ์›Œํฌ ์„ธ๊ณ„ ์•ˆ์— ๊ฒฉ๋ฆฌ๋œ ์ฑ„ ๋Œ์•„๊ฐ„๋‹ค. ๊ทธ๋ž˜์„œ ํ˜ธ์ŠคํŠธ ๋จธ์‹ (์—ฌ๊ธฐ์„œ๋Š” ๋…ธํŠธ๋ถ)์˜ ์‹ค์ œ ๋„คํŠธ์›Œํฌ ์นด๋“œ(NIC)๋ฅผ ์ง์ ‘ ๊ฑด๋“œ๋ฆฌ์ง€ ๋ชปํ•œ๋‹ค. ๊ทธ๋Ÿผ ์ด ๊ฒฉ๋ฆฌ๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์–ด๋–ป๊ฒŒ NIC๊นŒ์ง€ ์ด์–ด ์ค„๊นŒ. ์ด๊ฒŒ ํ’€์–ด์•ผ ํ•  ๋ฌธ์ œ๋‹ค.

์šฉ์–ด: ํ˜ธ์ŠคํŠธ ๋จธ์‹ 

๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์‹œ์Šคํ…œ์„ ๋งํ•œ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ๋…ธํŠธ๋ถ์„ ํ˜ธ์ŠคํŠธ๋กœ ๊ฐ€์ •ํ•œ๋‹ค. ํ˜ธ์ŠคํŠธ์˜ NIC๊ฐ€ ์ธํ„ฐ๋„ท๊ณผ์˜ ์‹ค์ œ ์†ก์ˆ˜์‹ ์„ ๋‹ด๋‹นํ•œ๋‹ค.

bridge ๋„คํŠธ์›Œํฌ = ์†Œํ”„ํŠธ์›จ์–ด ์Šค์œ„์น˜

๋„์ปค๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ bridge ๋„คํŠธ์›Œํฌ์— ์˜ฌ๋ฆฐ๋‹ค. bridge ๋„คํŠธ์›Œํฌ๋Š” ๋„์ปค๊ฐ€ ํ˜ธ์ŠคํŠธ ์•ˆ์— ์Šฌ์ฉ ๋งŒ๋“ค์–ด ๋‘๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์Šค์œ„์น˜, ์ฆ‰ ์Šค์œ„์น˜ ์—ญํ• ์„ ํ•˜๋Š” ๊ฐ€์ƒ ์žฅ์น˜๋‹ค.

  • ์ƒˆ๋กœ ๋„์šฐ๋Š” ์ปจํ…Œ์ด๋„ˆ๋Š” ๋ชจ๋‘ ์ด ์Šค์œ„์น˜์— ๊ฝ‚ํžŒ๋‹ค.
  • ๊ฐ™์€ ์Šค์œ„์น˜(๊ฐ™์€ ์‚ฌ์„ค ๋„คํŠธ์›Œํฌ)์— ์žˆ์œผ๋ฏ€๋กœ ์ปจํ…Œ์ด๋„ˆ๋ผ๋ฆฌ๋Š” ๋‚ด๋ถ€ IP๋กœ ์ง์ ‘ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค. ํฌํŠธ ๊ฒŒ์‹œ๋„, ๋ณ€ํ™˜๋„ ํ•„์š” ์—†๋‹ค.
  • bridge ๋„คํŠธ์›Œํฌ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ๊ฐ™์€ bridge์— ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ๋ผ๋ฆฌ๋Š” ํ†ต์‹ ๋˜์ง€๋งŒ, ๋‹ค๋ฅธ bridge๋ผ๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ํ†ต์‹ ๋˜์ง€ ์•Š๋Š”๋‹ค. ๊ตณ์ด ํ†ต์‹ ์‹œํ‚ค๋ ค๋ฉด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์–‘์ชฝ ๋„คํŠธ์›Œํฌ์— ๋ชจ๋‘ ์—ฐ๊ฒฐํ•˜๋ฉด ๋œ๋‹ค.
veth pair - ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ์ผ€์ด๋ธ”

์ปจํ…Œ์ด๋„ˆ๋ฅผ ์Šค์œ„์น˜์— ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋„์ปค๋Š” veth pair(๊ฐ€์ƒ ์ด๋”๋„ท ํŽ˜์–ด)๋ฅผ ๋งŒ๋“ ๋‹ค. ์–‘ ๋์ด ์žˆ๋Š” ๊ฐ€์ƒ ๋žœ์„ ์ด๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

  • ํ•œ์ชฝ ๋์€ ์ปจํ…Œ์ด๋„ˆ ์•ˆ์œผ๋กœ ๋“ค์–ด๊ฐ„๋‹ค. ์ด ์—ฐ๊ฒฐ์ ์ด ์ปจํ…Œ์ด๋„ˆ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋‹ค. ์ปจํ…Œ์ด๋„ˆ ์ž…์žฅ์—์„œ๋Š” ๊ทธ๋ƒฅ ํ‰๋ฒ”ํ•œ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋ณด์ด๊ณ , ๋ณดํ†ต eth0๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
  • ๋‹ค๋ฅธ ์ชฝ ๋์€ ๋„์ปค bridge ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ๋‹ค.

ํŒจํ‚ท์˜ ์ „์ฒด ๊ฒฝ๋กœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์ปจํ…Œ์ด๋„ˆ ์•ฑ
  โ†’ ์ปจํ…Œ์ด๋„ˆ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค (eth0)
  โ†’ veth (๊ฐ€์ƒ ๋žœ์„ )
  โ†’ ๋„์ปค bridge ๋„คํŠธ์›Œํฌ
  โ†’ ํ˜ธ์ŠคํŠธ
  โ†’ ํ˜ธ์ŠคํŠธ์˜ ์‹ค์ œ NIC
  โ†’ ์ธํ„ฐ๋„ท
์‚ฌ์„ค IP ํ• ๋‹น

bridge์— ์—ฐ๊ฒฐ๋œ ์ปจํ…Œ์ด๋„ˆ๋Š” ์‚ฌ์„ค IP๋ฅผ ๋ฐ›๋Š”๋‹ค.

๋Œ€์ƒ์˜ˆ์‹œ IP์„ค๋ช…
๋…ธํŠธ๋ถ(ํ˜ธ์ŠคํŠธ)192.168.1.10์‹ค์ œ ๋„คํŠธ์›Œํฌ์˜ IP
์ปจํ…Œ์ด๋„ˆ172.17.0.2๋„์ปค ๋‚ด๋ถ€ ์‚ฌ์„ค IP
bridge ์ž์ฒด172.17.0.1๊ฒŒ์ดํŠธ์›จ์ด ์—ญํ• 

bridge๋Š” ๊ฒŒ์ดํŠธ์›จ์ด ์—ญํ• ์„ ํ•œ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ˜ธ์ŠคํŠธ๋กœ ๋‚˜๊ฐ€๋ ค๋ฉด ๋ชจ๋“  ํŒจํ‚ท์„ ์ด ๋ฌธ์œผ๋กœ ๋‚ด๋ณด๋‚ด์•ผ ํ•œ๋‹ค. (์‚ฌ์„ค IP์™€ ๊ณต์ธ IP์˜ ์ฐจ์ด๊ฐ€ ์—ฌ๊ธฐ์„œ ํ•ต์‹ฌ์œผ๋กœ ์ž‘์šฉํ•œ๋‹ค.)


3. ์ฒซ ๋ฒˆ์งธ ์—ฌ์ • - ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ธํ„ฐ๋„ท์œผ๋กœ ๋‚˜๊ฐˆ ๋•Œ (์•„์›ƒ๋ฐ”์šด๋“œ)

์ปจํ…Œ์ด๋„ˆ ์•ˆ์˜ Nginx๊ฐ€ ํŒจํ‚ค์ง€๋ฅผ ๋‚ด๋ ค๋ฐ›๊ฑฐ๋‚˜ ์™ธ๋ถ€ API๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค๊ณ  ํ•˜์ž. ํŒจํ‚ท์€ eth0 โ†’ veth โ†’ bridge โ†’ ํ˜ธ์ŠคํŠธ ์ˆœ์œผ๋กœ ํ˜๋Ÿฌ๊ฐ„๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๊ฐ€ ํ•˜๋‚˜ ํ„ฐ์ง„๋‹ค.

ํŒจํ‚ท์˜ ์ถœ๋ฐœ์ง€ ์ฃผ์†Œ๋Š” 172.17.0.2์ธ๋ฐ, ์ด๊ฑด ๋…ธํŠธ๋ถ ์•ˆ์—์„œ๋งŒ ํ†ตํ•˜๋Š” ์‚ฌ์„ค IP๋‹ค. ์ด๋Œ€๋กœ ์ธํ„ฐ๋„ท์— ๋‚ด๋ณด๋‚ด๋ฉด ์‘๋‹ต์ด ๋Œ์•„์˜ฌ ๊ณณ์ด ์—†๋‹ค. ์ธํ„ฐ๋„ท์˜ ์–ด๋–ค ๋ผ์šฐํ„ฐ๋„ 172.17.0.2๊ฐ€ ์–ด๋””์ธ์ง€ ๋ชจ๋ฅด๋‹ˆ๊นŒ.

NAT (masquerade)

๊ทธ๋ž˜์„œ ํ˜ธ์ŠคํŠธ๊ฐ€ ๋‚˜์„œ์„œ NAT(Network Address Translation)๋ฅผ ํ•ด ์ค€๋‹ค. ๋„์ปค๋Š” ๋’ค์—์„œ iptables ๊ทœ์น™์„ ๊ฑธ์–ด ํŒจํ‚ท์˜ ์ถœ๋ฐœ์ง€ ์ฃผ์†Œ๋ฅผ ๋ฐ”๊ฟ” ์“ด๋‹ค.

๋‚˜๊ฐˆ ๋•Œ:  ์ถœ๋ฐœ์ง€ 172.17.0.2  โ†’  192.168.1.10 (ํ˜ธ์ŠคํŠธ์˜ ์‹ค์ œ IP)
  • ํŒจํ‚ท์ด ํ˜ธ์ŠคํŠธ๋ฅผ ๋– ๋‚˜๋Š” ์ˆœ๊ฐ„, ์‚ฌ์„ค IP 172.17.0.2๊ฐ€ ํ˜ธ์ŠคํŠธ์˜ ์‹ค์ œ IP 192.168.1.10์œผ๋กœ ๋ฐ”๋€Œ๊ณ  ์‹ค์ œ NIC๋ฅผ ํ†ตํ•ด ์ธํ„ฐ๋„ท์œผ๋กœ ๋น ์ ธ๋‚˜๊ฐ„๋‹ค.
  • ์ธํ„ฐ๋„ท ์ชฝ์—์„œ ๋ณด๋ฉด ํŠธ๋ž˜ํ”ฝ์ด ๋…ธํŠธ๋ถ์—์„œ ๊ณง์žฅ ์˜จ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ทธ๋ฆผ์ž๋„ ์•ˆ ๋น„์นœ๋‹ค.
  • ์‘๋‹ต์ด 192.168.1.10์œผ๋กœ ๋Œ์•„์˜ค๋ฉด, ํ˜ธ์ŠคํŠธ๋Š” โ€œ์ด๊ฑด ๊ทธ ์ปจํ…Œ์ด๋„ˆ ๊ฑฐ์˜€์ง€โ€ ํ•˜๊ณ  ๋ชฉ์ ์ง€๋ฅผ ๋‹ค์‹œ 172.17.0.2๋กœ ๋ฐ”๊ฟ” bridge โ†’ veth โ†’ eth0๋กœ ์ „๋‹ฌํ•œ๋‹ค.

๋•๋ถ„์— ์ปจํ…Œ์ด๋„ˆ๋Š” ์ž๊ธฐ ๊ณต์ธ ์ฃผ์†Œ ํ•˜๋‚˜ ์—†์ด๋„ ์ธํ„ฐ๋„ท ์ „์ฒด์— ๋‹ฟ์„ ์ˆ˜ ์žˆ๋‹ค.


4. ๋‘ ๋ฒˆ์งธ ์—ฌ์ • - ์™ธ๋ถ€์—์„œ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋“ค์–ด์˜ฌ ๋•Œ (์ธ๋ฐ”์šด๋“œ)

๋‹ค๋“ค ์—ฌ๊ธฐ์„œ ๋ง‰ํžŒ๋‹ค. Nginx๊ฐ€ ํฌํŠธ 80์—์„œ ๋ฉ€์ฉกํžˆ ๋Œ๊ณ  ์žˆ๋Š”๋ฐ, ๋ธŒ๋ผ์šฐ์ €์—์„œ localhost:80์ด๋‚˜ ๋…ธํŠธ๋ถ IP๋กœ ์ ‘์†ํ•˜๋ฉด ์‘๋‹ต์ด ์—†๋‹ค.

์ด์œ ๋Š” ๊ฐ„๋‹จํ•˜๋‹ค.

  • ์ปจํ…Œ์ด๋„ˆ IP 172.17.0.2๋Š” ์‚ฌ์„ค ์ฃผ์†Œ๋ผ ๋…ธํŠธ๋ถ ๋ฐ–์—์„œ๋Š” ์ง์ ‘ ๋‹ฟ์„ ์ˆ˜ ์—†๋‹ค.
  • ๊ฒŒ๋‹ค๊ฐ€ ํ˜ธ์ŠคํŠธ๋Š” ๊ธฐ๋ณธ ์ƒํƒœ์—์„œ ์ปจํ…Œ์ด๋„ˆ๋กœ ์•„๋ฌด๊ฒƒ๋„ ๋„˜๊ฒจ์ฃผ์ง€ ์•Š๋Š”๋‹ค. Nginx๋Š” ๊ท€๋ฅผ ์—ด๊ณ  ์žˆ์ง€๋งŒ, ์™ธ๋ถ€์—์„œ ๊ทธ ์‚ฌ์„ค ๋„คํŠธ์›Œํฌ๋กœ ๋“ค์–ด๊ฐˆ ๋ฌธ ์ž์ฒด๊ฐ€ ์—†๋‹ค.
ํฌํŠธ ๊ฒŒ์‹œ (port publishing)

๊ทธ๋ž˜์„œ ๋ฌธ์„ ์ง์ ‘ ์—ด์–ด ์ค˜์•ผ ํ•œ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋„์šธ ๋•Œ -p ํ”Œ๋ž˜๊ทธ๋ฅผ ๋ถ™์ธ๋‹ค.

docker run -p 8080:80 nginx

๋„์ปค์—๊ฒŒ โ€œ๋…ธํŠธ๋ถ์˜ 8080 ํฌํŠธ๋กœ ๋“ค์–ด์˜ค๋Š” ํŠธ๋ž˜ํ”ฝ์„ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ 80 ํฌํŠธ๋กœ ๋ณด๋‚ด๋ผโ€๊ณ  ์ง€์‹œํ•˜๋Š” ์…ˆ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋„์ปค๋Š” ๋˜ ๋‹ค๋ฅธ NAT ๊ทœ์น™(DNAT, ๋ชฉ์ ์ง€ ์ฃผ์†Œ ๋ณ€ํ™˜)์„ ํ•˜๋‚˜ ๋” ์จ ๋‘”๋‹ค.

๋“ค์–ด์˜ฌ ๋•Œ:  ๋ชฉ์ ์ง€ ๋…ธํŠธ๋ถ:8080  โ†’  172.17.0.2:80

์ด์ œ 8080์œผ๋กœ ๋“ค์–ด์˜จ ์š”์ฒญ์€ ๋ชฉ์ ์ง€๊ฐ€ 172.17.0.2:80์œผ๋กœ ๋ฐ”๋€ ๋’ค bridge โ†’ eth0๋ฅผ ๊ฑฐ์ณ Nginx๊นŒ์ง€ ๋‹ฟ๋Š”๋‹ค.

0.0.0.0 ๋ฐ”์ธ๋”ฉ ํ•จ์ •

์ปจํ…Œ์ด๋„ˆ ์•ˆ์˜ ์•ฑ์€ ๋ฐ˜๋“œ์‹œ ๋ชจ๋“  ์ฃผ์†Œ(0.0.0.0)์—์„œ ์ˆ˜์‹ ํ•ด์•ผ ํ•œ๋‹ค. 127.0.0.1์—๋งŒ ๋ฐ”์ธ๋”ฉ๋˜์–ด ์žˆ์œผ๋ฉด, ํฌ์›Œ๋”ฉ๋œ ํŠธ๋ž˜ํ”ฝ์ด ๋ฒฝ์— ๋ถ€๋”ชํ˜€ ํฌํŠธ๋ฅผ ๊ฒŒ์‹œํ–ˆ์–ด๋„ connection refused๊ฐ€ ๋‚œ๋‹ค. โ€œํฌํŠธ๋ฅผ ์—ด์—ˆ๋Š”๋ฐ ์™œ ์•ˆ ๋˜์ง€?โ€์˜ ํ”ํ•œ ์›์ธ์ด๋‹ค.


5. ๋‘ ๊ทœ์น™์œผ๋กœ ์ •๋ฆฌ

ํ˜ธ์ŠคํŠธ๊ฐ€ ๋’ค์—์„œ ์ฑ™๊ธฐ๋Š” NAT ๊ทœ์น™์€ ๊ฒฐ๊ตญ ๋‘ ๊ฐ€์ง€๋กœ ์ขํ˜€์ง„๋‹ค.

๋ฐฉํ–ฅ๋ณ€ํ™˜ ๋Œ€์ƒํšจ๊ณผ
์•„์›ƒ๋ฐ”์šด๋“œ์ถœ๋ฐœ์ง€ IP ์žฌ์ž‘์„ฑ (masquerade)์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ˜ธ์ŠคํŠธ ์‹ ์›์„ ๋นŒ๋ ค ์ธํ„ฐ๋„ท๊ณผ ํ†ต์‹ 
์ธ๋ฐ”์šด๋“œ๋ชฉ์ ์ง€ IP ์žฌ์ž‘์„ฑ (DNAT)๋ช…์‹œ์ ์œผ๋กœ ๊ฒŒ์‹œํ•œ ํฌํŠธ์— ํ•œํ•ด ์™ธ๋ถ€ โ†’ ์ปจํ…Œ์ด๋„ˆ ๋„๋‹ฌ

์ปจํ…Œ์ด๋„ˆ๋Š” ์‹ค์ œ NIC๋ฅผ ์ ˆ๋Œ€ ์ง์ ‘ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค. ํ˜ธ์ŠคํŠธ๊ฐ€ ์ค‘๊ฐ„์— ๋ผ์–ด ์–‘๋ฐฉํ–ฅ์„ ํ†ต์งธ๋กœ ๋ฒˆ์—ญํ•ด ์ค€๋‹ค.

ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ… ํœด๋ฆฌ์Šคํ‹ฑ

์ด ํ๋ฆ„์ด ๋จธ๋ฆฟ์†์— ํ•œ ๋ฒˆ ๊ทธ๋ ค์ง€๋ฉด ๋ฌธ์ œ ์ง„๋‹จ์ด ๋ถ€์ฉ ๋นจ๋ผ์ง„๋‹ค.

  • ์ปจํ…Œ์ด๋„ˆ๋Š” ์ธํ„ฐ๋„ท์— ๋‚˜๊ฐ€๋Š”๋ฐ, ์™ธ๋ถ€์—์„œ ์ปจํ…Œ์ด๋„ˆ์— ๋ชป ๋“ค์–ด๊ฐ„๋‹ค โ†’ ํฌํŠธ ๊ฒŒ์‹œ(-p)๋ฅผ ๋น ๋œจ๋ฆผ
  • ๊ฐ™์€ bridge์˜ ๋‘ ์ปจํ…Œ์ด๋„ˆ๋Š” ํ†ต์‹ ๋˜๋Š”๋ฐ ์„ธ ๋ฒˆ์งธ๋งŒ ์•ˆ ๋œ๋‹ค โ†’ ๊ทธ ์ปจํ…Œ์ด๋„ˆ๋งŒ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ์— ์žˆ์Œ
  • ํฌํŠธ๋ฅผ ๊ฒŒ์‹œํ–ˆ๋Š”๋ฐ๋„ connection refused โ†’ ์•ฑ์ด 127.0.0.1์—๋งŒ ๋ฐ”์ธ๋”ฉ๋จ (0.0.0.0 ํ•„์š”)

6. ๊ด€๋ จ ๋…ธํŠธ

  • Docker ๋„คํŠธ์›Œํฌ - bridge/overlay/macvlan ๋“ฑ ๋“œ๋ผ์ด๋ฒ„ ์ข…๋ฅ˜์™€ ๊ณ„์ธต ๊ตฌ์กฐ, macOS์™€ Linux ์ฐจ์ด. ์ด ๊ธ€์˜ NAT/ํฌํŠธ ๊ฒŒ์‹œ ํ๋ฆ„๊ณผ ์ƒํ˜ธ ๋ณด์™„
  • 8. IP ์ฃผ์†Œ - ์‚ฌ์„ค IP์™€ ๊ณต์ธ IP, NAT์˜ ๋ฐฐ๊ฒฝ
  • 6. ์Šค์œ„์น˜ - bridge ๋„คํŠธ์›Œํฌ๊ฐ€ ํ‰๋‚ด ๋‚ด๋Š” ๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต ์Šค์œ„์น˜
  • Dockerfile, Docker ๋ช…๋ น์–ด - -p ๋“ฑ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰ ์˜ต์…˜