Docker容器数据卷

Docker容器数据卷

1. docker容器数据卷作用

docker当把容器删除后,那么该容器中的数据就会丢失,前面可以使用命令 docker cp命令,将数据复制到宿主机中,当时这不是长久之道,容器数据卷的作用就好比好比redis的aof等,用于数据持久化,以及用于容器间的数据共享等作用

2. 添加数据卷的两种方式

2.1 使用命令添加

2.1.1 命令
docker run -it -v 宿主机目录:容器中目录 镜像名

以centeros7为例,docker run -it -v /usr/lonely:/usr/lonely centos

使用该命令,可以在容器中创建 /usr/lonely 目录,与宿主机的 /usr/lonely绑定,实现数据共享

2.1.2 如何查看是否实现绑定(挂载)

可以在宿主机中,使用以下命令

docker inspect 容器id

在展示的信息中,可以明显的看到挂在bing,并且可以看到权限是 RW:true,表示可读写

2.1.3 当容器退出后,修改宿主机,再次启动容器后会实现同步吗?

这个可以先退出容器后,在绑定目录修改或者新建文件,然后再次进入容器,查看是否同步,经过测试,发现结果如下:

即使容器退出,修改宿主机后,再次登入会显示最新同步后的数据信息,即会实现同步
2.1.4 如何实现权限控制

正常通过以上命令进行添加数据卷,默认权限是 RW:true,即可读写,可以使用以下命令,可以容器数据卷只可以读,即read only

docker run -it -v 宿主机目录:容器中目录:ro 镜像名

ro:表示 read only , 配置后可以在容器中挂载目录下添加文件试试,会提示该目录为只读。

2.2 使用DockerFile添加

2.2.1 操作步骤
  1. 在宿主机上新建一个目录

    mkdir mydockerfile
    

    在宿主机上

  2. 进入目录,新建Dockfile文件,并编辑它

    cd mydockerfile
    
    vim Dockfile
    

    Dockfile文件内容如下:

    FROM centos
    VOLUME ["/test_dockfile_container"]
    CMD echo "lonely --success"
    CMD "/bin/bash"
    

    保存退出

  3. 使用命令docker build 打包构建新镜像

    docker build -f dockerfile文件目录 -t 镜像名以及版本号 .
    最后面有一个 . 表示在当前目录下,用法例如:
    	docker build -f /mydockerfile/Dockerfile -t lonely/mydockerfile .
    

    -f :表示Dockfile文件目录

    -t:表示镜像名以及版本号

    最后的 . :表示使用当前目录的Dockfile文件进行构建

  4. 构建完成后,使用 docker images 查看刚刚生成的镜像

2.2.2 验证是否构建成功
  1. 运行刚刚创建的镜像

    docker run -it 镜像名
    
  2. 进入容器后,查看是否存在Dockerfile文件中的 VOLUME对应的文件夹

  3. 那么对应宿主机目录上那个呢?

    1. 进入宿主机中,使用命令 docker inspect 查看绑定的 宿主机目录
    2. 去查看生成的宿主机挂载目录中 添加一个文件来测试是否挂载成功
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值