Cloud Engineering/Docker ๐Ÿณ

[Docker] ๋„์ปค ๋„คํŠธ์›Œํฌ ์ข…๋ฅ˜์™€ ๋ช…๋ น์–ด

minjiwoo 2023. 2. 2. 17:02
728x90

1. Docker Network ์•„ํ‚คํ…์ฒ˜ 

 

๋„คํŠธ์›Œํฌ์™€ ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ๋Š” ๋„คํŠธ์›Œํฌ 

  • Docker Host ์˜ ๊ธฐ๋ณธ Bridge Network ์ธํ„ฐํŽ˜์ด์Šค : docker0 
    ๊ทธ๋ฆผ ์˜ˆ์‹œ๋กœ ๋ณด๋ฉด docker0์€ ํ˜ธ์ŠคํŠธ์˜ eth0 (192.168.0.2)์™€ ์—ฐ๊ฒฐ๋˜์–ด์žˆ๋‹ค. 
  • Docker Container ์˜ ๊ธฐ๋ณธ Bridge Network ์ธํ„ฐํŽ˜์ด์Šค : vethXXX 

 

2. Docker Network ๊ด€๋ จ ๋ช…๋ น์–ด 

2-1 Docker Network ์ƒ์„ธ ์ •๋ณด ํ™•์ธ

docker network inspect NETWORK_NAME

2-2 Docker Network ์ƒ์„ฑ

$ docker network create [OPTION] NETWORK_NAME

๋„์ปค๋Š” IP๋ฅผ 172.17.0.X ํ˜•ํƒœ๋กœ ์ˆœ์ฐจ์ ์œผ๋กœ IP๋ฅผ ๋‚˜๋ˆ ์ฃผ๊ฒŒ ๋œ๋‹ค. 

2-3 Docker Network ์ƒ์„ฑ ์˜ต์…˜

-d , --driver string ๋„คํŠธ์›Œํฌ ์ข…๋ฅ˜, ์˜ต์…˜์„ ์ง€์ •ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์€ bridge ๋„คํŠธ์›Œํฌ์ด๋‹ค ! 
--gateway strings ๊ฒŒ์ดํŠธ์›จ์ด ์ฃผ์†Œ 
--subnet strings ์„œ๋ธŒ๋„ท (๋„คํŠธ์›Œํฌ ๋Œ€์—ญ)

2-4 ๋„คํŠธ์›Œํฌ๋ฅผ ์ง€์ •ํ•˜์—ฌ Docker Container ์ƒ์„ฑ ๋ฐ ์‹คํ–‰

$ docker container run -dt —network NETWORK —name CONTAINER centos:7

[user@localhost ~]$ docker container run -dt --network net1 --name centos-11 centos:7
b79a2f0c864c19a88449138abc48d40e6db85f5e916026868042d235b2be4fa9
[user@localhost ~]$ docker run -dt --network net1 --name centos-12 centos:7
e84586ac82e0bf6886f89e5dde40a97dcdc43bfc33abf0d07ff99d2463493542

 

2-5 Docker Network ์‚ญ์ œ 

docker network rm NETWORK

 

2-6 ์ถ”๊ฐ€๋กœ Network ์—ฐ๊ฒฐํ•˜๊ธฐ 

docker network connect NETWORK CONTAINER

 

2-7 Network ์—ฐ๊ฒฐ ํ•ด์ œํ•˜๊ธฐ 

docker network disconnect NETWORK CONTAINER

 

3. Bridge Network 

Bridge Network  : Docker ๋‚ด๋ถ€์— ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  Docker Host์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ์™€ ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ๋Š” ๋„คํŠธ์›Œํฌ 

$ docker create network -d bridge net1
$ docker container run -dt --network net1 --name centos-11 centos:7

4. Host Network 

  • Docker Host์˜ ๋„คํŠธ์›Œํฌ๋ฅผ ์ง์ ‘ ๊ณต์œ ํ•˜๋Š” ๋„คํŠธ์›Œํฌ 
  • Docker Host์˜ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Docker ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‚ฌ์šฉ์ค‘์ธ ํฌํŠธ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ -> ์ปจํ…Œ์ด๋„ˆ๊ฐ€ 80 ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ˜ธ์ŠคํŠธ๋กœ 80 ํฌํŠธ๋กœ ์ ‘์†ํ•  ์ˆ˜ ์—†์Œ 
docker container run -dt --network host --name centos-host centos:7

 

5. Null (None) Network

๋„คํŠธ์›Œํฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋Š” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋„คํŠธ์›Œํฌ๋กœ ์™ธ๋ถ€์™€ ๋‹จ์ ˆ๋จ. ์™ธ๋ถ€๋กœ ์œ ์ถœ๋˜๋ฉด ์•ˆ๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ์˜ ๊ฒฝ์šฐ null network๋กœ ๊ตฌ์„ฑํ•œ๋‹ค. 

docker run -it --network none --name CONTAINER_NAME IMAGE

[์˜ˆ์‹œ]

ping test๋ฅผ ํ•˜๋ฉด ์ ‘์†์ด ๋˜์ง€ ์•Š๋Š”๋‹ค. 

[user@localhost ~]$ docker run -it --network none --name container-null busybox:latest

/ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever

/ # ping -c 3 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
ping: sendto: Network is unreachable

loopback interface๋งŒ ์žˆ๊ณ  ๋„คํŠธ์›Œํฌ ์นด๋“œ๊ฐ€ ์•„์˜ˆ์—†๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค !

busybox : ๋ฆฌ๋ˆ…์Šค์—์„œ ์‹œ์Šคํ…œ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ๋ชจ์•„๋†“์€ ๊ฒƒ

 

6. MACVLAN Network 

ํ˜ธ์ŠคํŠธ์˜ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ฐ™์€ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐํ•˜๋Š” ์œ ํ˜• 

https://docs.docker.com/network/

 

Networking overview

 

docs.docker.com

 

728x90