docker笔记6-数据卷


一、初识dockerfile

之前的内容中,我们都是通过pull的方式拉取别人写好的镜像,那么通过编写dockerfile,我们可以编写自己想要的镜像。
在这里插入图片描述

1.1 编写镜像

# 创建一个dockerfile文件,名字可以随便 建议Dockerfile
# 文件中的内容 指令(大写) 参数
vim dockerfile1

进入文件,编写内容

#这里的每个命令,就是镜像的一层!
FROM centos

VOLUME ["volume01","volume02"]   #匿名挂载

CMD echo "---------end----------"

CMD /bin/bash

1.2 构建镜像

docker build xx
docker build -f /home/docker-test-volume/dockerfile1 -t kuangshen/centos:1.0 .

在这里插入图片描述

1.3 运行镜像

docker run -it kuangshen/centos:1.0 /bin/bash

在这里插入图片描述

二、案例

2.1 多个容器共享数据

需求:启动多个自定义的镜像,并且实现这些容器之间的数据卷挂载。
上面我们已经启动了一个docker01容器,那么接下来我们分别启动docker02、docker03容器,并分别以docker01为父容器,实现数据卷挂载。
命令:

--volume-from 
docker run -it --name docker02 --volumes-from docker01 kuangshen/centos:1.0
docker run -it --name docker03 --volumes-from docker01 kuangshen/centos:1.0

我们分别在某一个容器的volume01或者volume02中进行创建文件,可以发现,其他容器也会同步更新这些操作。
简单理解,就像是一种映射关系。这个三个容器中的volume01和volume02文件都与虚拟机的/var/lib/docker/volumes/xxxx/_data这个目录建立映射关系,因此就算其中某个容器关系或者被删除,也不会影响其他容器中的数据。

2.2 多个mysql数据共享

docker run -d -p 3310:3306 
-v /etc/mysql/conf.d 
-v /var/lib/mysql 
-e MYSQL_ROOT_PASSWORD=root
--name mysql01 mysql:5.7


docker run -d -p 3311:3306 
-e MYSQL_ROOT_PASSWORD=root
--name mysql02 
--volumes-from mysql01 mysql:5.7

# 这个时候可以实现两个容器数据同步

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值