【发布时间】:2018-12-05 17:02:20
【问题描述】:
我正在尝试Docker Get Started tutorial, Part 3 (Services)。所以我需要初始化一个 swarm 和部署一个堆栈的部分,我所有的服务状态都被拒绝了:
完整的错误(使用--no-trunc)是:
hnsCall 在 Win32 中失败:参数不正确。 (0x57)
这是我正在做的步骤:
确保我的图像正确(
docker run运行良好,我成功访问了localhost:4000)。然后我停止容器以确保它不会干扰。当我初始化 swarm 时,它说我有多个地址,所以我使用
--advertise-addr选择了一个随机地址(我尝试了其中任何一个,结果相同)。docker stack deploy有效,但是当我使用docker service ps检查状态时,它们都没有启动。localhost:4000没有监听器。注意:我将 Docker 切换到了 Windows 容器。
我是 Docker 新手,这超出了我的范围。任何人都可以提出解决方案/调试方式吗?
【问题讨论】:
-
你在windows容器内执行
docker run吗? -
@SvenHakvoort 抱歉,不确定您所说的“内部”是什么意思。我从我的真实 PC 运行上述所有命令。是的,它是一个 Windows,Docker 设置为 Windows 容器。
-
docker 容器是什么意思?一个虚拟机?或者你是在你的电脑上运行 docker,然后在其中启动一个 windows 容器,然后再次运行 docker?
-
对不起,让我再次解释一下:我正在运行一台 Windows PC(真正的,没有 VM 或任何东西)。当 Docker 运行时,系统托盘中有一个图标,我用它来运行“切换到 Windows 容器”选项(所以现在,Docker 正在 Windows 模式下运行,选项现在显示“切换到 Linux 容器”)跨度>
-
这取决于您的用例是什么,为什么要使用 Windows 容器?
标签: windows docker docker-compose docker-swarm