docker数据持久化存储和数据共享

第一种
指定volume文件mysql存储,存储的位置为/var/lib/mysql
-v mysql:/var/lib/mysql

第二种
同步文件,将容器中的skeleton文件夹的内容同步到宿主机的skeleton文件夹
-v /soymilk/docker/skeleton:/skeleton (-v $(pwd):/skeleton)

一般容器的数据会保存在容器内,一旦容器被删除,数据随之被删除,所以引入数据持久化技术,将容器的数据外挂在外部的存储中,一旦容器被删除,数据仍能保存下来

在这里插入图片描述
在这里插入图片描述

1.sudo docker run -d -v mysql:/var/lib/mysql --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql
-d 后台运行
-v容器起个别名,别名:容器中所在位置
–name 容器名
-e设置环境变量,MYSQL_ALLOW_EMPTY_PASSWORD=true是为了不用创建root密码使用mysql

2.查看volume:
docker volume ls
docker volume inspect 容器名
删除volume:
docker volume rm volume名

3.进入mysql容器里面:
sudo docker exec -it mysql1 /bin/bash

4.删除mysql容器
sudo docker rm -f mysql1
-f 强制删除正在运行中的容器

5.仍旧使用之前的volume ,创建新的容器mysql2
sudo docker run -d -v mysql:/var/lib/mysql --name mysql2 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql
进入mysql2容器
sudo docker exec -it mysql1 /bin/bash
在这里插入图片描述
将本地目录和容器中的目录一一对应起来
这种方式的数据持久化是将docker容器指定的文件夹下的所有数据与本地对应文件夹的数据同步,如果本地这个文件夹有改动 docker对应文件夹的内容也会随之改动 反过来也是一样的

在这里插入图片描述
docker run -d --name web -p 80:80 -v $(pwd):/usr/share/nginx/html soymilk/nginx

命令总结:

  1. docker volume create
    命令用于创建新卷。默认情况下,新卷创建使用 local 驱动,但是可以通过 -d 参数来指定不同的驱动。
  2. docker volume ls
    会列出本地 Docker 主机上的全部卷。
  3. docker volume inspect
    用于查看卷的详细信息。可以使用该命令查看卷在 Docker 主机文件系统中的具体位置。
  4. docker volume prune
    会删除未被容器或者服务副本使用的全部卷。
  5. docker volume rm
    删除未被使用的指定卷。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值