Docker数据卷之进阶篇

Posted yanghe123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker数据卷之进阶篇相关的知识,希望对你有一定的参考价值。

容器之间数据共享,修改同步

配置如下:

  1. type 指定挂载方式,我们这里用到的是 volume,其实还可以有 bind tmpfs

Volunme:这个目录只有Docker可以管理,其他进程不能修改。如果想持久保存容器的 应用数据,VolumesDocker推荐的挂载方式。

Bind:容器内的数据被存放到宿主机文件系统的任意位置,甚至存放到一些重要的系统 目录或文件中。除了Docker之外的进程也可以任意对他们进行修改;

tmpfs容器的数据只会存放到宿主机的内存中,不会被写到宿主机的文件系统中,因 此不能持久保存容器的应用数据。

  1. volume-driver 指定挂载数据卷的驱动程序,默认值是 local
  2. source 指定挂载的源,对于一个命名的数据卷,这里应该指定这个数据卷的名称。在使用时可以写 source,也可以简写为 src
  3. destination 指定挂载的数据在容器中的路径。在使用时可以写 destination,也可以简写为 dst target
  4. readonly 指定挂载的数据为只读。
  5. volume-opt 可以指定多次,用来提高更多的 mount 相关的配置。
  6. Target=/data,挂载到容器/data目录,没有则自动创建表

创建挂载卷:docker volume create my-data

卷的详细信息docker volume inspect my-data

数据卷列表:docker volume ls

移除卷docker volume rm my-data

清除无主的数据卷docker volume prune

我们可以使用-f或--force选项强行删除正在使用中的容器。然后再删除卷

docker container rm –f $(docker container ls -aq)

docker volume rm my-data

挂载数据卷命令:[默认目录:/var/lib/docker/volumes/my-data]

1.docker run -id --mount type=volume,source=my-data,target=/data ubuntu /bin/bash

2.docker run -it -v /home/data/:/home/data/:ro --name test ubuntu:16.04 bin/bash

容器目录挂载本地目录:[冒号前为宿主机目录,冒号后为容器目录]

默认挂载的路径权限为读写:[ro表示readonly只读]

 

注意:

1.如果本地数据卷或者本地目录尚未创建,-v命令则会自动创建,--mount则会报错

 

2.如果是容器里的目录不存在,两者都会自动创建

 

3.--mount命令解析:

由多个键=值组成,

type=bind/volume/tmpfs,(省略该字段则默认为volume

可使用source/src=本机目录文件,(省略该字段则为匿名卷)

target/destination/dst=容器目录,

可指定readonly)

 

以上是关于Docker数据卷之进阶篇的主要内容,如果未能解决你的问题,请参考以下文章

数据卷之docker

Docker笔记(进阶篇)— Docker Compose

《docker高级篇(大厂进阶):4.Docker网络》包括:是什么常用基本命令能干嘛网络模式docker平台架构图解

docker-compose 进阶篇

Docker进阶篇

Docker 持续进阶