docker学习(六、容器卷)

这个工作中很常用~很好用~也很重要~

敲黑板~duang duang duang!!!

一、容器卷

容器卷可以将容器内部的数据实时持久化到本地主机目录(映射的地址)。

使用容器卷进行映射时,加 --privileged=true保证有权限操作。

特点:

  • 数据卷可以在容器之间共享或重用数据
  • 卷中的更改可以直接实时生效
  • 数据卷中的更改不会包含在镜像的更新中
  • 数据卷的生命周期一直持续到没有容器使用它为止

二、实践

docker run -it --privileged=true -v /本地全路径:/容器内部路径 镜像名

-v就是代表卷,后边就跟着映射地址

完成映射之后,docker容器就可以和映射的主机路径进行双向同步了。

docker容器内修改,主机路径中可以看到;

主机路径中修改,docker容器目录中可以看到。

1.示例:容器修改,主机同步

docker学习(六、容器卷)_第1张图片

 2.示例:主机修改,容器同步

docker学习(六、容器卷)_第2张图片

当然,这里如果修改了配置文件,还是需要重启容器的,docker restart 容器id或容器名。

三、工作常用 

1.项目部署之后,将日志文件挂载到本地。因为每次部署重新构建镜像如果之前没有将容器中的日志文件挂载出来,容器删除之后日志文件就没了,出问题时不利于排查。

2.nginx的conf挂载。

3.项目的配置文件挂载。

四、容器卷读写规则

1.读写 rw(read-write)

默认情况下是可读可写权限的,全命令如下:

docker run -it --privileged=true -v /本地全路径:/容器内部路径:rw 镜像名

2.只读 ro(read-only)

设置只读权限,这里指的是容器内部只读,命令如下:

docker run -it --privileged=true -v /本地全路径:/容器内部路径:ro 镜像名

docker学习(六、容器卷)_第3张图片

五、容器卷的继承和共享

这里的继承指的是容器卷之间的继承,也就是容器A配置了容器卷,容器B配置继承容器A,容器B就可以使用同样的容器卷挂载了。

因为挂载到本地的目录是同一个,所以容器A、容器B、本地目录都是共享的。

容器A如果挂了,不影响容器B的挂载。

docker run -it --privileged=true --volumes-from 父容器id --name 启动的容器命名 镜像id或镜像名 /bin/bash

 

你可能感兴趣的:(docker,docker,学习,容器)