network相关内容:
docker学习(十八、network介绍)
docker学习(十九、network使用示例bridge)
docker学习(二十、network使用示例host、none)
docker学习(二十一、network使用示例container、自定义)
一、host
应用示例
# 使用host类型的network启动ubuntu镜像,配置了默认端口会出现警告,不配置端口即可
docker run -itd -p 8080:80 --network host --name ubuntu ubuntu:latest /bin/bash
docker rm -f ubuntu
# 使用host类型的network启动ubuntu镜像,配置了默认端口会出现警告
docker run -itd --network host --name ubuntu ubuntu:latest /bin/bash
# 进入容器内部
docker exec -it ubuntu /bin/bash
# 查看容器内部的网络配置,发现与宿主机一致
ifconfig
# 退出容器
exit
# 查看容器的network
docker inspect ubuntu | tail -n 20
可以看到ubuntu的network是host模式
总结
- host没有bridge的配对(eth0 <–> veth)显示;
- host网络可以在容器创建时通过 --network host来指定;
- 使用host模式的容器可以直接使用docker host的IP地址与外界通信,容器内部的服务端口也可以使用宿主机的端口,不需要进行NAT(地址转换);
- host最大的优势就是网络性能比较好,但是docker host上已经使用的端口就不能再用了,网络的隔离性不好。
二、none
应用示例
# 使用host类型的network启动ubuntu镜像,配置了默认端口会出现警告,不配置端口即可
docker run -itd -p 8081:80 --network none --name ubuntu1 ubuntu:latest /bin/bash
docker inspect ubuntu1 | tail -n 20
总结
- 这种网络模式下容器只有lo回环网络,没有其他网卡;
- none网络可以在容器创建时通过 --network none 来指定;
- 这种类型的网络没有办法联网,封闭的网络能很好的保证容器的安全性。