Docker16:数据卷容器2

Docker16:数据卷容器2

Created
Nov 16, 2021 02:40 PM
Last Edited
Last updated December 2, 2021
Tags

1. 前言

容器之间同步
notion image

2. 启动容器

2.1 创建并启动docker01容器

# 1. 用自己的镜像创建一个容器,以镜像名运行,不写版本默认回去找最新版本(创建的时候指定了1.0,这里需要加上) docker run -it --name docker01 henggao/centos:1.0
运行如图
notion image
# 退出不关闭容器,Ctrl + P + Q

2.1 创建并启动docker02容器

  • 继承docker01创建
# 2. 继承docker01创建docker02 docker run -it --name docker02 --volumes-from docker01 henggao/centos:1.0
notion image
 

2.3 进入docker01,创建文件

# 1. 进入docker01 root@docker:/home/henggao/Desktop# docker attach e40db2ed9bbd # 2. 创建文件 [root@e40db2ed9bbd /]# cd volume01 [root@e40db2ed9bbd volume01]# ls [root@e40db2ed9bbd volume01]# touch docker01.txt
在docker02中查看
[root@6e7d6f1c19fc /]# cd volume01 [root@6e7d6f1c19fc volume01]# ls docker01.txt
 

2.4 小结

  • docker01创建的内容同步到了docker02
  • 数据备份机制
  • 创建docker03也可以同步
  • 停止docker01,删除docker01,docker02、docker03数据依然存在。
 
🔔
补充:多个mysql实现数据共享
# 1. 创建mysql01 docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql # 2. 使用继承mysql01创建mysql02 docker run -d -p 3310:3306 -v -e MYSQL_ROOT_PASSWORD=123456 --name mysql02 --volumes-from mysql01 mysql
 
结论:
容器之间配置信息的传递,数据卷容器的生命周期一直持续到没有容器使用为止。
一旦持久化到了本地,这个时候本地的数据不会删除。
 
🔔
疑问
  • 当容器挂载到主机目录,主机目录有内容会之际同步到容器相应目录
  • 如果主机目录有内容,容器目录也有内容,保留哪一个?挂载宿主机文件夹到容器里面