UnionFS(联合文件系统)是一种分层,轻量级并且高性能的文件系统,支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统。
Union文件系统是Docker镜像的基础,镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
一次同时加载多个文件系统,从外表看,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终的文件系统会包含所有底层的文件和目录。
docker commit 提交容器副本使之成为一个新的镜像
docker commit -m="describle " -a='author' dockerid destimagename:tag
dockerid表示容器id
destimagename目标镜像名
tag表示版本
数据卷
卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器。
数据卷独立于容器。
特点:
1. 数据卷可以在容器之间共享或重用数据;
2. 卷中的更改可以直接生效;
3. 数据卷中的更改不会包含在镜像的更新中;
4. 数据卷的生命周期一直持续到没有容器使用为止;
直接命令添加数据卷
docker run -it -v /hostpath:/containerpath[:ro] imagename
查看数据卷是否挂载成功
docker inspect containerid
docker start containerid 启动容器
docker attach containerid 进入容器
dockerfile添加volume
创建dockerfile文件
#volume test
FROM centos
VOLUME ["/dataVolumeContainer1", "/dataVolumeContainer2"]
CMD echo "finished, ----------success"
CMD /bin/bash
build创建镜像
docker build -f Dockerfile -t imagelib/centos .
查看新生成的镜像
docker images
docker仓库地址:https://github.com/docker-library/
可以查看dockerfile的编写方法
docker run时出现权限错误,可以添加参数--privileged=true
数据卷容器
命名的容器挂载数据卷,其它容器通过挂载这个容器实现数据共享,挂载数据卷的容器,称为数据卷容器。
继承数据卷
docker run -it --name dc02 --volumes-from dc01 imagename
数据卷一直持续到没有容器使用为止。