容器数据卷

文章详细介绍了Docker容器数据卷的使用,包括如何通过-v选项挂载数据卷,实现主机与容器目录的同步,以及如何通过匿名、具名挂载创建数据卷。此外,还提到了如何查看和管理数据卷,如改变读写权限,并展示了如何在Dockerfile中定义数据卷挂载。
摘要由CSDN通过智能技术生成

1、什么是容器数据卷

简单来说就是把Docker容器内的目录挂载到主机对应的目录上,使该两个目录下的数据保持同步

2、使用指定路径挂载数据卷

     
    #选项及解释
    -it表示使用交互方式运行容器,能进入容器内部进行内容的查看
    -v表示使用数据卷
     
    docker run -it -v 主机目录:容器目录 镜像名称:[TAG]

例:

docker run -it -v /home/ceshi:/home centos:7

3、查看使用数据卷后容器的元数据

docker inspect 容器id

找到Mounts,查看挂载信息,显示成功联通容器指定目录和主机指定目录

 

进入主机的home目录,发现在主机的home目录下自动生成一个名为ceshi的目录

 

4、在容器指定目录里新建任意文件,查看数据挂载效果

例:

(1)容器新建文件,主机自动挂载容器指定目录的数据

容器:

新建名为tt .txt的文件

 

主机:

查看/home/ken目录下的文件,发现容器的tttxt文件同步过来到主机

 

 

其他:

1、匿名挂载数据卷

docker -v 容器内路径

例:

    #选项及解释
    --name="name"参数用于给容器取名字 ,用来区分容器
    -d表示容器在后台运行
    -p表示指定容器的端口,写法为-p主机端口:容器端口
    -v表示使用数据卷
     
    docker run -d -p 3310:3306 --name mysql01 -v /etc/mysql mysql:8.0

2、具名挂载数据卷

docker -v 卷名:容器内路径

例:

    #选项及解释
    --name="name"参数用于给容器取名字 ,用来区分容器
    -d表示容器在后台运行
    -p表示指定容器的端口,写法为-p主机端口:容器端口
    -v表示使用数据卷
    name-mysql就是卷的具体名字
     
    docker run -d -p 3100:3306 --name mysql01 -v name-mysql:/etc/mysql mysql:8.0

3、查看所有的数据卷

docker volume ls

4、查看数据卷的挂载目录

docker volume inspect 卷名

例:

 所有docker容器内的数据卷,没指定目录的情况下默认目录都是/var/lib/docker/volumes/卷名/_data

5、改变读写权限(一旦设置了容器权限,容器对挂载出来的内容就有了限定)

只读(只能通过宿主机来操作内容,容器内部无法操作):

    #选项及解释
    --name="name"参数用于给容器取名字 ,用来区分容器
    -d表示容器在后台运行
    -P表示指定容器的端口,写法为-p主机端口:容器端口
    -v表示使用数据卷
    name-mysql就是卷的具体名字
    ro全称readonly,表示只读
     
    docker run -d -p 3100:3306 --name mysql01 -v name-mysql:/etc/mysql:ro mysql:8.0

可读可写:

    #选项及解释
    --name="name"参数用于给容器取名字 ,用来区分容器
    -d表示容器在后台运行
    -P表示指定容器的端口,写法为-p主机端口:容器端口
    -v表示使用数据卷
    name-mysql就是卷的具体名字
    rw全称readwrite,表示可读可写
     
    docker run -d -p 3100:3306 --name mysql01 -v name-mysql:/etc/mysql:rw mysql:8.0

6、使用Dockerfile进行数据卷挂载

(1)创建一个名为dockerfile的Dockerfile文件,内容如下

    #镜像以什么为基础
    FROM centos:7
     
    #挂载数据卷(匿名)
    VOLUME ["volume01","volume02"]
     
    #挂载数据卷(具名)
    #VOLUME [volume01:"volume01",volumeo2:"volume02"]
     
    #输出结束
    CMD echo '=========================END====================='
     
    #走的命令
    CMD /bin/bash

(2)输入以下命令编译出名为myimage的镜像

    #选项及解释
     
    myimage表示镜像名称
    -t表示后面是自定义镜像名
     
     
    docker build -f dockerfile -t myimage .

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值