【发布时间】:2015-05-12 07:04:20
【问题描述】:
我正在构建一个需要项目目录之外的模块的测试项目。项目文件夹在 docker 中,我想将该模块目录绑定到我项目的 docker 容器中。甚至有可能做到吗?还是我问错了问题?顺便说一句,我还是 docker 新手,所以我只是在尝试。
【问题讨论】:
标签: docker containers bind directory
我正在构建一个需要项目目录之外的模块的测试项目。项目文件夹在 docker 中,我想将该模块目录绑定到我项目的 docker 容器中。甚至有可能做到吗?还是我问错了问题?顺便说一句,我还是 docker 新手,所以我只是在尝试。
【问题讨论】:
标签: docker containers bind directory
我的理解是,您需要将主机文件夹挂载到容器中。所以试试这个:
docker run -v /host/project_folder:/container/project -t avian/project_image bash
-v - --volume=[] 绑定挂载卷/host/project_folder - 主机服务器的文件夹/container/project - 容器文件夹最新的 docker 版本 (v1.9.1) 支持新命令volume。所以你应该更容易在 docker 中管理卷。
# For example, I need attach a volume to mysql container.
docker volume create --name mysql-data
docker run --name mysql -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql
这样,您可以随时删除容器mysql,而不会丢失您的数据库数据。
【讨论】:
您可以使用-v 选项将volume(例如您的文件夹)挂载到容器中。更多详情请见in the docs。
例如,来自 ghost 博客平台的 Dockerfile 示例:
docker run -v /data/ghost:/var/lib/ghost -d ghost
将本地驱动器上的/data/ghost 映射到容器内的/var/lib/ghost。
您还可以使用 --volumes-from 选项将另一个 docker 容器指定为数据的 source。
【讨论】: