Docker(五)数据管理

Docker(五)数据管理

docker的镜像是只读的,虽然依据镜像创建的容器可以进行操作,但是我们不能将数据保存到容器中,因为容器会 随时关闭和开启。所以数据卷和数据卷容器就是把数据保存下来

数据卷使用

1.目录

  • 命令格式:docker run -itd --name [容器名字] -v [宿主机目录]:[容器目录] [镜像名称] [命令(可选)]

  • 在本机创建文件:/tmp/lgy_T/T1.txt

  • 启动容器,挂载数据卷:sudo docker run -itd --name test1 -v /tmp/lgy_T:/tmp/lgy_T nginx

    把本地的/tmp/lgy_T文件夹,挂载到容器中的/tmp/lgy_T冒号前面为本机,后面为容器,容器没有的会自动创建

  • 进入容器进行验证:sudo docker exec -it d3d5ea511288 /bin/bash

2.文件

  • 命令格式:docker run -itd --name [容器名字] -v [宿主机文件]:[容器文件] [镜像名称] [命令(可选)]

  • 使用例子:sudo docker run -itd --name test02 -v /tmp/lgy_T/T1.txt:/tmp/lgy_T/T2.sh nginx

数据卷容器

1、创建数据卷容器
2、其他容器挂载数据卷容器:数据卷容器不启动
  • 创建一个数据卷容器
    命令:docker create -v [容器数据卷目录] --name [容器名字] [镜像名称] [命令(可选)]
    例子:docker create -v /data --name v-test nginx

  • 创建两个容器,同时挂载数据卷容器

 docker run --volumes-from c5ce01cb14102b0787be35e2fb6c4faf5cdeff99bb7d03a5600f65bf4b5de8dd -tid --name vc-test1 nginx /bin/bash

 docker run --volumes-from c5ce01cb14102b0787be35e2fb6c4faf5cdeff99bb7d03a5600f65bf4b5de8dd -tid --name vc-test2 nginx /bin/bash

  • 进入容器1和容器2,创建文件
    docker exec -it vc-test1 /bin/bash
    echo “123” >/data/123-t1.txt

    docker exec -it vc-test2 /bin/bash
    echo “123” >/data/123-t2.txt

  • 则在容器1和2均能够看到各自创建的文件

  • 宿主机没有保存到数据

  • 结论:容器间可以共享数据卷容器,不过数据是保存在数据卷内,并没有保存到宿主机的文件目录中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值