0
点赞
收藏
分享

微信扫一扫

docker 容器的网络模式

夏沐沐 2022-01-26 阅读 25
docker

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
      在这里插入图片描述

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 包

举报

相关推荐

0 条评论