本文主要是介绍Docker使用5-Use bind mounts,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
写在前面
主题是Use bind mounts,这里是链接。本文主要学习持久化数据的另一种方式。
使用mount持久化数据
前文使用Volume持久化数据,这里使用另一种方式Mount持久化数据,就是把主机中的路径映射到容器内的路径。下图是两种方式的主要区别。
volume | mount | |
---|---|---|
数据在主机存放的位置 | Docker选择 | 自己选择 |
使用例子 | type=volume,src=my-volume,target=/usr/local/data | type=bind,src=/path/to/data,target=/usr/local/data |
用容器内存填充新的卷 | 支持 | 不支持 |
支持卷驱动程序 | 支持 | 不支持 |
尝试使用mount
- 确保当前终端路径处于之前的
getting-started-app
路径 - 运行下面代码,type为
bind
,src=”$(pwd)“
把当前文件目录作为源目录,target=/src
是映射到容器内的文件目录。-it
是进入实时交互。结果如下所示。docker run -it --mount type=bind,src="$(pwd)",target=/src ubuntu bash
root@ac1237fad8db:/# pwd / root@ac1237fad8db:/# ls bin dev home media opt root sbin srv tmp var boot etc lib mnt proc run src sys usr
- 进入
src
目录并创建myfile.txt
root@ac1237fad8db:/# cd src root@ac1237fad8db:/src# ls Dockerfile node_modules package.json spec src yarn.lockroot@ac1237fad8db:/src# touch myfile.txt root@ac1237fad8db:/src# ls Dockerfile myfile.txt node_modules package.json spec src yarn.lock
- 打开一个新终端并进入
getting-started-app
目录,会发现myfile.txt
在出现这个目录。├── getting-started-app/ │ ├── Dockerfile │ ├── myfile.txt │ ├── node_modules/ │ ├── package.json │ ├── spec/ │ ├── src/ │ └── yarn.lock
- 使用
Ctrl + D
停止容器运行
这篇关于Docker使用5-Use bind mounts的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!