网桥模式
划痕线这个就是网桥 网桥只在Docker启动的时候有
下载新版本 构建镜像
[root@localhost test]# docker build -t sp:latest .
后台运行
docker run -itd sp
bridge模式是docker的默认网络模式,不写--net参数,就是bridge模式。
查看bridge信息
docker inspect bridge
#新建一个 它是默认有网 连接在网桥里面的
[root@localhost ~]# docker run -itd sp
#查看一下所有运行的容器
docker ps -a
#进入容器
[root@localhost ~]# docker exec -it 9aa2ef286b58 sh
查看docker0网桥 ip addr
查看容器网络 ifconfig
docker0就像是一个路由器,容器就像是路由器下的设备,它们在同一个网段内,可以互相ping通。
java -jar spring.jar
[root@localhost test]# docker run -it -p 9999:8080 sp
在执行:java -jar spring.jar 执行成功 把自己的防火墙开放端口
主机模式
下容器和宿主机共用IP和端口
[root@localhost test]# docker run -it \
> --net host \
> --name s1 \
> sp
[root@localhost project]# java -jar spring.jar
下面就是主机模式
[root@localhost test]# docker exec -it s1 sh
sh-4.4# java -jar spring.jar
主机模式和网桥模式谁用的多?
答:网桥模式
自定义网络:可以让容器联网 可以让容器将内部的服务暴露出来 使用自定义网络可以给容器自定义ip
网桥模式会根据启动顺序分配给容器IP
[root@localhost test]# docker network create net01
483d7183596437b0cfc3c6716fb6d6d291d66970fc3886c0ba1d59fc2ca1acd8
#查看网络
[root@localhost test]# docker network ls
NETWORK ID NAME DRIVER SCOPE
3d39a1118c24 bridge bridge local
d2d95bef07c5 host host local
483d71835964 net01 bridge local
5d0cec1b85ab none null local
#指定网段
[root@localhost test]# docker network create --subnet=172.33.0.1/16 net02
d2e8a0a50cc94bd3ccf3131e09c4e86f22b3be0d1ecdce0d335590d841250739
#查看网络详情内容
docker inspect net01
docker run -it \
> --net net02 \
> --name s1 \
> sp
在输入ifconfig 这就是自定义网络
#固定IP地址
docker run -it \
--net net02 \
--ip 172.32.1.110 \
--name s2 \
sp
docker 内置dns解析,只针对自定义网络生效