gpt4 book ai didi

docker - 在 Windows 上,绑定(bind)挂载卷在 docker-compose 中的行为与 docker run 不同

转载 作者:行者123 更新时间:2023-12-04 18:20:55 24 4
gpt4 key购买 nike

启动 Linux 容器时(详情如下)。我看到 docker run ... 的成功但是 docker-compose up无法提示绑定(bind)安装路径。感觉就像 docker run将卷绑定(bind)到 linux VM(通过 Hyper V)

Docker 撰写错误

Cannot create container for service registrator: b'Mount denied: The source path "\\var\\run\\docker.sock:/tmp/docker.sock" is not a valid Windows path'



以下是有关我如何启动容器的详细信息:

Docker 运行(按预期工作):
docker run --network=host --volume=/var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator consul://localhost:8500

docker 组成:
registrator:
image: gliderlabs/registrator
command: "consul://consul:8500"
network_mode: host
volumes:
- /var/run/docker.sock:/tmp/docker.sock

操作系统:Windows 10 1709(操作系统内部版本 16299.371)
适用于 Windows 的 Docker:18.04.0-ce
docker 撰写:1.21.0

最佳答案

我已经为此工作太久了。在这里问了一个问题,然后过了一会儿找到了我的答案。叹息我希望我学到的东西可以帮助别人。

我遇到了 docker compose GitHub Issue #4303其中一项指导是设置此环境变量:

SET COMPOSE_CONVERT_WINDOWS_PATHS=1

docker-compose up 的 shell 中执行此操作正在被调用使得 compose 表现得像 run 一样。容器现在绑定(bind)挂载 Linux VM 主机路径,而不是尝试映射 Windows 主机路径。这对我来说没有意义,但它确实有效。

来自 Compose docs :

COMPOSE_CONVERT_WINDOWS_PATHS Enable path conversion from Windows-style to Unix-style in volume definitions. Users of Docker Machine and Docker Toolbox on Windows should always set this. Defaults to 0. Supported values: true or 1 to enable, false or 0 to disable.

关于docker - 在 Windows 上,绑定(bind)挂载卷在 docker-compose 中的行为与 docker run 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49822178/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com