Docker实践(17) – 容器挂载主机目录

容器最强大的功能是它在迁移时能保持系统环境一致性。
不过有时候你不想把所有的文件放进容器中。你可能想在容器之间共享一些大的文件,或者单独管理这些文件。典型的例子是你希望容器访问大型集中式数据库,但是还希望其它客户端也能与容器一起访问。
解决方法是volumes,在容器生命周期外管理文件的Docker机制。虽然这违背了容器“部署在任何地方”的理念(例如,你将无法在没有挂载数据库的系统中部署容器),不过有时候在实际环境中不得不用。

问题

你想在容器内部访问主机的文件。

解决方法

使用Docker的volume参数来设置容器访问主机文件。

讨论

下面的命令显示主机的/var/db/tables目录被挂载到容器的/var/data1上。

  1. $ docker run -v /var/db/tables:/var/data1 -it debian bash

-v参数(–volume)表明需要为容器设置一个外部的volume。随后的参数值是由两个以冒号分隔的目录组成,冒号之前的目录是主机目录,之后是容器目录,如果这两个目录不存在则会自动创建。
下图说明容器访问主机目录是如何交互的:

标签:Docker容器 发布于:2019-11-20 19:11:00