๐ค ๋ฌธ์ ์ํฉ
ํ ์๋ฒ์ 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 ๋คํธ์ํฌ ๊ตฌ์กฐ ์ดํด โก๏ธ ๋ฒ์ ์ด์ ํ์ธ์ ์์๋ก ์ ๊ทผํ๋ฉด ๋ฌธ์ ๋ฅผ ๋น ๋ฅด๊ฒ ํด๊ฒฐํ ์ ์์ ๊ฒ ๊ฐ๋ค.
'Server' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Ubuntu์ ์น์๋ฒ๋ฅผ ๋ง๋ค๊ณ , ๊ฐ๋จํ ์ด๋ฏธ์ง์ ์ค๋ช ๋์ฐ๊ธฐ (0) | 2025.03.31 |
---|---|
๋งฅ๋ถ M3์นฉ์์ UTM์ผ๋ก Ubuntu 24.04.2 dekstop ์ค์น (0) | 2025.03.26 |
[Linux] NIC๊ฐ ์ด๋์ (route, traceroute, ifconfig) (0) | 2025.03.13 |
[Linux] ์๋ฒ์ ์ฌ์ฉ์๋ฅผ ์ถ๊ฐํ๊ณ , ๊ด๋ฆฌ์ ๊ทธ๋ฃน์ ์ถ๊ฐํ๊ธฐ (0) | 2025.03.10 |
VLAN (0) | 2025.01.21 |