将目录绑定到docker容器

avi*_*ian 13 directory containers bind docker

我正在构建一个需要项目目录之外的模块的测试项目.项目文件夹在docker中,我想将该模块目录绑定到我的项目的docker容器中.它甚至可以做到吗?或者我问错了问题?顺便说一下,我仍然是码头工人的新手,所以我只是在努力解决问题.

BMW*_*BMW 22

我的理解是,您需要将主机文件夹挂载到容器中.试试这个:

docker run -v /host/project_folder:/container/project -t avian/project_image bash
Run Code Online (Sandbox Code Playgroud)

说明

  • -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
Run Code Online (Sandbox Code Playgroud)

这样,您可以随时删除容器mysql,而不会丢失数据库数据.


mus*_*_ut 5

您可以使用该-v选项将volume(例如您的文件夹)安装到容器中.更多细节可以在文档中找到.

例如,从ghost博客平台的Dockerfile示例:

docker run -v /data/ghost:/var/lib/ghost -d ghost
Run Code Online (Sandbox Code Playgroud)

哪个映射/data/ghost在本地驱动器上到/var/lib/ghost容器内部.

您还可以指定另一个docker容器作为sourcedata using --volumes-from选项.