Docker 入门系列(三)-- 容器数据卷,Dockerfile 与 Docker 网络

本文详细介绍Docker的数据卷技术,包括挂载方式、Dockerfile构建过程及网络配置等。通过实例演示容器间数据同步和自定义网络搭建。

容器数据卷

我们考虑一个问题,当我们在使用 Docker 的时候,数据是存放在容器中的,如果我们把容器删除掉,那么数据就会丢失,这肯定是不科学的,在正常情况下,我们肯定得考虑做一下持久化,把数据存储到本地。又或者说,我们现在需要容器之间进行数据的共享,这个功能 Docker 可以实现嘛?答案自然是可以的,这其实就是卷技术,实现了目录的挂载,将我们容器内的目录,挂载到了 Linux 上面。

使用数据卷的格式如下:

docker run -it -v 主机目录:容器内目录  -p 主机端口:容器内端口

我们测试一下,将主机 home 目录下的 test 文件夹映射到 centos 容器中的 /home 下,这时两个文件夹就可以实现数据同步了。

docker run -it -v /home/test:/home centos /bin/bash

在这里插入图片描述
我们在 centos 容器中的 /home 下创建了一个 test.java 文件,然后发现这个文件已经被同步到了主机的 /home/test 目录下,证明我们的数据卷技术实现成功。

当我们把容器删除之后,可以发现挂载到本地的数据卷没有丢失,这就实现了容器数据持久化功能。

挂载方式

数据卷一共有三种挂载方式,分别为匿名挂载、具名挂载和指定路径挂载。

-v 容器内路径			  #匿名挂载
-v 卷名:容器内路径		  #具名挂载
-v /宿主机路径:容器内路径  #指定路径挂载

匿名挂载的实现:

[root@VM-0-4-centos test]# docker run -d --name test01 -v /home centos

查看一下所有卷的情况:

[root@VM-0-4-centos test]# docker volume ls
DRIVER              VOLUME NAME
local               522ec66631d0f3f3808db304ca3808551da882eef8743845a72eb355f5b1ef37

显然,这是没有卷名的,也就是匿名挂载。

具名挂载的实现:

[root@VM-0-4-centos test]# docker run -d --name test02 -v vo:/home centos

我们再查看所有卷的情况,可以发现多了一个 vo 名字,这便是具名挂载。
在这里插入图片描述
Docker 容器内的卷,如果没有指定目录,都是存放在 /var/lib/docker/volumes/自定义的卷名/_data 下的。

Dockerfile

Dockerfile 是用来构建 docker 镜像的文件。我们可以通过下面这个脚本来生成镜像,由于镜像是一层一层的,而脚本的命令是一个一个的,所以其实每个命令都是镜像的一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值