docker数据卷及数据卷容器

docker数据卷及数据卷容器

1、数据卷

数据卷:简称volume,用于docker容器内文件及数据的持久化。

持久化:在容器内创建的文件及数据仅在容器的生命周期内有效,当容器被删除后,文件及数据也随之丢失。持久化可以帮助把docker内部的文件及数据映射到本地,实现备份及与宿主机或其他容器交换文件。

在这里插入图片描述

数据卷的特点:
  1. 数据卷是宿主机中的一个目录或文件
  2. 当容器目录和数据卷目录绑定后,对方的修改会立即同步
  3. 一个数据卷可以被多个容器同时挂载
  4. 一个容器也可以挂载多个数据卷
配置数据卷
docker run ... –v 宿主机目录(文件):容器内目录(文件) ... 

例如:

docker run -it --name ub1 -v /root/data:/root/data1 ubuntu:latest

注意事项:

  1. 目录必须是绝对路径
  2. 如果目录不存在,会自动创建
  3. 可以挂载多个数据卷

也可以将容器内运行应用的关键配置及数据配置持久化到本地,下次再启动新的容器的时候,通过挂载之前的持久化目录,就可以恢复上次容器内的数据及文件,以mysql为例:

docker run -itd -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf/my.cnf:/etc/my.cnf -e MYSQL_ROOT_PASSWORD=123456 -d mysql:latest

几个目录说明:

/var/log/mysql : mysql应用的运行日志

/var/lib/mysql: mysql应用的数据库及文件

/etc/my.cnf: mysql应用的配置文件

2、数据卷容器

在这里插入图片描述

主要应用场景:简化大量容器的数据同步问题

配置数据卷容器

step1: 使用-v /volume参数创建data_container

docker run -it --name data_container -v /volume ubuntu:latest /bin/bash

step2: 启动其他容器并挂在data_container

docker run -it --name ub1 --volumes-from data_container ubuntu:latest /bin/bash
docker run -it --name ub2 --volumes-from data_container ubuntu:latest /bin/bash
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值