Docker 数据管理、容器互联 与 镜像的创建、编译(DockerFile)

这篇博客详细介绍了Docker的数据管理,包括数据卷和数据卷容器的使用,以及容器互联的方式。此外,重点讨论了Docker镜像的创建,特别是基于Dockerfile的构建过程,讲解了联合文件系统、镜像结构和Dockerfile常用指令,提供了一个构建Apache镜像的实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

一、Docker 数据管理

管理 Docker 容器中数据主要有两种方式:

  • 数据卷(Data Volumes):宿主机与容器 共享数据
  • 数据卷容器(DataVolumes Containers):容器与容器 共享数据
  • 都使用 -v 进行创建

1.1 数据卷

  • 数据卷是一个供容器使用的特殊目录,位于容器中
  • 可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立刻可见,并且更新数据不会影响镜像,从而实现数据在宿主机与容器之间的迁移。 相当于把宿主机的目录 挂载到 容器的某个目录(数据卷)中
  • 数据卷的使用类似于Linux下对目录进行的 mount 操作(就是挂载)。
  • 修改文件都能看到,数据相互共享。

注意:宿主机本地目录的路径必须是使用 【绝对路径】。如果路径不存在,Docker会自动创建相应的路径。

docker pull centos:7

#将宿主机的目录 /var/www/ 目录挂载到容器中的 /data1/ 目录下
#-v选项:在容器内创建数据卷
docker run -v /var/www:/data1 --name web1 -it centos:7 /bin/bash

#进入容器数据卷目录中创建文件,进行验证
docker exec -it 容器ID bash
echo "this is web1" > /data1/abc.txt
exit

#返回宿主机进行查看
exit 
cat /var/www/abc.txt
#能看到容器中创建的文件,宿主机也有

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

注:之前学过的 docker cp 命令也可以在宿主机与容器之间复制数据。

1.2 数据卷容器(–volumes-from)

  • 如果需要在容器之间共享一些数据,最简单的方法就是使用数据卷容器。
  • 数据卷容器是一个普通的容器,专门提供数据卷给其他容器挂载使用。
  • 实现了容器间数据的共享

需要创建两个容器:

(1)创建一个容器作为数据卷容器

#-v 指定两个数据卷
docker run --name web2 -v /data1 -v /data2 -it centos:7 /bin/bash

#exec 进入容器,在不同数据卷写入不同内容
docker exec -it 容器ID bash
echo "this is web2" > /data1/abc.txt
echo "THIS IS WEB2" > /data2/ABC.txt

(2)使用 --volumes-from 来挂载web2容器中的 数据卷 到新的容器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值