docker数据卷容器--实现多个容器文件共享

什么是容器数据卷

例如,如果数据都在容器中,如果我们的容器删除了,数据就会也被删除了,然后容器数据卷可以帮我实现数据持久化。
容器之间有一个数据共享的技术,docker容器中产生的数据,同步到本地,这个就是卷技术,也就是目录的挂载。将容器里面的目录,挂载到linux中。

总之,容器的持久化和同步操作,容器间也是可以实现数据共享的

其实docker不只是可以与服务器实现文件共享,它还可以实现多个容器共享,也就是同步
命令:

docker run -it --name docker004 --volumes-from docker003 1f18058ad2f1

–volumes-from是绑定容器命令,–volumes-from docker003就是绑定这个容器的文件,如果docker003这个容器的文件内容发生变化,那么docker004的内容也会变化,然后这个docker003就是数据卷

例如,多个mysql实现数据共享

第一个mysql,将这个当为数据卷容器

docker run -d -p 3301:3306 -v /etc/mysql/conf.d -v /var/lib/mysql -e MYSQL_root_password=123456 --name mysql001 mysql:5.7

第二个mysql

docker run -d -p 3302:3306  -e MYSQL_root_password=123456 --name mysql002 --volumes-from mysql001 mysql:5.7

总结:容器之间配置信息的传递,数据卷容器的生命周期一直持续到没有容器使用为止。但是,一旦持久化到本地了,这个时候,就是是数据卷容器删除了,本地的数据都不会删除

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,关于 Docker 数据的进阶篇,我可以为你提供以下内容: 1. 数据的类型 Docker 数据有三种类型:主机挂载、匿名、命名。其中,主机挂载是将主机上的目录挂载到容器中;匿名是在容器内部创建的临时;命名则是给一个名字,并将其保存在 Docker 数据存储区中。 2. 数据的备份与恢复 我们可以使用 Docker Compose 中的 `docker-compose.yml` 文件来定义数据的备份和恢复。具体方法是,在 `volumes` 字段中定义及其备份路径,然后在 `services` 字段中指定容器和对应的名称。 例如: ``` version: "3" services: db: image: mysql volumes: - db_data:/var/lib/mysql command: --default-authentication-plugin=mysql_native_password backup: image: backup volumes: - /path/to/backup:/backup - db_data:/data/db command: backup.sh volumes: db_data: ``` 以上代码中,我们定义了一个 `db` 服务和一个 `backup` 服务。其中,`db` 服务使用了名为 `db_data` 的命名,并挂载到容器的 `/var/lib/mysql` 目录中;`backup` 服务则使用了两个一个是挂载到宿主机上的 `/path/to/backup` 目录,用于保存备份文件;另一个是使用了 `db_data` 命名,并挂载到容器的 `/data/db` 目录中,用于备份数据。最后,我们在 `backup` 服务中执行了备份脚本 `backup.sh`。 3. 数据共享 我们可以将一个数据挂载到多个容器中,实现数据共享。例如,我们可以将一个命名挂载到 `web` 和 `db` 两个服务中,这样它们就可以共享数据了。 ``` version: "3" services: web: image: nginx volumes: - web_data:/usr/share/nginx/html db: image: mysql volumes: - db_data:/var/lib/mysql - web_data:/var/www/html volumes: db_data: web_data: ``` 以上代码中,我们定义了一个 `web` 服务和一个 `db` 服务。其中,`web` 服务使用了名为 `web_data` 的命名,挂载到容器的 `/usr/share/nginx/html` 目录中;`db` 服务则使用了 `db_data` 和 `web_data` 两个,分别挂载到容器的 `/var/lib/mysql` 和 `/var/www/html` 目录中,实现数据共享。 希望以上内容能够对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小信啊啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值