目录
网络相关
子网掩码
网关
规则
docke网络配置
bridge模式
host模式
创建自定义网络(自定义IP)
网络相关
- IP
- 子网掩码
- 网关
- DNS
- 端口号
子网掩码
子网掩码是 “255.255.255.0” 的网络:最后面一个数字可以在 0~255 范围内任意变化,因此可以提供 256 个 IP 地址。但是实际可用的 IP 地址数量是 256-2 ,即 254 个,因为主机号不能全是 “0” 或全是 “1” 。子网掩码是 “255.255.0.0” 的网络:后面两个数字可以在 0~255 范围内任意变化,可以提供 255² 个 IP 地址。但是实际可用的 IP 地址数量是 255²-2 ,即 65023 个。 IP 地址的子网掩码设置不是任意的。如果将子网掩码设置过大,也就是说子网范围扩大,那么,根据子网寻径规则,很可能发往和本地主机不在同一子网内的目标主机的数据,会因为错误的判断而认为目标主机是在同一子网内,那么,数据包将在本子网内循环,直到超时并抛弃,使数据不能正确到达目标主机,导致网络传输错误;如果将子网掩码设置得过小,那么就会将本来属于同一子网内的机器之间的通信当做是跨子网传输,数据包都交给缺省网关处理,这样势必增加缺省网关的负担,造成网络效率下降。因此,子网掩码应该根据网络的规模进行设置。如果一个网络的规模不超过 254 台电脑,采用“255.255.255.0” 作为子网掩码就可以了,现在大多数局域网都不会超过这个数字,因此“255.255.255.0” 是最常用的 IP 地址子网掩码;假如在一所大学具有 1500 多台电脑,这种规模的局域网可以使用 “255.255.0.0” 。
网关
网关实质上是一个网络通向其他网络的IP地址。 路由器(Windows下叫默认网关,网关就是路由,路由就是网关不要蒙)
规则
在计算机网络中,主机 ID 全部为 0 的地址为网络地址,而主机 ID 全部为 1 的地址为广播地址这 2 个地址是不能分配给主机用的。
docke网络配置
当你安装了docker,它会自动创建3个网络,可以使用 docker network ls 命令来查看
- bridge
- host
bridge模式
- 查看bridge信息
docker inspect brid
- 打开容器
docker run -itd --net=bridge --name cname iname
- 查看docker0网桥
- 查看容器网络
ip addr
ifconfig
- 外部访问
设置端口映射
docker run -itd --name bridge03 -p 8081:8080 spring:1.0
-p参数可以出现多次,绑定多个端口号
docker run -itd --name bridge05 -p 8082:8080 -p 8083:8080 spring:1.0
使用mysql
docker run -it --name c1 centos
mkdir -p /mysql/{conf,data}
#授予用户所有权限
grant all on *.* to dbl@'%' identified by '123456';
修改了application.xml 文件ip地址后,重启容器 ip 地址会发生改变。
注: 网桥中的ip只能自动生成
host模式
如果启动容器的时候使用 host 模式,那么这个容器将不会获得一个独立的 Network Namespace ,而是和宿主机共用一个Network Namespace 。容器将不会虚拟出自己的网卡,配置自己的 IP 等,而是使用宿主机的 IP和端口。
主机模式 容器与主机共用端口与网络
docker run -itd \
--name t1 \
--net host \
tomcat:8.5.20
创建自定义网络(自定义IP)
- 支持自定义ip
- 支持容器名的方式
手动指定网段
docker network create --subnet=172.20.0.0/16 mynet
固定ip启动容器
docker run -it \
--name t1 \
-p 8080:8080 \
-v /soft:/usr/local/tomcat/webapps \
--net mynet \
--ip 172.20.0.100 \
tomcat:8.5.20
docker run \
--name m1 \
-v /mysql/conf/my.cnf:/etc/my.cnf \
-v /mysql/data:/var/lib/mysql \
--privileged=true \
-e MYSQL_ROOT_PASSWORD=123456 \
--net mynet \
--ip 172.20.0.99 \
-d mysql/mysql-server:5.7
指定两个不同的容器
----------------mynet
docker run -it \
--name c1 \
--net mynet \
--ip 172.20.100.100 \
-d centos
----------------bridge
docker run -it \
--name c2 \
-d centos
让c1连接到bridge网络中
docker network connect bridge c1
测试
docker exec -it c1 ping mynet
docker exec -it c1 ping 172.20.100.100
跨网桥测试文章来源:https://www.toymoban.com/news/detail-805156.html
docker exec -it c2 ping mynet
文章来源地址https://www.toymoban.com/news/detail-805156.html
到了这里,关于进阶Docker4:网桥模式、主机模式与自定义网络的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!