1.DockerFile
DockerFile 就是用来构建docker镜像的构建文件 我们可以通过脚本来生成镜像,镜像是一层一层的,脚本一个个的命令,每个命令都是一层 脚本内容:
FROM centos
VOLUME ["volume01","volume02"]
CMD echo "-------end--------"
CMD /bin/bash
命令
docker build -f /root/ldj/docker-file/dockerfile1 -t ldj_centos:1.0 .
. 是上下文路径
上下文路径,是指 docker 在构建镜像,有时候想要使用到本机的文件(比如复制),docker build 命令得知这个路径后,会将路径下的所有内容打包。
原理:由于 docker 的运行模式是 C/S。我们本机是 C,docker 引擎是 S。实际的构建过程是在 docker引擎下完成的,所以这个时候无法用到我们本机的文件。这就需要把我们本机的指定目录下的文件一起打包提供给 docker 引擎使用。
如果未说明最后一个参数,那么默认上下文路径就是 Dockerfile 所在的位置。
注意:上下文路径下不要放无用的文件,因为会一起打包发送docker 引擎,如果文件过多会造成过程缓慢。
1.实践一下,开始运行命令
[root@l4 docker-file]
Sending build context to Docker daemon 2.048kB
Step 1/4 : FROM centos
---> 5d0da3dc9764
Step 2/4 : VOLUME ["volume01","volume02"]
---> Running in 98a2153e334a
Removing intermediate container 98a2153e334a
---> f9bf451b304c
Step 3/4 : CMD echo "-------end--------"
---> Running in 89289d482809
Removing intermediate container 89289d482809
---> 6e41dde7d4ad
Step 4/4 : CMD /bin/bash
---> Running in f401d51984b1
Removing intermediate container f401d51984b1
---> 4e544f0e9156
Successfully built 4e544f0e9156
Successfully tagged ldj_centos:1.0
[root@l4 docker-file]
2.验证挂载的volume01文件是否同步
3.首先在容器中volume01 写入文件 
4.之后本地查看,本地已经同步 
2.数据卷容器
命令: –volumes-from 实现容器间的共享
eg:实现两个容器间的数据同步共享 1.启动容器docker01
docker run -it --name docker01 ldj_centos:1.0
2.启动容器docker02
docker run -it --name docker02 --volumes-from docker01 ldj_centos:1.0

在docekr01或者docker02写入数据,都会实现两个容器的同步  
  删除容器docker01,docker02数据不会丢失   eg2:实现三个容器间的数据同步和共享
1.同时启动容器docker01,docker02,docker03,docker02,docker03
 2. 在容器docker01创建文件docker01 在容器docker02创建文件docker02 在容器docker03创建文件docker03 查看三个容器均实现了同步  结论: 容器之间配置信息的传递,数据卷容器的生命周期一直持续到没有容器使用为止。
但是一旦持久化到了本地,本事是不会把数据删除的!
|