docker 容器的网络模式
Docker 网络模式介绍
- 默认的三种网络模式
- bridge:桥接模式
- host:主机模式
- none:无网络模式
- 查看网络模式
# docker network ls
bridge 模式
- 桥接模式是 docker 的默认网络设置,当 Docker 服务启动时,会在主机上创建一个名为 docker0 的虚拟网桥,并
选择一个和宿主机不同的IP地址和子网分配给 docker0 网桥 - 桥接拓扑图
- 安装工具
- yum -y install net-tools
- yum install -y bridge-utils
- 查看桥接情况
- brctl show
- brctl show
host 模式
- host 模式:该模式下容器是不会拥有自己的ip地址,而是使用宿主机的ip地址和端口。
- 拓扑图
- 模拟启动 nginx 容器命令并防火墙放开 80 端口
# docker run -d centos:nginx /usr/local/nginx/sbin/nginx -g "daemon off;" # firewall-cmd --zone=public --add-port=80/tcp --permanent # firewall-cmd --reload
none模式(不太常用)
- none模式:关闭模式
- 无法连外网
Docker 容器间基于 Link 实现单向通信
- 启动 mysql 数据库容器
# docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
- 启动 tomcat 应用容器并 link 到 mysql 数据库
# docker run -itd --name tomcat --link mysql tomcat:tag
Docker 容器间利用 brige 网桥实现双向通信
- 执行:docker network ls
- 创建一个新的网桥:docker network create -d bridge my_bridge
- 启动第一个容器:docker run -itd --name tomcat centos:7
- 启动第二个容器:docker run -itd --name redis centos:7
- 把第一个容器加入网桥:docker network connect my_bridge tomcat
- 把第二个容器加入网桥:docker network connect my_bridge redis
- 最后分别进入俩个容器中进行验证
Docker 容器的特权模式
- 启动拥有特权模式的容器
# docker run -itd --privileged=true --name mycentos1 centos:7 /bin/bash
Docker 容器 Volume 数据共享
- 使用 --volumes-from 实现容器与容器之间 volume 共享
- 创建 nginx1
# docker run -itd -p 8080:80 -v /usr/local/nginx/html:/usr/local/nginx/html --name nginx1 mycentos:nginx /usr/local/nginx/sbin/nginx -g "daemon off;"
- 创建 nginx2
# docker run -itd -p 8081:80 --volumes-from nginx1 --name nginx2 mycentos:nginx /usr/local/nginx/sbin/nginx -g "daemon off;"
- 创建 nginx3
docker run -itd -p 8082:80 --volumes-from nginx1 --name nginx3 mycentos:nginx /usr/local/nginx/sbin/nginx -g "daemon off;"
- 对 /usr/local/nginx/html/index.html 进行修改
- 打开浏览器进行访问测试
上一篇 :docker 构建自定义镜像
下一篇 :Docker 部署 jar 包