桥接模式:用于连接两个不同网络段的设备,共享通信的一种方式。
桥接设备:工作在OSI模型的第二层,数据链路层,转发数据帧,mac地址。类似于交换机, 只能转发同一网段,通过泛红广播来找目标设备的mac地址。学习。
Docker网络就是基于桥接模式实现的:
问题:docker的网桥是宿主机虚拟出来的,并不是一个真实存在的网络设备。外部网络无 法寻址找到。外部网络无法直接访问docker0,分配给容器的IP地址。
可以给容器做一个端口映射。
Docker run -itd --name test1 -P nginx:1.22.0 /bin/bash
-P:在创建容器时。在宿主机和容器之间做一个端口映射。-P随机分配 一个端口给宿主机。 容器的端口是不变的。
-P:32768开始。
-p:小p指定端口,人为设置固定的端口映射。
进入容器开启一下服务
实际上,docker是在宿主机和容器之间做了一个iptables的NAT地址转换。
指定一个端口
1,docker的网络模式:
bridge默认模式,在创建docker是不需要指定网络类型,默认就是bridge。
2,Host模式:容器将不会虚拟出自己的网卡,也没有自己的IP地址,全部使用宿主机的 IP地址和端口。
创建容器的时候可以指定网络模式:--network host
公用模式,如果是单个容器运行,可以使用host模式
3,container模式:容器和容器之间公用一个ip和端口。
4,none模式:docker容器有自己的network-space,但是这个容器没有任何网络设置
这个容器没有网卡,没有ip,没有路由,没有lo回环网络。在none模式下,容器不 可以联网。 用于容器功能测试。
5,自定义网络:我们可以给docker创建一个自定义网段。
NETWORK ID :这个是docker网络唯一的网络id
NAME:docker网络的名称
DRIVER:docker网络的驱动程序
SCOPE:表示网络的作用范围
报错
在使用默认docker:0网桥时,创建容器是不能指定IP地址的,只能有docker网桥自动分配。 除非用户自定义的网络才可以给容器自定义ip地址。
Docker的网络模式:
Docker如何在创建容器时指定端口映射:
-P:随机指定
-p:自定义指定
32767:80 前面是宿主机,后面是容器端口。
Docker logs 容器名/容器id 有多少看多少
Docker logs -f 容器名/容器id
Docker logs --tail=10 -f test1 动态查看从尾部查看10条