【问题标题】:Docker mounting volume for editing source code用于编辑源代码的 Docker 挂载卷
【发布时间】:2016-02-24 16:45:33
【问题描述】:

我在我的 Windows 系统上安装了 docker。该应用程序的源代码位于C:\Application\source 位置。 我希望这些信息在 docker 容器中可用,以便在开发过程中轻松更改代码而无需重新构建映像。

这是我尝试过的

docker run -d -P -i -t -p 8083:8080 --name html-app -v /c/Application/source:/usr/src html-app-img:vnode

图片html-app基于Node JS

现在,当我执行 docker exec -it html-app /bin/bash 时,它不会在那里显示 C:\Application\source 的内容。 我认为应该可以使用,对吗? 在 Oracle 虚拟框中,我已共享文件夹 C:\Application

我还需要做些什么才能使其正常工作吗?

【问题讨论】:

    标签: docker


    【解决方案1】:

    在 Oracle Virtual 框中,我已共享文件夹 C:\Application

    这还不够。您需要修改 boot2docker 镜像,以便 TinyCore Linux 会话挂载共享路径(只有 C:\Users\<yourlogin> 默认挂载为 /c/Users/<yourLogin>

    见“Docker Compose Mount Window Folder

    编辑/创建(如root/mnt/sda1/var/lib/boot2docker/bootlocal.sh,(sda1 可能对你不同)

    添加:

    mkdir -p <local_dir>
    mount -t vboxsf -o defaults,uid=`id -u docker`,gid=`id -g docker` <mount_name> <local_dir>
    

    (mount might need umask option as well)

    【讨论】:

    • 谢谢冯。假设我在 /usr/src 中有“node_modules”文件夹。所以当我挂载源代码(没有'node_modules'文件夹)时,为什么两个层都没有出现?我现在只看到 C:\Application\src 中的内容
    • 如果看到Application/src的内容,不就是你原来问的吗? /usr/... 在哪里?它在你的 boot2docker 会话中吗?
    • /usr/ 是在容器内创建的工作目录。有没有办法让我们从 /usr 和 c:\Appllication\source 获取内容?
    • 是的,使用 -v,将主机文件夹挂载到容器中
    • 我这样做了,但我只看到 C:/Application/src 中的内容,而不是 /usr/src 中的内容
    猜你喜欢
    • 2020-06-05
    • 1970-01-01
    • 2021-10-26
    • 1970-01-01
    • 2020-01-20
    • 2016-02-29
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多