如何去查找某个镜像的DockerFile如何编写的,以tomcat为例
去dockerhub中搜索tomcat镜像,在文档页面对镜像都有很详细的说明
image.png

在DockerFile中使用VOLUME指令来给镜像添加一个或多个数据卷
VOLUME[“/containerData”,”/containerData2”,”/containerData3”]
说明:出于可移植和分享的考虑,用-v 主机目录:容器目录 这种方法不能够直接在DockerFile中实现(由于宿主机目录是依赖于特定宿主机的,并不能够保证在所有的宿主机上都存在这样的特定目录)

  1. 构建DockerFile文件,编写DockerFile的文件内容 ```shell

[linguo@VM-4-6-centos dockerFile]$ touch centos_volume_file [linguo@VM-4-6-centos dockerFile]$ vim centos_volume_file

DockerFile添加容器数据卷卷测试内容

FROM centos VOLUME [“containerData1”,”containerData2”] #添加两个数据卷 CMD echo “finish—success” CMD /bin/bash

解析成命令形式的大致意思如下(DockerFile是不支持主机路径的,只是描述一下): docker run -it -v /host1:/containerData1 -v /host2:/containerData2 centos /bin/bash

  1. 2. 编译DockerFile文件后生成一个新的镜像
  2. ```shell
  3. [linguo@VM-4-6-centos dockerFile]$ docker build -f /home/linguo/dockerFile/centos_volume_file -t linguo/centos-dockerfile .
  4. [linguo@VM-4-6-centos dockerFile]$ docker images
  5. REPOSITORY TAG IMAGE ID CREATED SIZE
  6. linguo/centos-dockerfile latest 47e5e93b0f03 2 minutes ago 231MB
  7. [linguo@VM-4-6-centos dockerFile]$ docker run -it 47e5e93b0f03 /bin/bash
  8. [root@29eae239dbe6 /]# ls
  9. bin containerData1 containerData2 dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
  10. 生成一个镜像名为linguo/centos-dockerfile标签默认latest的镜像
  11. 如果文件名为DockerFile可以不加 -f ,注意不要丢了最后的小数点

容器已经有了数据卷,那么对应宿主机的数据卷目录在哪呢?
可以通过查看容器运行的详情来查看,可以看到分配的宿主机路径

  1. [linguo@VM-4-6-centos dockerFile]$ docker inspect 29eae239dbe6
  2. [
  3. {
  4. ...
  5. "Mounts": [
  6. {
  7. "Type": "volume",
  8. "Name": "ca6ac360d23b50e80eb1bbea37cc33f24ef2d6cb42fb24233c5b0d963c97566d",
  9. "Source": "/var/lib/docker/volumes/ca6ac360d23b50e80eb1bbea37cc33f24ef2d6cb42fb24233c5b0d963c97566d/_data",
  10. "Destination": "containerData2",
  11. "Driver": "local",
  12. "Mode": "",
  13. "RW": true,
  14. "Propagation": ""
  15. },
  16. {
  17. "Type": "volume",
  18. "Name": "641a2dbc69d2c658a3f742206a0e1a3361b74f490c7c3456e0083f1ba07afbce",
  19. "Source": "/var/lib/docker/volumes/641a2dbc69d2c658a3f742206a0e1a3361b74f490c7c3456e0083f1ba07afbce/_data",
  20. "Destination": "containerData1",
  21. "Driver": "local",
  22. "Mode": "",
  23. "RW": true,
  24. "Propagation": ""
  25. }
  26. ],
  27. ...
  28. }
  29. ]