您的位置:首页 > 运维架构 > Docker

Docker中的数据与网络管理(数据、数据卷)

2019-06-13 07:38 1426 查看

 当我们对容器进行操作时,产生一系列数据会存储在容器中,那Docker内部又是怎么管理这些数据呢??

====================================华丽分割符==================================

一、Docker数据存储机制

1、Docker镜像是通过读取Dockerfile文件的指令构建的,Dockerfile中的每条指令都会创建一个镜像层,并且每层都是只读的,这一系列的镜像层就构成了Docker镜像。

2、Docker容器和镜像之间的主要区别是顶部的容器层,而所有对容器中数据的添加、修改等操作都会被存储在容器层中。当容器被删除时,容器层也被删除,其中存储的数据会被一同删除,而下面的镜像层却保持不变。

3、由于所有的容器都是通过镜像构建的,所以每个容器都有各自的容器层,对于容器数据的更改就会保存在各自的容器层中,即:由同一个镜像构建的多个容器,它们拥有相同的底部镜像层,而拥有不同的容器层,多个容器可以访问相同的镜像层,并且拥有自己的独立的数据状态。

二、Docker的数据存储方式

默认Docker中的数据都是存储在容器层中,缺陷还是比较多滴!

  • 当容器不再运行时,容器中的数据无法持久化保存
  • 容器层与正在运行的主机紧密耦合,不能轻易的移动数据
  • 容器层需要一个存储驱动程序来管理文件系统,存储驱动提供了一个使用Linux内核的联合文件系统,这种额外的抽象化降低了性能

 于是嘞,就要使用一种叫Docker  volume数据外部挂载机制,Doker提供了三种不同的方式将数据从容器映射到Docker宿主机,

分别是:

volumes(数据卷):存储在主机文件系统中(在Linux系统下是存在于/var/lib/Docker/volumes目录),由Docker管理,非Docker进程无法修改文件系统的这个部分。

bind mounts(绑定挂载):存储在主机系统的任意位置,甚至可能是重要的系统文件或目录,在Docker主机或容器上的非Docker进程可以对它们进行任意修改。

tmpfs mounts(tmpfs挂载):只存储在主机系统的内存中,并没有写入到主机的文件系统中

三、Volumes数据卷管理

优势:

  • 数据卷比绑定挂载更容易备份和迁移
  • 可以使用Docker CLI指令或Docker API来管理数据卷
  • 在Linux和windows容器上都可以使用数据卷
  • 在多个容器之间可以更安全的共享数据卷

数据卷驱动器允许在远程主机或云提供商上存储数据卷,并且加密数据卷的内容或添加其他功能

一个新数据卷的内容可以由一个容器预填充

(一)创建并管理数据卷

注:为避免其他的容器和数据卷的干扰,若存在容器和数据卷,最好删除

1、在Docker主机终端上,创建一个名为my-vol的数据卷并查看是否创建成功

# docker  volume  create my-vol    //创建一个名为my-vol的数据卷

#docker   volume  ls                      //查看数据卷

 2、核查数据卷

#docker   volume  inspect  my-vol             //查看指定数据卷详情

3、删除数据卷

# docker  volume  rm   数据卷名称                 //删除指定名称的数据卷

(二)启动容器并加载数据卷

1、查看本机容器和数据卷

#docker  ps  -a                //查看本地docker机器上存在的容器

#docker  volume  ls        //查看本地docker机器上存在的数据卷

2、确认查看本机Docker文件系统中的容器和数据卷

先切换到root用户,再进入“/var/lib/docker”目录,查看信息

3、启动容器并挂载 数据卷(通过--mount参数)

(通过-v参数)

说明:

--mount参数:由多个key=value形式的键值对组成,键值对之间使用英文逗号分隔。--mount参数语法比-v更加详细,键的顺序可以随意,标记的值也更容易理解。3

-v(--volume缩写)参数:由三个字段组成,分别由冒号(:)分隔,字段必须以正确的顺序排列,而且每个字段的含义特别明确。

4、再次查看本机容器和数据卷列表

 5、检查容器详情

6、再次确认本机Docker文件系统中的容器和数据卷

先切换到root用户,再进入“/var/lib/docker”目录,然后分别进入containers容器文件目录和volumes数据卷文件查看内容

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: