dokcer 基础学习5 ---docker容器网络
程序员文章站
2022-07-14 10:57:19
...
查看docker网络
docker network ls
docker默认网络
none 网络:创建容器的时候可以通过--network=none指定使用none网络
例子:
docker run -it --network=none busybox ip a
none网络的应用场景主要针对一些对安全性要求高并且不需要联网的应用,比如某个容器的唯一用途是生成随机密码,就可以放到 none 网络中避免密码被窃取。
host 网络:连接到 host 网络的容器共享 Docker host 的网络栈,容器的网络配置与 host 完全一样,可以通过 --network=host 指定使用 host 网络。
bridge 网络(桥接):Docker 安装时会创建一个命名为 docker0 的 linux bridge。如果不指定--network,创建的容器默认都会挂到 docker0 上。veth pair 是一种成对出现的特殊网络设备。
自定义容器网络
Docker 提供三种 user-defined 网络驱动:bridge, overlay 和 macvlan。overlay 和 macvlan 用于创建跨主机的网络。
创建docker容器网络
docker network create --driver bridge --subnet 172.22.16.0/24 --gateway 172.22.16.1 my_net2
--driver 驱动
--subnet 网段
--gateway 网关
然后我们就可以通过--net来指定网络创建容器
docker run -itd -P --name centos01 --net my_net centos /bin/bash
docker run -itd -P --name centos02 --net my_net centos /bin/bash
并且容器和容器之间就可以通过名字来ping通
docker exec -it centos01 ping centos02
docker exec -it centos02 ping centos01
不用使用--link绑定后即可ping通
注:只有使用 --subnet 创建的网络才能指定静态IP
docker run -it --network=my_net2 --ip 172.18.0.8 busybox
docker network inspect my_net #查看网络的详细信息
好处:
redis集群。mysql集群。不同的集群使用不同的网络,保证集群是安全的和健康的。
两个不同网络不同网段的容器之间的通信
docker network connect 网络名 容器名
一个容器可以拥有两个ip
上一篇: Docker之 网络
下一篇: SICP 2.5 习题答案