도커 네트워크 설정
도커 네트워크는 도커 컨테이너 간에 통신을 가능하게 하는 가상 네트워크이다. 도커 네트워크를 사용하면 컨테이너를 별도의 네트워크에 연결하여 서로 통신할 수 있다.
도커 네트워크는 다음과 같은 유형이 있다.
- Bridge 네트워크 : 기본 네트워크 유형으로, 호스트 머신의 네트워크에 연결된다.
- Host 네트워크 : 컨테이너가 호스트 머신의 네트워크와 직접 연결된다.
- None 네트워크 : 컨테이너가 네트워크에 연결되지 않는다.
도커 네트워크를 설정하는 방법은 다음과 같다.
# 도커 네트워크 확인
sudo docker network ls
# Bridge 네트워크 생성
sudo docker network create --driver=bridge my-network1
# Host 네트워크 생성
sudo docker network create --driver=host my-network2
# None 네트워크 생성
sudo docker network create --driver=none my-network3
# 임의의 네트워크 대역 설정
sudo docker network create --driver=bridge --subnet 172.100.1.0/24 --ip-range 172.100.1.0/24 --gateway 172.100.1.1 my-network4
명령어의 의미는 다음과 같다.
- --driver=bridge: Bridge 드라이버를 사용하여 네트워크를 생성
- --subnet=172.100.1.0/24: 네트워크의 서브넷을 지정
- --ip-range=172.100.1.0/24: 네트워크에서 사용할 IP 주소 범위를 지정
- --gateway=172.100.1.1: 네트워크의 게이트웨이를 지정
도커 네트워크를 사용하는 방법은 다음과 같다.
# 컨테이너를 생성하고 my-network에 연결
sudo docker run -d -p 8000:80 --name=webserver --network=my-network nginx
# webserver를 my-network2에 연결
docker network connect my-network2 webserver
# webserver를 my-network2에서 분리
sudo docker network disconnect my-network2 webserver
참고로 도커 네트워크를 삭제할 때에는 해당 네트워크를 사용하고 있는 컨테이너가 있으면 삭제할 수 없다. 따라서 반드시 컨테이너를 종료하고 네트워크를 삭제해야 한다.
다음은 도커 임의의 네트워크 대역을 생성하여 nginx 웹서버를 구성하는 예시이다.
inspect 명령어로 확인해 보면 지정해 준 대역 내에서 IP주소를 할당받은 것을 확인할 수 있다.