Docker volume 挂载卷的实现要领
最简略的hello world输出镜像的制作是最简略的开端,但是要是我们需要修改我们的运转代码,或者有输入输出文件的时候,我们就没有办法了,每一个container运转结束后,其分配的资源以及文件系统都会消散,那么我们就需要在当地给docker container挂载一个卷,这样在container运转的时候,container的挂载点下的文件操纵,也一样会影响到给container挂载的当地卷。就像linux中的mount同样。这样我们只需要修改当地卷中的代码,而不需要修改image即可。
例如我们创建一个Dockerfile文件:
其中:
VOLUME:是在container中创建一个挂载点,我们可以将当地的一个文件卷挂载在container的/data下面,这样我们在container的data目录下的操纵就和在当地卷的操纵是同样的。
CMD: 在container启动的时候运转的下令,也只能有一条存在。
创建的镜像所要作的操纵是统计一个文件中的信息然后将其输入到2.txt中。应用$docker build –t count:v1 ./ 来创建镜像,并查看
在运转的时候,我们需要加上 -v /root/laipeng.han/file:/data来将当地文件/root/laipeng.han/file 挂载在container的/data下面,那么/root/laipeng.han/file下面的所有文件,在container的/data/下面全部都可以看到。
运转指令为:docker run -v /root/laipeng.han/file:/data count:v1
终究container在/data/下面输出的效果的文件2.txt,在/root/laipeng.han/file/下面也是一样可以看到的。这样我们修改/root/laipeng.han/file/下面的countfile.py代码也是可以直接运转的,无须再创建新的镜像文件。
以上代码都是亲自测试,请大家安心运转,但愿对大家的学习有所帮忙,也但愿大家多多支撑脚本之家。