1.挂载的概念
预备:你需要了解docker的基本知识
docker实现了容器部署,那当我们需要配置或者查看容器生成的日志文件怎么办?
docker提供了挂载机制:挂载能够将容器内的目录/文件和外部的目录/文件关联起来
关于挂载,网上很多帖子也说不太清晰,遇到问题让人很迷茫,在此简单整理
挂载的机制:
-
挂载前,文件以宿主机为准,挂载操作会将两边文件/文件夹处理成为宿主机文件夹状态
所以当你想要进行配置挂载时,需要先在宿主机创建配置文件,才能进行挂载。挂载操作无法将容器内配置文件挂载到宿主机上。
例:宿主机conf文件夹为空,容器内conf文件夹不为空,执行 -v 宿主机conf:容器conf,最后宿主机文件夹仍然为空,容器内的conf也会为空。因为挂载操作以宿主机为准。
-
挂载后,挂载后宿主机和容器内的文件夹会保持一致。当容器内新生成了文件,宿主机的文件夹中也会更新,查看到该文件。当宿主机修改文件,该操作也会反映到容器内。
2.如何让容器挂载到宿主机
我没有找到很快捷的方法,就好像docker run -v
这样一步即可完成的命令。
如果想要让容器内的文件挂载到宿主机,需要首先创建一个临时的容器,进入容器查看目录结构并且找到想要挂载的文件/文件夹。退出容器,使用docker -cp
命令将容器内的文件/文件夹复制到宿主上。再在宿主机上进行文件配置修改,最终删除临时容器,使用docker run -v
命令完成挂载
流程:
-
创建临时容器:略
-
进入容器
docker exec -it 容器名 bash
-
退出容器,并将容器内文件夹复制到宿主机
exit #通过调整两个路径的顺序,能够调整cp的指向,与linux cp相同 docker -cp 容器名:路径 路径
-
删除容器:略
-
挂载
docker run -v 宿主机路径:容器内路径