Docker 是一種容器化技術,允許開發者將應用程序打包到透明的容器中,以便在生產環境中運行。當然,對于大規模的應用程序,單個容器可能不足以滿足需求,因此 Docker 子網劃分便應運而生。
Docker 子網劃分是指將 Docker 主機中默認的網絡劃分成多個子網,使得每個應用程序都有一個自己的虛擬網絡,以增強容器間的隔離性。
示例命令:
$ docker network create --subnet=172.18.0.0/16 app_net1
$ docker network create --subnet=172.19.0.0/16 app_net2
$ docker run --name app1 --net app_net1 --ip 172.18.0.2 -d app_image
$ docker run --name app2 --net app_net2 --ip 172.19.0.2 -d app_image
需要注意的是,每個子網都需要指定一個唯一的網段(如--subnet=172.18.0.0/16
),以確保容器間的 IP 地址不會發生沖突。
創建完子網后,可以通過運行應用容器時指定子網名稱與 IP 地址的方式將容器加入特定子網。
子網的劃分可以有效提高應用程序的安全性和隔離性,同時也允許在單個 Docker 主機上運行多個應用程序而不會相互干擾。