系列文章
Docker系列1 - CentOS7安装Docker
Docker系列2 - Docker常用命令
UnionFS 联合文件系统
是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改做为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下
镜像可以通过分层来进行继承
docker的镜像实际上由一层一层的文件系统组成
bootfs主要包含bootloader和kernel
bootloader主要是引导加载kernel
Linux刚启动时会加载bootfs文件系统,在docker镜像的最底层是引导文件系统bootfs
rootfs,在bootfs的上一层。rootfs就是各种不同的操作系统发行版,如Ubuntu,CentOS
镜像分层:共享资源,方便复制迁移,就是为了复用
搭建Docker私服
docker pull registry
docker run -d -p 5000:5000 -v /data/myregistry/:/tmp/registry --privileged=true registry
#查询私服上有什么镜像
curl -XGET http://127.0.0.1:5000/v2/_catalog
#打上私服的标签
docker tag intmall/ubuntu:3.7 127.0.0.1:5000/ubuntu:3.7
docker images
ll /etc/docker/
#如果没有daemon.json文件,则创建一个
#增加一行(docker默认不允许http方式推送镜像,通过配置选项来取消这个限制)
{
"insecure-registries": ["127.0.0.1:5000"]
}
systemctl restart docker
#启动registry容器
docker start deabd98b3eb1
docker update deabd98b3eb1 --restart=always
docker push 127.0.0.1:5000/ubuntu:3.7
curl -XGET http://127.0.0.1:5000/v2/_catalog
docker pull 127.0.0.1:5000/ubuntu:3.7
文件挂载
docker run -it -v /data/mytest:/test --name myubuntu 127.0.0.1:5000/ubuntu:3.7 /bin/bash
#查看数据卷是否挂载成功
docker inspect 容器id
docker inspect myunbuntu
#挂载文件,限制容器内部只读
docker run -it -v /宿主机目录:/容器内目录:ro 镜像名
#卷的继承和共享(两个容器和主机共享目录)
docker run -it --volumes-from 容器id(或者容器名称) ubuntu
#源容器关停后,继承的容器还是可以读写共享的目录