Default Networks


  • Docker ๋ฅผ ์„ค์น˜ํ•˜๋ฉด ์ž๋™์œผ๋กœ 3๊ฐœ์˜ Network ๋ฅผ ์ƒ์„ฑํ•จ
    • Bridge
    • none(null)
    • host
  • Container ๋ฅผ ๋‹ค๋ฅธ Network ์™€ ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด Network ๋ฅผ ์ง€์ •ํ•ด์•ผํ•จ
    • docker run Ubuntu --network=none
    • docker run Ubuntu --network=host

Bridge Network

  • Container ์—์„œ ์‚ฌ์šฉํ•˜๋Š” Default Network ๋กœ Docker ๊ฐ€ Host ์— ์ƒ์„ฑํ•œ Private Internal Network
  • ๋ชจ๋“  Container ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด Network ์— ์—ฐ๊ฒฐ๋˜๋ฉฐ ๋ณดํ†ต 172.17 ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋‚ด๋ถ€ IP ๊ฐ€ ํ• ๋‹น๋จ
    • ์ด ๋‚ด๋ถ€ IP ๋ฅผ ์‚ฌ์šฉํ•ด Container ๋ผ๋ฆฌ ์—‘์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Œ

none Network

  • Container ๊ฐ€ ์•„๋ฌด๋Ÿฐ Network ์—๋„ ์†ํ•˜์ง€ ์•Š์Œ
    • ์ฆ‰, ์™ธ๋ถ€ Network ๋‚˜ ๋‹ค๋ฅธ Container ์— ์—‘์„ธ์Šคํ•  ์ˆ˜ ์—†์Œ

host Network

  • Container ๋ฅผ Host Network ์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ์‹
  • ํฌํŠธ ๋งคํ•‘ ์—†์ด Host ์˜ ํฌํŠธ๋กœ ์™ธ๋ถ€ ์ ‘์†์ด ๊ฐ€๋Šฅํ•จ

User-Defined Networks


  • Docker ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•˜๋‚˜์˜ ๋‚ด๋ถ€ Bridge Network ๋งŒ ์ƒ์„ฑ
  • docker network create --driver bridge --subnet 182.18.0.0/16 custom-isolated-network
    • ์œ„ ๋ช…๋ น์–ด๋กœ User-Defined Network ์ƒ์„ฑ ๊ฐ€๋Šฅ
  • docker network ls ๋ช…๋ น์–ด๋กœ ๋ชจ๋“  Network ๋ชฉ๋ก์„ ํ‘œ์‹œ ๊ฐ€๋Šฅ

Inspect Network


  • docker inspect {CONTAINER ID} ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด Network ์„ค์ •๊ณผ IP ์ฃผ์†Œ ํ™•์ธ ๊ฐ€๋Šฅ

Embedded DNS


  • Docker Host ์— ์žˆ๋Š” ๋ชจ๋“  Container ๋Š” ์ด๋ฆ„์œผ๋กœ ์„œ๋กœ ์—‘์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Œ
  • Docker ์—๋Š” Container ๋“ค์ด ์ด๋ฆ„์œผ๋กœ ์„œ๋กœ ์—‘์„ธ์Šคํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” DNS ์„œ๋ฒ„๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ์Œ
    • ๋‚ด์žฅ DNS ์„œ๋ฒ„๋Š” ํ•ญ์ƒ 127.0.0.11 ์ฃผ์†Œ๋กœ ์ž‘๋™ํ•จ
  • Docker ๋Š” Network Namespace ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ Container ์— ๋ณ„๊ฐœ์˜ Namespace ๋ฅผ ์ƒ์„ฑํ•จ
  • ๊ทธ๋ฆฌ๊ณ  Virtual Ethernet Pair ์„ ์‚ฌ์šฉํ•ด Container ๋ฅผ ์—ฐ๊ฒฐ

์‹ค์Šต


M1 macOS ์—์„œ Linux ๊ฐ€์ƒ๋จธ์‹  ์ƒ์„ฑํ•˜๊ธฐ

# lima ์„ค์น˜
 meatsby ๎‚ฐ ~ ๎‚ฐ brew install lima
Warning: lima 2.0.2 is already installed and up-to-date.
To reinstall 2.0.2, run:
  brew reinstall lima
 
# limactl start ๋กœ linux-vm ์ƒ์„ฑ
 meatsby ๎‚ฐ ~ ๎‚ฐ limactl start
? Creating an instance "default"  [Use arrows to move, type to filter]
> Proceed with the current configuration
  Open an editor to review or modify the current configuration
  Choose another template (docker, podman, archlinux, fedora, ...)
  Exit
 
# ์ฒ˜์Œ vm ์ƒ์„ฑ ํ›„ lima ๊ด€๋ จ ์„ค์ •ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ๋‹ค
 meatsby ๎‚ฐ ~ ๎‚ฐ ls ~/.lima
_config default
 
# vm ์— ์ ‘์† ํ›„ root ๋กœ ๋ณ€๊ฒฝ
 meatsby ๎‚ฐ ~ ๎‚ฐ lima
 meatsby@lima-default:~$ sudo -i

Linux ๊ธฐ๋ฐ˜์œผ๋กœ ๋Œ์•„๊ฐ€๋Š” Docker ๋ฅผ ์ž์„ธํžˆ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด Linux ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•ด๋ณด์ž. macOS ์—์„œ Linux ๊ฐ€์ƒ๋จธ์‹ ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ CNCF Incubating Project ์ธ Lima ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

docker0 ์™€ veth

# docker ์„ค์น˜
root@lima-default:~# curl -fsSL https://get.docker.com | sudo sh
 
# bridge-utils ์„ค์น˜
root@lima-default:~# apt install bridge-utils
 
root@lima-default:~# whatis brctl
brctl (8)            - ethernet bridge administration
 
# ํ™•์ธํ•ด๋ณด๋ฉด docker ๊ฐ€ ์ƒ์„ฑํ•œ docker0 bridge ๊ฐ€ ๋ณด์ธ๋‹ค
root@lima-default:~# brctl show
bridge name	bridge id		STP enabled	interfaces
docker0		8000.52a2724b9bb3	no
 
# Container 3๊ฐœ ๋งŒ๋“ค๊ณ 
root@lima-default:~# docker run -it -d ubuntu:25.10
1e17162852539c94d59688ec70b0db207bb193e6b31efa854e5c6ff7b1742829
root@lima-default:~# docker run -it -d ubuntu:25.10
d63ceb0602e458aee988e0e95ecb5974e327a3f13c8ef875b7fee86bbfa512ed
root@lima-default:~# docker run -it -d ubuntu:25.10
cd8ec41d1eceb7fc56380c49a444f6ec5ab96dc619a91044008de57d4cb3a670
 
# docker0 ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด veth 3๊ฐœ๊ฐ€ ์—ฐ๊ฒฐ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค
root@lima-default:~# brctl show
bridge name	bridge id		STP enabled	interfaces
docker0		8000.52a2724b9bb3	no		veth139bafa
							veth911300c
							vethf7ff838

์ผ๋ฐ˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ปจํ…Œ์ด๋„ˆํ™”๋๋‹ค๋Š” ๊ฑด namespace ์™€ cgroup ์ด ์ ์šฉ๋๋‹ค๋Š” ์ด์•ผ๊ธฐ๊ณ , ๊ทธ ๋ง์€ ๋…๋ฆฝ๋œ linux ๋จธ์‹ ์ฒ˜๋Ÿผ ๋‹ค๋ค„์ง„๋‹ค๋Š” ์ด์•ผ๊ธฐ๊ฐ€ ๋œ๋‹ค.

References