Docker-核心知识之网络模式、Volume数据共享
一、 Docker 容器的网络模式介绍
简介:介绍Docker网络模式
- 默认的三种网络模式:
- bridge:桥接模式
- host:主机模式
- none:无网络模式
- 查看网络模式:
- docker network ls
二、 Docker 容器的bridge模式实战演练
简介:介绍Docker桥接网络模式
- 桥接模式是docker 的默认网络设置,当Docker服务启动时,会在主机上创建一个名为docker0的虚拟网桥,并 选择一个和宿主机不同的IP地址和子网分配给docker0网桥
- 桥接拓扑图:

- 安装工具:
yum -y install net-tools
yum install -y bridge-util
- 查看桥接情况:
brctl show

三、Docker 容器的host模式实战演练
简介:介绍Docker主机网络模式
- host 模式:该模式下容器是不会拥有自己的ip地址,而是使用宿主机的ip地址和端口。

-
查看ip
ip addr
-
查看防火墙
firewall-cmd --state
-
查看80端口
netstat -tunlp |grep "80"
- 启动nginx容器命令并防火墙放开80端口:
docker run -d --net=host mycentos:nginx /usr/local/nginx/sbin/nginx -g "daemon off;"
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
四、Docker 容器的none模式介绍
简介:介绍Docker关闭网络模式介绍
- none模式:关闭模式
- 无法连外网
五、 Docker 容器间基于Link实现单向通信
简介:介绍基于link单向通信
- 启动mysql数据库容器:
docker run --name mydb -e MYSQL_ROOT_PASSWORD=abc123456 -d mysql:5.7
- 启动tomcat应用容器并link到mysql数据库:
docker run -itd --name tomcat1 --link mydb tomcat:tag
注意:mydb 这个容器一定要存在!
- 官方版的mysql 5.7 需要安装工具才有ping命令:
apt-get update && apt-get install iputils-ping
- 进入tomcat1容器,ping mydb成功。但是进入mydb容器,ping tomcat1失败,因为是单向通讯。
六、 Docker容器间利用brige网桥实现双向通信
简介:介绍基于Bridge网桥实现双向通信
- 执行: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 --name mycentos centos:7 /bin/bash
- 安装网络工具:
yum -y install net-tools
- 执行route -n 查看网关
- 删除网关,没有权限:
route del default gw 172.17.0.1
- 启动拥有特权模式的容器:
docker run -itd --privileged=true --name mycentos1 centos:7 /bin/bash
- 进入容器:
docker exec -it ef /bin/bash
- 删除网关
route del default gw 172.17.0.1
- 成功
- 备注:特权模式用的比较少

八、 Docker核心知识之Volume数据共享
简介:Volume的介绍使用
- dockerfile
FROM centos:7
VOLUME ["/usr/local"]
注意:在dockerfile里设置volume是无法修改宿主机的挂载路径的
- 创建镜像
docker build -t mycentos:volume .
- 创建容器:
docker run -it --name volumn 8d74ce642c2e
- 使用docker inspect 容器ID 可以查看详细的挂载信息

- 宿主机挂载路径内容与容器路径内容一致:


使用volume容器共享创建nginx集群
1、先在本地启动nginx:
- 查看端口进程有没有被占用
netstat -anp | grep 80
- 如被占用先杀掉端口
kill 80
- 查看nginx进程有没有启动
ps -ef |grep "nginx"
- 启动nginx
/usr/local/nginx/sbin/nginx
- 修改html


2、使用--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(方式二:使用--volumes-from)
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进行修改
-
![]()
- 打开浏览器进行访问测试
posted on 2021-12-05 18:30 cherry_ning 阅读(320) 评论(0) 收藏 举报


浙公网安备 33010602011771号