0
点赞
收藏
分享

微信扫一扫

Docker容器---数据挂载以及网络

蛇发女妖 2022-05-01 阅读 93

1. 容器数据卷

1.1 定义

       这对于数据库,配置文件等一些需要持久性的东西来说,这会变得非常不方便,而容器数据卷就是为了解决我们这个问题的。

       容器数据卷主要是将我们docker容器里面的数据进行备份与挂载,将容器里的一些重要数据挂载到我们想要保存的地方,当我们修改容器数据或者挂载数据时,两者会实现同步更新,而且如果我们删除了容器的话,我们挂载的数据是不会被清掉的,从而达到一个数据同步备份的效果。
在这里插入图片描述

1.2 挂载方式

       常用的数据卷挂载方式有三种:1.指定目录挂载,2.匿名挂载,3.具名挂载,而且在挂载时可以通过设定权限,如:ro(只读),(rw)可读可写,而且容器与容器之间也可以进行挂载。

1. 指定目录挂载

docker run --name 容器名字 -d -p 主机端口:容器端口 -v 指定主机目录:容器目录:权限 镜像名或id

#参数介绍
--name 		#指定容器名字
-d			#后台执行
-p			#端口映射
-v			#数据卷挂载

#查看容器卷
docker volume ls

2. 匿名挂载

#匿名挂载就是不填挂载的主机目录,直接写容器目录
docker run --name 容器名字 -d -p 主机端口:容器端口 -v 容器目录 镜像名或id

3. 具名挂载

#具名挂载就是容器卷名字+容器挂载目录
docker run --name 容器名字 -d -p 主机端口:容器端口 -v 容器卷名字:容器目录 镜像名或id

#查看容器卷相关信息(可以查看卷具体位置)
docker volume inspect 容器卷名

4. 容器之间挂载

docker run -d -p --name 容器名字 --volumes-form 容器名字(被挂载的容器名字)

2. Docker网络

2.1 Docker相关网络

在这里插入图片描述
       如上图所示,当我们在我们的服务器启动docker时,服务器会分配一个地址给docker,这个地址也是docker的默认地址网卡,网络连接模式是桥接模式,俗称docker0。
在这里插入图片描述
       当我们使用docker创建一个容器时,docker0会给我们的容器分配一个地址,这个地址以一对一对的形式出现,这种技术称为evth-pair,evth-pair是一对虚拟的设备接口,以成对的形式出现,一端连接着我们的协议,一端连接我们的容器,充当一座桥梁,专门用来连接我们的虚拟设备。比如上图所示的:8: eth0@if9
在这里插入图片描述
       如上图所示:docker0给我们的容器分别分配相关的地址(虚拟的),这俩个地址都在docker0的分配范围(类似局域网,以docker0为主),容器通过env-pair的方式与docker0建立连接,属于桥接模式,docker0与我们的Linux系统属于直连的模式(NAT)。

2.2 容器互联

​ 使用服务名来进行互联。

2.2.1 --link方式

#使用--link来互联
docker run -d -p --name 容器名 --link 容器名1 镜像

#这种方式局限:只能一方ping通一方,不能相互普通(就是:容器名 可以ping通 容器名1,反过来不行)
#这种方式只是相当于在host文件里将我们需要ping通的容器IP写死而已,不能实现双方的相互ping通

2.2.2 自定义网络(常用)

在这里插入图片描述
在docker中,常见的网络模式为:

bridge: 桥接模式(docker默认的模式,也是建议的模式)

host: 和宿主机共有网络

container: 容器互联模式(这种模式也可以实现容器互联,但局限性大)

none: 不配置网络

#在我们常用的docker run指令中,如果我们不指定网络,它会使用默认的docker0网络,相当于在命令中加上了--net bridge,docker0的网络地址是不能使用域名访问的

#创建docker网络
docker network create --driver bridge --subnet xxx.xxx.x.x/16 --getway xxx.xxx.x.x 网络名
#--driver:网络连接模式
#--subnet:子网地址,/后面的数字代表可以分配多少个网络,2的n次方
#--getway:网关,相当于我们的路由器,所有的子网都经过他来转发

2.2.3 网络连通

       网络连通的目的是让在不同网络(自定义网络,网络不同段)下相互连通,就比如:让在docker0的容器ping通在我们自定义网络的容器。
在这里插入图片描述

docker network connet 网络 容器id

这种方法相当于在我们的网络中把我们的容器IP加进去,相当于一个容器有俩个IP地址。

举报

相关推荐

0 条评论