Docker 网络配置
1、为什么提供网络功能
Docker允许通过外部访问容器或容器互联的方式来提供网络服务
2、docker容器与操作系统通信机制
2.1 None网络
- none网络就是什么都没有的网络。挂在这个网络下的容器出了lo,没有其他任何网卡。容器创建时,可以通过–network=none指定使用none网络。
- 应用场景 封闭隔离,对安全性要求高且不需要联网的应用可以使用none网络,比如某个容器的唯一作用是生成随机密码,我们就可以放到none网络中,避免密码被窃取。
2.2 Host网络
- 容器自己不会创建网卡和IP等,使用的宿主机上面IP和端口。可以通过–network=host指定使用host网络。
- 应用场景 高性能,对网络传输效率要求较高,可以选择host。让容器可以直接配置host网络,跨网络解决方案。
- 缺点 灵活性差,端口冲突
2.3 Bridge网络
- Docker安装时会创建一个命名为docker0的Linux bridge,如果不指定–network,创建的容器默认都会挂到docker0上。
3、docker网络使用
注意: 一般在使用docker网桥(bridge)实现容器与容器通信时,都是站在一个应用角度进行容器通信
-
查看docker网桥配置
[root@localhost ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 7b6d69e293ec bridge bridge local #默认网桥 553976188f03 host host local #与宿主机通信网桥 8d05715119b9 none null local
-
创建自定义网桥
[root@localhost ~]# docker create my(网桥名称) docker create -d bridge my(网桥名称) #在启动容器时指定了网桥之后,可以在任何这个网桥关联的容器中使用容器名字进行与其他容器通信 [root@localhost ~]# docker run -d -p 8081:8080 --name tomacat01 --network ems tomcat:8.0-jre8
-
删除网桥
[root@localhost ~]# docker network rm my(网桥名)
-
查看网桥详细信息
[root@localhost ~]# docker inspect 393c24f82fb2(网桥ID)或者(网桥名)
Docker 数据卷
1、说明
数据卷 是一个可供一个或多个容器使用的特殊目录,它绕过UFS,可以提供很多有用的特性;
- 数据卷 可以在容器之间共享和重用
- 对 数据卷的修改会立马生效
- 对数据卷的更新,不会影响镜像
- 数据卷默认会一直存在,即使容器被删除
- 用来实现容器与宿主机之间数据共享
2、数据卷操作
-
自定义数据卷目录
docker run -v 绝对路径:容器内路径:ro #ro代表容器内目录只读
-
自动创建数据卷
docker run -v 卷名(系统自动创建):容器内路径
-
命令
[root@localhost ~]# docker volume help Commands: create #创建卷 inspect #显示一个或多个卷的详细信息 ls #列表卷 prune #删除所有未使用的本地卷 rm #删除一个或多个卷