【问题标题】:Bind a directory to a docker container将目录绑定到 docker 容器
【发布时间】:2015-05-12 07:04:20
【问题描述】:

我正在构建一个需要项目目录之外的模块的测试项目。项目文件夹在 docker 中,我想将该模块目录绑定到我项目的 docker 容器中。甚至有可能做到吗?还是我问错了问题?顺便说一句,我还是 docker 新手,所以我只是在尝试。

【问题讨论】:

    标签: docker containers bind directory


    【解决方案1】:

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

    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,而不会丢失您的数据库数据。

    【讨论】:

      【解决方案2】:

      您可以使用-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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-10
        • 1970-01-01
        • 2019-12-21
        • 2014-12-05
        • 2018-12-09
        • 1970-01-01
        • 1970-01-01
        • 2016-07-27
        相关资源
        最近更新 更多