Docker容器网路使用
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