Docker文件挂在时的一些细节
加粗样式docker -v可以挂载目录,也可以挂载某个文件,但是挂载这两个是有区别的
文件夹挂载
在这里为了好描述称宿主机上的文件夹为A,容器中的文件夹为B
- 若A是不存在的文件夹/A是存在的文件夹且为空、不论B文件夹是否存在都会被覆盖(清空)
- 若A是存在的文件夹且不为空、不论B文件夹是否存在都会被覆盖(原内容清空, 覆盖为host上文件夹内容)
文件挂载
在这里为了好描述称宿主机上的文件为A,容器中的文件为B
- 若A不存在,那么此时就会报错
- 若A存在,B也存在,那么容器中的文件B中的内容会被覆盖,文件B同目录下的其他文件不受影响
- 若A存在,B不存在,那么容器中会创建一个B文件,内容为A文件中的内容,文件B同目录的其他文件不受影响
挂载后修改内容的一些细节
- 挂载的是文件夹,在文件夹中创建和删除文件,那么数据卷中会跟着一起变化
- 挂载的文件,数据卷中通过echo、cat为文件添加内容时,那么容器中的文件内容会跟着一起改变
- 挂载的文件,数据卷中通过vim、set编辑文件时,此时容器中的文件不会跟着一起改变,重启后才会改变