赞
踩
以我们pull为例,在下载的过程中我们可以看到docker的镜像是在一层一层的下载。
镜像分层最大的一个好处就是共享资源,方便复制迁移,就是为了复用。
比如说有多个镜像都从相同的 base(基础) 镜像构建而来,那么 Docker Host 只需在磁盘上保存一份 base 镜像;同时内存中也只需加载一份 base 镜像,就可以为所有容器服务了,而且镜像的每一层都可以被共享。
重点理解:
总结
Docker中的镜像分层,支持通过扩展现有镜像,创建新的镜像。类似Java继承于一个Base基础类,自己再按需扩展。
新镜像是从 base 镜像一层一层叠加生成的。每安装一个软件,就在现有镜像的基础上增加一层。
Docker挂载主机目录访问如果出现cannot open directory .: Permission denied
解决办法:在挂载目录后多加一个==–privileged=true==即可
因为如果是centos7安全模块会比之前系统版本加强,不安全的回显禁止,所以目录挂载的情况被默认为不安全的行为,在selinux里面挂载目录被禁止掉了,如果在开启,我们一般使用–privileged=true命令,扩大容器的权限解决挂载目录没有权限的问题,也即使用该参数,container内的root拥有真正的root权限,否则,container(容器)内的root只是外部的一个普通用户权限。
特点:
运行一个带有容器卷存储功能的容器实例
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名
docker run -it --privileged=true -v /home/docker-data:/tmp/docker_data qq/docker-vim:1.1
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名
docker inspect 容器id
容器与宿主机之间数据共享
在容器中创建文件
宿主机中可查看到
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:rw 镜像名
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:ro 镜像名
容器1完成和宿主机的映射
容器2继承容器1的卷规则
docker run -it --privileged=true --volumes-from u1 --name u2 qq/docker-vim:1.1
docker run -it --privileged=true --volumes-from 父类 --name u2 qq/docker-vim:1.1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。