资源描述
实验3:配置Docker容器数据卷
【实验内容】
本实验介绍如何挂载本地的目录到容器中,并设置读写规则,以及容器卷的继承。
【实验目的】
1、掌握容器数据卷的挂载
2、熟悉容器卷ro和rw读写规则
3、掌握卷之间的继承
【实验步骤】
步骤1 容器与宿主机互通互联
步骤2 容器卷ro和rw读写规则
步骤3 容器卷之间的继承
步骤1 容器与宿主机互通互联
直接命令添加,格式如下:
docker run -it -v /宿主机目录:/容器内目录 ubuntu /bin/bash
实例如下:
l 将容器内目录/tmp/myDockerData映射到宿主机/tmp/myHostData目录
docker run -it --name u1 --privileged=true -v /tmp/myHostData:/tmp/myDockerData ubuntu /bin/bash
Ø 目录不存在的情况下会自动创建,分别在宿主机和容器中查看挂载目录,可以看到目录已经创建出来。
Ø Docker挂载主机目录访问如果出现cannot open directory .: Permission denied,在挂载目录后多加一个--privileged=true参数即可;如果是CentOS7安全模块会比之前系统版本加强,不安全的会先禁止,所以目录挂载的情况被默认为不安全的行为,在SELinux里面挂载目录被禁止掉了;如果要开启,我们一般使用--privileged=true命令,扩大容器的权限解决挂载目录没有权限的问题,也即使用该参数,container内的root拥有真正的root权限,否则,container内的root只是外部的一个普通用户权限。
l 查看数据卷是否挂载成功
docker inspect 容器ID
l 容器和宿主机之间数据共享
修改docker挂载目录内容,查看主机目录变化;
修改主机挂载目录内容,查看容器目录变化。
步骤2 容器卷ro和rw读写规则
(1) 读写
格式如下:
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:rw 镜像名
rw = read + write,默认就是rw。
实例如下:
docker run -it --privileged=true -v /mydokcer/u:/tmp:rw ubuntu
(2) 只读
容器实例内部被限制,只能读取不能写。/容器目录:ro 镜像名,就能完成功能,此时容器自己只能读取不能写。
实例如下:
docker run -it --privileged=true -v /mydokcer/u:/tmp:ro ubuntu
ro = read only,此时如果宿主机写入内容,可以同步给容器内,容器可以读取到。
步骤3 容器卷之间的继承
(1) 容器1完成和宿主机的映射
docker run -it --privileged=true -v /mydocker/u:/tmp --name u1 ubuntu
创建文件u1_data.txt
cd /tmp
touch u1_data.txt
(2) 容器2继承容器1的卷规则
docker run -it --privileged=true --volumes-from u1 --name u2 ubuntu
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关搜索