实验3:配置Docker容器数据卷
实验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 容器IDl 容器和宿主机之间数据共享修改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 ubunturo = read only,此时如果宿主机写入内容,可以同步给容器内,容器可以读取到。步骤3 容器卷之间的继承(1) 容器1完成和宿主机的映射docker run -it -privileged=true -v /mydocker/u:/tmp -name u1 ubuntu创建文件u1_data.txtcd /tmptouch u1_data.txt(2) 容器2继承容器1的卷规则docker run -it -privileged=true -volumes-from u1 -name u2 ubuntu
收藏
编号:339708236
类型:共享资源
大小:86.40KB
格式:DOCX
上传时间:2022-10-25
3
金贝
- 关 键 词:
-
实验
配置
Docker
容器
数据
- 资源描述:
-
实验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
展开阅读全文
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。