Docker容器卷的基础概念

Docker容器数据卷

docker挂载主机目录访问如果出现cannot open directory.:Permission denied

解决办法:在挂载目录后多加一个--privileged=true参数即可

-v 宿主机路径:容器内路径

-p 宿主机端口:容器内端口

为什么要用容器数据卷?
就怕人家docker rm -f <容器id>,容器内的数据消失不见

容器卷是什么?

**卷:**就是目录或文件,存在于一个或多个容器中,由docker挂载到容器,但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性;
**卷的设计目的:**数据的持久化,完全独立于容器的生命周期,因此docker不会在容器删除时删除其挂载的数据卷。

容器卷有什么作用?

docker容器数据—以容器数据卷的方式完成数据的持久化,重要资料进行backup—>映射,容器内的数据备份+持久化到本地主机目录。

容器卷的特点?

1、数据卷可以在容器之间共享或重用数据

2、卷中的更改可以直接实时生效

3、数据卷中的更改不会包含在镜像的更新中

4、数据卷的生命周期一直持续到没有容器使用它为止

宿主机&容器之间映射添加容器卷

格式:docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名

[root@serverb tmp]# docker run -it --privileged=true -v /tmp/host_data:/tmp/docker_data --name=u1 ubuntu

查看数据卷是否挂载成功:docker inspect <容器id> 查看Mounts部分

Tips:

宿主机创建,容器同步;容器创建,宿主机同步;关闭容器,宿主机创建,启动容器仍然能够保持同步

读写规则映射添加说明

格式:docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:rw 镜像名

默认就是rw权限

只读:容器内部限制,只能读取不能写,ro=read only

格式:docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:ro 镜像名

卷的继承和共享

步骤:

​ 容器1完成和宿主机的映射:参考宿主机&容器之间映射添加容器卷

​ 容器2继承容器1的卷规则:docker run --privileged=true --volumes-from u1 --name u2 ubuntu 从容器u1继承给容器u2

你可能感兴趣的:(docker,docker,容器,运维,linux)