1.Docker 中数据管理两种方式
-数据卷 (Volumes)单纯的存储数据----好
-挂载主机目录(Bind mounts)
Named Volumes | Bind Mounts | |
---|---|---|
Host Location | Docker chooses | You control |
Mount Example (using -v ) | my-volume:/usr/local/data | /path/to/data:/usr/local/data |
Populates new volume with container contents | Yes | No |
Supports Volume Drivers | Yes | No |
2.容器数据卷
什么是容器数据卷
容器之间的数据共享技术,Docker 容器中产生的数据,同步到本地。这就是卷服务!目录的挂载,将我们容器内的目录挂载带Linux上面 。 为了容器的持久化和同步操作,容器间也可以数据共享。
使用数据卷
1.创建数据卷
docker volume create wtest(卷名字) #数据卷存在主机/var/lib/docker/volumes/下,root权限才可以查看
2.启动容器 -v通过指定卷加载
#我们将使用命名卷并将其装载到容器内路径,它将捕获在该路径上创建的所有文件
docker run -v 数据卷name:容器内路径 (具名挂载)
3.在容器内进行一些操作,移除容器,,,开启一个新的容器使用相同的数据卷,数据仍然存在
[root@VM-0-4-centos etc]# docker volume create wtest
wtest
[root@VM-0-4-centos etc]# docker volume inspect wtest
挂载主机目录
docker run -it -v 主机目录:容器内目录
#测试
[root@VM-0-4-centos home]# docker run -it -v /home/shujujuantest:/home/shujujuantest centos:7 /bin/bash
测试数据同步(双向绑定)
3.实战–安装mysql
#1.获取镜像
docker pull mysql:5.7
#2.运行,需要数据挂载
#docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
docker run -d -p 3307:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
-d 后台启动
-p 端口映射
-v 数据挂载,可以多个
-e 配置环境,设置mysql登陆密码