【问题标题】:Running Docker Linux containers on Docker for Windows with volume mounts使用卷挂载在 Docker for Windows 上运行 Docker Linux 容器
【发布时间】:2022-03-03 04:33:02
【问题描述】:

我在 Docker for Windows 环境中运行 Docker Linux 容器。我还使用 Dockerfile 为我的项目进行 docker-compose。

我无法正确安装我的卷。特别是在我的Kitematic 中,我可以看到文本“\host_mnt”被添加到我的卷路径的开头。所以我的卷路径看起来像'\host_mntC:\Users\blah\blah\blah'。路径是正确的,只是在开头添加了 '\host_mnt'。

我怀疑我必须以某种方式将我的卷挂载路径错误地放入我的 Dockerfile 中。我尝试过使用相对路径,使用绝对路径,并使用扩展的卷表示法和写卷的单行方式。

【问题讨论】:

    标签: docker docker-compose


    【解决方案1】:

    由于我使用的是 Docker for Windows,如果您右键单击并选择设置,然后选择共享驱动器,则在 Docker 图标上,您要确保您正在使用的驱动器是共享的。但也有一个示例说明如何在下方进行绑定安装。

    您可以在终端中运行示例:

    docker run --rm -v c:/Users:/data alpine ls /data
    

    'c:/Users:/data' 是在 Docker for Windows(从版本 17.12.0-ce-win47 开始)中为绑定挂载编写路径文件的方式。

    在 docker-compose.yaml 文件中写入路径的方式相同。如果您打开 Kitematic,该卷仍会显示“/host_mnt”文本,但这没关系,而且应该如此。

    【讨论】:

    • 在当前版本的 Docker for Windows 18.06.0-ce-win70 (19075) 中,我没有看到任何 "Shared Drives" 选项。这是在 Windows 10 上。
    • 我使用的是 Docker for Windows 的先前版本,也在 Windows 10 上。我现在无法更新。但是看的地方可能在一次版本更新中没有改变。共享驱动器是屏幕左侧的第二个菜单项。这个链接有一张图片blogs.msdn.microsoft.com/stevelasker/2016/06/14/…
    • Docker for Windows 有两种模式:Windows Containers Mode 和 Linux Containers Mode,可以通过右键鲸鱼图标进行切换。 “共享驱动器”仅在 Linux 容器模式下可用。我想在 Windows Containers 模式下是没有必要的。
    • 据我所知,Windows Containers Mode 仍然是不常见的一种。大多数容器仍然使用 Linux 容器构建。因此,即使您使用的是 Windows 操作系统,您仍然可能会使用 Linux 容器模式,因为大多数镜像都是为创建 Linux 容器而构建的。
    【解决方案2】:

    如果您的计算机上没有用户密码,请创建一个管理员密码。然后,您在 Docker 上选择共享驱动程序。并写入管理员密码。

    【讨论】:

      【解决方案3】:

      尝试将 docker 重置为出厂默认设置。在泊坞窗->设置->重置。

      看到这个https://github.com/docker/compose/issues/5563

      【讨论】:

        猜你喜欢
        • 2020-07-09
        • 1970-01-01
        • 2017-02-01
        • 2017-08-14
        • 2017-05-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-23
        相关资源
        最近更新 更多