在Docker的預設網路配置下,有兩種方式可以實現:
使用自定義橋接網路。同一個橋接網路種的容器之間可以透過域名(預設為容器名稱)來訪問。比如我有兩個容器,那麼在啟動的時候就要設定net引數和name引數(可以使用預設name,不過不推薦)
在a容器種訪問b容器
同樣b也可以訪問a,相當於a和b共同組建了一個子網。主機訪問b容器可以透過3333埠。
使用主機網路。啟動時設定 --net host,佔用主機網路和主機共用埠,這種情況下埠不需要再掛載,你可以把容器直接理解為機器上的一個程序。可以透過localhost和其對應的容器埠訪問其它容器。比如
在c容器中可以訪問主機上的所有程序埠,例如a容器的1111埠。
這種網路模式會喪失隔離性,與主機完全共享IP和埠(windows下好像不能共享IP)。一般用於全域性性代理。比如你有很多的web應用,想都透過nginx轉發,那麼這個時候就可以把nginx容器設定為host網路,而其它web應用設定為橋接網路。
在Docker的預設網路配置下,有兩種方式可以實現:
使用自定義橋接網路。同一個橋接網路種的容器之間可以透過域名(預設為容器名稱)來訪問。比如我有兩個容器,那麼在啟動的時候就要設定net引數和name引數(可以使用預設name,不過不推薦)
在a容器種訪問b容器
同樣b也可以訪問a,相當於a和b共同組建了一個子網。主機訪問b容器可以透過3333埠。
使用主機網路。啟動時設定 --net host,佔用主機網路和主機共用埠,這種情況下埠不需要再掛載,你可以把容器直接理解為機器上的一個程序。可以透過localhost和其對應的容器埠訪問其它容器。比如
在c容器中可以訪問主機上的所有程序埠,例如a容器的1111埠。
這種網路模式會喪失隔離性,與主機完全共享IP和埠(windows下好像不能共享IP)。一般用於全域性性代理。比如你有很多的web應用,想都透過nginx轉發,那麼這個時候就可以把nginx容器設定為host網路,而其它web應用設定為橋接網路。