Docker_镜像分层和数据卷

写时复制

当容器启动时,一个新的可写层被加载到镜像的顶部。这一层通常被称作“容器层”,“容器层”之下的都叫“镜像层”。
所有对容器的改动 - 无论添加、删除、还是修改文件都只会发生在容器层中。只有容器层是可写的,容器层下面的所有镜像层都是只读的。
只有当需要修改时才复制一份数据,这种特性被称作 Copy-on-Write。可见,容器层保存的是镜像变化的部分,不会对镜像本身进行任何修改。

这样就解释了我们前面提出的问题:容器层记录对镜像的修改,所有镜像层都是只读的,不会被容器修改,所以镜像可以被多个容器共享

挂载卷

docker run -d -p 80:80 -v /data:/usr/share/nginx/html nginx:latest
容器内站点目录: /usr/share/nginx/html


echo 'kulong' >/data/index
curl 10.0.122.156

设置共享挂载卷

挂载同一目录
docker run -d -p 8080:80 -v /data:/usr/share/nginx/html nginx:latest

docker 数据卷管理

docker volume ls (查看卷列表)
docker volume create  (创建一个简单卷)
docker volume create  --name nginx (指定名字)
docker volume inspect nginx (查看卷路径)
创建 Docker 时挂载卷
docker run -d -p 9000:80 -v nginx:/usr/share/nginx/html nginx:latest 
echo 'blog.qf.com' >/var/lib/docker/volumes/nginx/_data/index.html
# 宿主机测试
[root@docker01 ~] curl 10.0.0.100:9000
blog.qf.com
Docker 共享卷挂载
docker run  -d  -P  --volumes-from 079786c1e297 nginx:latest 

docker run -P (生成随即端口)
docker run -v (指定挂载卷的对应路径    宿主机文件:容器内的文件    以绝对路径的方式   )

你可能感兴趣的:(Docker_镜像分层和数据卷)