Docker 学习笔记(二)数据管理。

1.Docker 下的数据管理。

数据卷

数据卷 是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性:

  • 数据卷 可以在容器之间共享和重用

  • 对 数据卷 的修改会立马生效

  • 对 数据卷 的更新,不会影响镜像

  • 数据卷 默认会一直存在,即使容器被删除

1.在容器内创建一个数据卷。

(1) 在启动 tomcat 服务时可以为该容器创建一个数据卷,来存放工程文件。创建命令为:

sudo docker run –d –P --name web –v/webapp tomcat

在该命令里-v 标记可以在容器里创建一个数据卷。可以多次使用-v 标记创建多个数据卷。

-d 表示后台运行,返回ID。

--name 命名容器。

(2) 使用本地目录挂载到容器里作为数据卷。例如执行下面命令:

sudo docker run -d -P -v <主机路径>:<容器路径> tomcat


上面命令加载主机的目录到容器的目录。该功能在进行测试时十分方便,比如用户可以放置一些程序或者数据到本地目录中,然后在容器里运行和使用。这里要注意本地目录的路径必须是绝对路径,如果本地目录不存在,Docker 会自动创建。

 

(3)-v 也可以从主机挂载单个文件到容器里作为数据卷。
 

sudo docker run --rm -it -v $HOME/.bash_history:/.bash_history ubuntu:16.04 bash

这样就把本地的.bash_history 文件挂载到容器里,可以记录容器输入命令的历史了。

( 4 ) docker 挂载数据卷的默认权限是读写(rw),用户也可以通过,ro指定为只读,加了 ro 之后,容器挂载的数据卷的数据就无法修改了。例如:

sudo docker run --name my-nginx -v <source>:<target>:ro -d nginx


2.数据卷容器。

执行命令:

sudo docker run -it -v /dbdata --name dbdata ubuntu:16.04

查看dbdata的目录

root@a892ff09ae51:/# ls
bin   dbdata  etc   lib    media  opt   root  sbin  sys  usr
boot  dev     home  lib64  mnt    proc  run   srv   tmp  var

 然后可以在其他容器里使用—volumes-from 来挂载 dbdata 容器中的数据卷,例如创建 db1 和 db2 两个容器,并从 dbdata 容器挂载数据卷:

sudo docker run –it -–volumes-from dbdata -–name db1 ubuntu:16.04
sudo docker run –it -–volumes-from dbdata -–name db2 ubuntu:16.04

两个容器 db1 和db2 都挂载一个数据卷到相同的/dbdata 目录。三个容器任何一个在该目录下写入,其他容器都可以看到。如下图所示。

3.删除数据卷。

用rm 命令

sudo docker rm <volume-name>

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值