收藏文章 楼主

docker系列之分区挂载和数据卷

版块:docker   类型:普通   作者:小绿叶技术博客   查看:1048   回复:0   获赞:6   时间:2021-06-06 19:44:39

# 容器中的文件系统是独立的, 一旦容器被删除, 则文件系统也会被删除. 如果想容器和实体机在文件系统层面打通, 可以把指定目录挂载到容器当中:


   docker run --name eisc --privileged=true -dit -p 10022:22 -p 10080:80 -v /root centos:7 /usr/sbin/init

# docker run --name eisc 运行镜像,名字为eisc

# privileged   [ˈprɪ və lɪ dʒ d]  有特权的

# -d: 后台运行容器

#-it: 以交互模式运行启动容器;  进入容器里面的虚拟器后后   ls  /date  就可以看见宿主机 /root 中 的文件了

# -p 端口映射,左边是本地,右边是容器里面的虚拟机的端口


#  -v 参数, -v /root:/date 将本地的/root 挂载到容器的/date 目前下,如果不加 :/date  为不指定,其他主机也可以使用

# 选择images镜像 为:centos:7  版本是7

#-p: 端口映射 5005:5004  指定主机的5005端口映射到容器的5004端口



# 上面是直观的目录挂载. docker 还有自己的一个 数据卷 的概念. 它可以在容器中定义一些目录, 这些目录不使用层级的 AUFS 文件系统, 并且这些目录独立于容器而存在:


docker run -d -p 5000:22 -v /root/a --name=test zys:common

  


这样, 其 /root/a 目录就是一个数据卷, 如果使用 docker inspect 查看容器, 可以看到类似下面的信息:


"Volumes": {

    "/root/a": "/var/lib/docker/vfs/dir/xxx"

},

"VolumesRW": {

    "/root/a": true

}

  


其它的容器可以重用这个数据卷:


docker run -d -p 5000:22 --volumes-from=test zys:common

  


这里的形式有些别扭啊, 数据卷本来是独立于容器, 但是要想重用它, 又必须基于容器的名字.


当所有容器被删除后, 数据卷本身是还存在的, 但是这时好像没办法再去直接使用它了, 不过里面的数据你可以想办法弄到容器里去再作下一步处理.

提供企业建站服务,免费网防系统,提交信息登录 http://yundun.ddoss.cn 邮箱: proposal@ddoss.cn 
回复列表
默认   热门   正序   倒序

回复:docker系列之分区挂载和数据卷

头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息