Server

[Docker] ์ปจํ…Œ์ด๋„ˆ ์ ‘์†์ด ๋๋‹ค๊ฐ€ ์•ˆ ๋๋‹ค๊ฐ€... Docker 25.0.0 version ์ด์Šˆ

kiritoni 2025. 3. 26. 00:27
๋ฐ˜์‘ํ˜•

๐Ÿค” ๋ฌธ์ œ ์ƒํ™ฉ

ํ•œ ์„œ๋ฒ„์˜ Docker ์ปจํ…Œ์ด๋„ˆ์— SSH ์ ‘์†์ด ๋˜์—ˆ๋‹ค๊ฐ€ ์•ˆ ๋˜์—ˆ๋‹ค๊ฐ€ ํ•˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜๊ณ ,

์–ด์ฐŒ์ €์ฐŒ ์ ‘์†์ด ๋˜๋”๋ผ๋„ ์‰˜ ์ž…๋ ฅ ๋ฐ˜์‘์ด ๋งค์šฐ ๋А๋ ค์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋‹ค. 

ํ•ด๊ฒฐ์„ ์œ„ํ•ด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์žฌ์ƒ์„ฑํ–ˆ์ง€๋งŒ, ๋ฌธ์ œ๊ฐ€ ์ง€์†์ ์œผ๋กœ ๋ฐœ์ƒํ•˜์˜€๋‹ค. 

 

์„œ๋ฒ„ ์ž์ฒด์—์„œ ์ •๋ง์ •๋ง ๋ฌธ์ œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋ฉด...

 

Docker์˜ ๋„คํŠธ์›Œํฌ ์„ค์ •, ํŠนํžˆ ๊ณต์šฉ ๋ธŒ๋ฆฟ์ง€ ๋„คํŠธ์›Œํฌ์—์„œ ๋ฐœ์ƒํ•˜๋Š” MAC ์ฃผ์†Œ๊ฐ€ ์ถฉ๋Œ ๋ฌธ์ œ๋ฅผ ์˜์‹ฌํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

ํ˜ธ์ŠคํŠธ์„œ๋ฒ„์—์„œ ARP(Address Resolution Protocol) ํ…Œ์ด๋ธ”์„ ์ ๊ฒ€ํ•ด๋ณด๋ฉด, ๋ผ์šฐํŒ… ๊ด€๋ จ ๋ฌธ์ œ๋ฅผ ํŒŒ์•…ํ•ด๋ณด๋Š” ๋ฐ ๋„์›€์ด ๋œ๋‹ค. 

์—ฌ๊ธฐ์—์„œ ARP ํ…Œ์ด๋ธ”์€ IP ์ฃผ์†Œ๋ฅผ MAC ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋งคํ•‘์„ ์ €์žฅํ•˜๊ณ  ์žˆ๋‹ค.

toni@LAB9:~$ arp -an | grep "172.17.0"
? (172.17.0.4) at 02:42:ac:11:00:0a [ether] on docker0
? (172.17.0.7) at 02:42:ac:11:00:09 [ether] on docker0
? (172.17.0.10) at <incomplete> on docker0
? (172.17.0.9) at 02:42:ac:11:00:05 [ether] on docker0
? (172.17.0.3) at 02:42:ac:11:00:06 [ether] on docker0

 

์œ„์™€ ๊ฐ™์ด incomplete๋กœ ํ‘œ์‹œ๋˜๋Š” ํ•ญ๋ชฉ์ด ๋ณด์ด๋ฉด, MAC ์ฃผ์†Œ ์ถฉ๋Œ๋กœ ์ธํ•ด ๋ผ์šฐํŒ…์ด ์ œ๋Œ€๋กœ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š๊ณ  ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ํฌ๋‹ค.

์ด ํ˜„์ƒ์€ Docker ๋ฒ„์ „ 25.0.0์—์„œ ๋ฐœ๊ฒฌ๋œ MAC ์ฃผ์†Œ ์ถฉ๋Œ ๋ฒ„๊ทธ์™€ ๊ด€๋ จ์ด ์žˆ๋‹ค. 

 

https://github.com/moby/moby/issues/47146

 

MAC address conflict since v25 · Issue #47146 · moby/moby

Description I understand that, unless --mac-address is specified when calling docker run that a MAC address will be generated on container start with the prefix 02:42:ac and then the last 3 compone...

github.com

https://forums.docker.com/t/duplicate-mac-addresses-among-containers-in-docker-network/139644/2

 

Duplicate mac addresses among containers in docker network

Yes, I just encountered this and found this post. In the article at https://macaddress.io/faq/how-to-recognise-a-docker-container-by-its-mac-address an algorithm for mac address generation is described. I guess it can return duplicated MacAddresses sometim

forums.docker.com

 

โœ… Docker๊ฐ€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด์„œ ํ•˜๋Š” ์ผ

Docker๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ eth0๋ผ๋Š” ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๋„์ปค๊ฐ€ ์™ธ๋ถ€์™€ ํ†ต์‹ ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฉฐ, ์—ฌ๊ธฐ์— MAC ์ฃผ์†Œ๊ฐ€ ์ž๋™์œผ๋กœ ํ• ๋‹น๋œ๋‹ค. `--mac-address` ์˜ต์…˜์„ ๋ช…์‹œํ•˜์ง€ ์•Š์œผ๋ฉด, docker๋Š” ๋‚ด๋ถ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด MAC์ฃผ์†Œ๋ฅผ ์ž„์˜๋กœ ์ƒ์„ฑํ•œ๋‹ค. ์ด๋•Œ ์ƒ์„ฑ๋œ MAC ์ฃผ์†Œ๋Š” `02:42:ac` ์ ‘๋‘์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๋’ค์˜ 3๊ฐœ ๊ตฌ์„ฑ์š”์†Œ๋Š” ์ปจํ…Œ์ด๋„ˆ์˜ IP์ฃผ์†Œ๋ฅผ 16์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•œ ๊ฐ’์—์„œ ํŒŒ์ƒ๋œ๋‹ค.

 

๐Ÿ› ๏ธ ๋„์ปค ๋„คํŠธ์›Œํฌ ๋“œ๋ผ์ด๋ฒ„ ์ข…๋ฅ˜

Docker๋Š” ๋‹ค์–‘ํ•œ ๋„คํŠธ์›Œํฌ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ๊ฐ๊ฐ์˜ ๋ชฉ์ ์— ๋งž๊ฒŒ ์‚ฌ์šฉํ•œ๋‹ค.

  • bridge: ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ํŠน๋ณ„ํ•œ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋„คํŠธ์›Œํฌ. ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ ํ†ต์‹ ๊ณผ ์™ธ๋ถ€ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•œ ๊ตฌ์กฐ์ด๋‹ค.
  • host: ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ˜ธ์ŠคํŠธ์˜ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹. ํฌํŠธ ๋งคํ•‘์ด ๋ถˆํ•„์š”ํ•˜๋ฉฐ, ์„ฑ๋Šฅ ์ด์ ์ด ์žˆ์ง€๋งŒ ๋ณด์•ˆ ์ธก๋ฉด์—์„œ ์ฃผ์˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
  • overlay: ์—ฌ๋Ÿฌ ํ˜ธ์ŠคํŠธ์— ๋ถ„์‚ฐ๋˜์–ด์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ๊ฐ„ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. Docker Swarm๋“ฑ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํ™˜๊ฒฝ์—์„œ ์œ ์šฉํ•˜๋‹ค. 
  • macvlan: ์ปจํ…Œ์ด๋„ˆ์— ๊ณ ์œ ํ•œ MAC ์ฃผ์†Œ๋ฅผ ํ• ๋‹นํ•˜์—ฌ ์‹ค์ œ ๋„คํŠธ์›Œํฌ์—์„œ ์ƒ์˜ ๋ฌผ๋ฆฌ์  ์žฅ์น˜์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ํ•œ๋‹ค. ๋„คํŠธ์›Œํฌ ๊ด€๋ฆฌ์ž ์ˆ˜์ค€์˜ ์ œ์–ด๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.
  • none: ๋„คํŠธ์›Œํฌ๋ฅผ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”ํ•œ๋‹ค. ์ฃผ๋กœ ์‚ฌ์šฉ์ž ์ •์˜ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜, ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์—์„œ ๋ณ„๋„ ๋„คํŠธ์›Œํฌ ์„ค์ •์„ ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
๐ŸŽผ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์ด๋ž€?
์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์ด๋ผ๋Š” ๋‹จ์–ด๋Š” ์˜ค์ผ€์ŠคํŠธ๋ผ ์ง€ํœ˜์ฒ˜๋Ÿผ ์—ฌ๋Ÿฌ ์š”์†Œ๋ฅผ ์กฐํ™”๋กญ๊ฒŒ ์šด์˜ํ•˜๋Š” ๊ฑธ ๋งํ•œ๋‹ค. IT์—์„œ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์€ ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋“ค์„ ๋งˆ์น˜ ํ•˜๋‚˜์˜ ์‹œ์Šคํ…œ์ฒ˜๋Ÿผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. Docker Swarm์€ ๋„์ปค์—์„œ ์ž์ฒด์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๊ฒฝ๋Ÿ‰ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ๋„๊ตฌ์ด๋‹ค. ์—ฌ๋Ÿฌ ๋…ธ๋“œ(์„œ๋ฒ„)๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ๋ฌถ์–ด์ฃผ์–ด ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์ ์ธ ๋„์ปค ํ™˜๊ฒฝ์ฒ˜๋Ÿผ ์šด์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹จ์ˆœํ•œ ๊ตฌ์กฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ์†Œ๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ๋‚˜, ๊ฐ„๋‹จํ•œ ์šด์˜ ํ™˜๊ฒฝ์— ์ ํ•ฉํ•˜๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋„ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜์˜ ์ผ์ข…์ด๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” Google์ด ๊ฐœ๋ฐœํ•˜๊ณ  CNCF์— ๊ธฐ๋ถ€ํ•œ ๊ฐ€์žฅ ๋Œ€์ค‘์ ์ธ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํ”Œ๋žซํผ์ด๋‹ค. Swarm๋ณด๋‹ค ํ›จ์”ฌ ๊ฐ•๋ ฅํ•˜๊ณ , ์„ธ๋ฐ€ํ•œ ์ œ์–ด๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ณต์žกํ•˜์ง€๋งŒ ๋Œ€๊ทœ๋ชจ ์„œ๋น„์Šค ์šด์˜์— ์ ํ•ฉํ•˜๋‹ค.

 

 

โฉ Docker v25์—์„œ ๋ฐœ์ƒํ•˜๋Š” MAC ์ฃผ์†Œ ์ถฉ๋Œ ๋ฌธ์ œ

์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๋Š” Docker v25.0.0 ์ดํ›„๋ถ€ํ„ฐ docker start ๋ช…๋ น์œผ๋กœ ์ธํ•ด ์ปจํ…Œ์ด๋„ˆ IP์ฃผ์†Œ๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด๋„ ๊ธฐ์กด์— ํ• ๋‹น๋œ MAC ์ฃผ์†Œ๋ฅผ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋กœ ์ธํ•ด ๋™์ผํ•œ ๋„คํŠธ์›Œํฌ ๋Œ€์—ญ ๋‚ด์— ์ค‘๋ณต๋œ MAC ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง„ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์กด์žฌํ•˜๊ฒŒ ๋˜๊ณ , ARP ํ…Œ์ด๋ธ” ์ƒ์—์„œ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋ฉด์„œ ํ†ต์‹  ์ง€์—ฐ ๋˜๋Š” ์—ฐ๊ฒฐ ์‹คํŒจ ํ˜„์ƒ์ด ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ๋‹ค. 

 

๐Ÿ’ก ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

๋”ฐ๋ผ์„œ ์œ„์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”

1. Docker ๋ฒ„์ „์„ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•ด์„œ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” v24.x ์—์„œ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ , ๋ฒ„๊ทธ๋Š” ๋ฐ”๋กœ ๋‹ค์Œ ๋ฒ„์ „์—์„œ ํŒจ์น˜๋˜์—ˆ๋‹ค. 

2. ๋˜๋Š” `--mac-address` ์˜ต์…˜์„ ๋ช…์‹œ์ ์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ ๊ฐ„ MAC ์ฃผ์†Œ๊ฐ€ ๊ฒน์น˜์ง€ ์•Š๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค. 

docker run --mac-address <MAC address> [Image Name] [Options...]

3. `ifconfig`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜๋™์œผ๋กœ MAC ์ฃผ์†Œ๋ฅผ ์„ค์ •ํ•ด์ค„ ์ˆ˜๋„ ์žˆ๋‹ค. 

ifconfig eth0 down
ifconfig eth0 hw ether <MAC address>
ifconfig eth0 up

 

 

๋ฌธ์ œ๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ 1๋ฒˆ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•˜์˜€๋‹ค. Docker ํ™˜๊ฒฝ์—์„œ ๋„คํŠธ์›Œํฌ ๋ฌธ์ œ๋Š” ์ •๋ง ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์›์ธ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€ ๊ฒƒ ๊ฐ™๋‹ค. ํŠนํžˆ Docker ์ž์ฒด ๋ฒ„๊ทธ๋กœ ์ธํ•œ MAC ์ฃผ์†Œ ์ถฉ๋Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๋Š”, ์„œ๋ฒ„ ๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ ๋‚ด์—์„œ ๋””๋ฒ„๊น…์œผ๋กœ ์žก์•„๋‚ด๊ธฐ ์–ด๋ ต๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๊ฐ€ ๋‹ค์‹œ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ARP ํ…Œ์ด๋ธ” ํ™•์ธ โžก๏ธ Docker ๋„คํŠธ์›Œํฌ ๊ตฌ์กฐ ์ดํ•ด โžก๏ธ ๋ฒ„์ „ ์ด์Šˆ ํ™•์ธ์˜ ์ˆœ์„œ๋กœ ์ ‘๊ทผํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค. 

๋ฐ˜์‘ํ˜•