docker 网络

bridge模式

在docker启动后,通过ifconfig命令可以看到docker0网桥信息,docker0是Docker服务所创建的,容器和宿主机的通信,容器间的通信都需要通过docker0进行转发。容器可以从docker0的网段上获取一个自己的ip。

整个宿主机的网桥模式都是docker0,类似一个交换机有一堆接口,每个接口叫veth;每个容器实例内部也有一块网卡,接口叫eth0,这样一对接口叫veth pair。

image

在bridge模式下,docker容器的ip可能会随着容器的重启而变更,因此一般不能在服务中将要访问的容器ip写死。
查看容器的网络情况可使用docker inspect <容器id> | tail -n 20

host模式

容器和宿主机共用同一ip,容器直接占用宿主机的端口,重复时会自动递增。

none模式

在none模式下,不对容器进行任何网络配置。容器没有网卡、ip、路由等信息,只有一个lo(本地链路回环地址127.0.0.1)。

container模式

新建的容器b和已经存在的一个容器a共享网络配置。当提供网络的容器a关闭后,容器b也就失去了网络配置。

自定义网络

以tomcat容器演示:

docker network create testnet
docker run -d -p 8081:8080 --network testnet --name tomcat81 rightctrl/tomcat
docker run -d -p 8082:8080 --network testnet --name tomcat82 rightctrl/tomcat

此时在进入各自的容器内,便可以通过服务名ping通容器。ping tomcat81

posted @ 2022-02-20 23:21  moon_orange  阅读(28)  评论(0编辑  收藏  举报