Dockerfile中volume功能作用【通过镜像启动docker容器】

 一  dockerfile的volume

1.1.Dockerfile中volume作用

Volume可以使得多个容器共享数据;即我们可以在宿主机上创建一个目录容器的某个目录(称为挂载点、或者叫卷)关联起来,容器上的挂载点下的内容就是宿主机的这个目录下的内容。

1.2.方式1通过docker run命令创建挂载点

1查看镜像

2.创建容器,用tomcat:7这个镜像来启动容器并且创建挂载点:

docker run是启动容器命令;

-d代表后台运行;

-P代表端口自动帮我们绑定;

--name tomcat代表将启动的容器命名为tomcat;

-v标记在容器中设置了一个挂载点 /usr/local/data(就是容器中的一个目录)并将主机上的 /home/env/containerdata 目录中的内容关联到/usr/local/data下。

3.案例操作

https://www.cnblogs.com/Json1208/p/8975403.html

3.1 容器启动后,先查看宿主机/home/env目录下是否有一个containerdata

3.2宿主机已存在该目录,接着我们进入容器内部,查看是否生成/usr/local/data目录:

  3.3不管宿主机或容器内部,都自动创建了目录,接着我们在宿主机创建一个abc文件,再来查看下容器内是否同步了abc文件:

 3.4在启动容器时设置挂载点也可以不指定宿主机的目录,这时docker会自动绑定主机上的一个目录:

通过docker inspect 容器命令可以查看到挂载的目录

3.5 上面 Mounts下的每条信息记录了容器上一个挂载点的信息,"Destination" 值是容器的挂载点,"Source"值是对应的主机目录,查看宿主机是否存在该目录:

1.3.方式2通过dockerfile创建挂载点

通过dockerfile的 VOLUME 指令可以在镜像中创建挂载点,这样只要通过该镜像创建的容器都有了挂载点,但值得注意的是通过 VOLUME 指令创建的挂载点,无法指定主机上对应的目录,而是自动生成的

1编写dockerfile

#base image

FROM centos

#MAINTAINER,this dockerfile creater

MAINTAINER loose@docker.com

#VOLUME,指定挂在目录

VOLUME ["/usr/local/data1"]

2.其次,通过该dockerfile构建镜像:

 3.启动容器

4.根据容器查看挂载信息

在dockerfile中VOLUME可以指定多个挂在目录,即["/usr/local/data1","/usr/local/data2"]代表这两个目录都会挂在到宿主机的自动生成的目录。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值