Docker容器的数据卷(volumes)
Posted So istes immer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker容器的数据卷(volumes)相关的知识,希望对你有一定的参考价值。
1.容器数据卷技术解决什么问题
docker可将应用和环境打包成一个镜像。容器是镜像的实例化。
我们的数据如果都在容器中,一旦容器删除,数据就会丢失。
数据卷技术可将容器产生的数据同步到本地,容器之间也可以共享,从而实现容器数据的持久化。
当本地和容器可以实现目录映射,修改容器配置就不必进入容器,有了映射直接在本地修改即可。
2.使用数据卷(volumes)
# 创建一个容器,-v选项表示携带一个数据卷,选项后面是一个目录的映射
docker run -v 主机目录:容器内目录 image
实例1
# 将本地/home/test目录与容器的/home目录进行映射
# -it选项对应/bin/bash,表示分配一个shell用于和容器交互
docker run -it -v /home/test:/home centos /bin/bash
# 接着,我在容器的/home目录下面新建了一个hello.java,如下图
在本地/home/test目录下面我们可以看到数据已经同步
实例2:mysql数据持久化
docker pull mysql:8.0 # 拉取镜像
# 启动一个mysql容器,MYSQL_ROOT_PASSWORD用于设置密码
# 这里将mysql容器的配置文件目录和数据目录都做了一个本地映射
docker run --name mysql01 -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0
查看本地/home/mysql/data目录
可以用Navicat测试一下数据库的连接,并且创建一个test数据库
再次查看本地/home/mysql/data目录,数据已更新,多了一个test数据库
以上是关于Docker容器的数据卷(volumes)的主要内容,如果未能解决你的问题,请参考以下文章