docker限制訪問外網:sysctl net.ipv4.ip_forward=1
1可以外網,0禁止外網
bridge:橋接網絡
默認情況下啟動的Docker容器,都是使用 bridge,Docker安裝時創建的橋接網絡,每次Docker容器重啟時,會按照順序獲取對應的IP地址,這個就導致重啟下,Docker的IP地址就變了
none:無指定網絡
使用 --network=none ,docker 容器就不會分配局域網的IP
host: 主機網絡
使用 --network=host,此時,Docker 容器的網絡會附屬在主機上,兩者是互通的。
例如,在容器中運行一個Web服務,監聽8080端口,則主機的8080端口就會自動映射到容器中。
創建自定義網絡:(設置固定IP)
啟動Docker容器的時候,使用默認的網絡是不支持指派固定IP的:
docker run -itd --net bridge --ip 172.17.0.10 Ubuntu:18.04 /bin/bash
因此,需要創建自定義網絡,下面是具體的步驟
限制外網但是可以局域網:【刪除網關】
route del default gw 192.168.25.250
route add default gw 192.168.25.250
創建自定義網絡:
命令1:docker network create --subnet=172.18.0.0/16 net
釋義:創建自定義網絡net,並指定網段:172.18.0.0/16
命令2:docker network create --driver overlay --opt encrypted --internal --subnet 172.20.0.0/16 net2
釋義:創建網絡,並禁止外網【不加端口映射時生效】
2. docker network create -d overlay --subnet=177.168.0.0/16 --gateway=177.168.1.100 --ip-range=177.168.1.0/24 my-net
不同網關ping不通
刪除自定義網絡:
命令: docker network rm net2
釋義:刪除自定義網絡net2
創建Docker容器並指定網絡
命令:
docker run -itd --name t1 --net net --ip 172.18.0.2 ubuntu:18.04 /bin/bash
釋義:
創建容器:指定網絡net,指定ip為172.18.0.2,此IP為固定IP