Default Networks
- Docker 를 설치하면 자동으로 3개의 Network 를 생성함
- Bridge
- none(null)
- host
- Container 를 다른 Network 와 연결하려면 아래와 같이 Network 를 지정해야함
docker run Ubuntu --network=nonedocker 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 -iLinux 기반으로 돌아가는 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 머신처럼 다뤄진다는 이야기가 된다.