# Docker vs VirtualBox 以及網路模式(NAT Bridge host-only) ## 預設網路模式 - docker bridge - virtualbox NAT ## 各種網路模式比較 以VM為出發點,docker大致網路模式相同 ### NAT 應用場景:虛擬機只要求可以上網,無特殊要求,滿足最**一般需求** - VM可對外網 - host可對外網 - host ping得到VM - VM ping得到 host - 虛擬機之間可以ping通 ### Bridge 應用場景:虛擬機器要求可以上網,且虛擬機**完全模擬一台實體主機** - VM、host可對外網 - host和VM可互ping - 虛擬機器之間可以ping通 - VM透過實體的gateway取得虛擬ip,使得與host同層 - **以上各點基於一個前提 ->主機可以上網** ### 僅限主機介面卡、Host-only Adapter 應用場景:在主機無法上網的情況下(主機可以上網的情況下可以用host-only,也可以用橋接),需要搭建一個模擬區域網路,所有機器可以互訪 - 虛擬機器不可以上網 - 虛擬機器之間可以ping通 - 虛擬機器可以ping通實體主機 - 主機可以ping通虛擬機器 - (注意虛擬機與主機通信是通過實體主機的名為 VirtualBox Host-Only Network的虛擬網路卡,因此IP是該網卡ip 192.168.56.1(預設的),而不是你現在正在上網所用的IP) ## 設定自定義網路卡 - 創建一個自定義網路。使用docker network create命令創建一個新的網路。例如,您可以創建一個名為isolated_network的自定義網路 ``` docker network create isolated_network ``` - 運行容器時連接到自定義網路。使用--network選項將容器連接到剛剛建立的網路。例如,運行一個名為my_container的容器並將其連接到isolated_network ``` docker run --name my_container --network isolated_network my_image ```