问题标签 [docker-for-windows]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
472 浏览

docker - 重启后 Windows 10 Docker 网络 DNS 不起作用

我不确定这是否是当前版本的 Windows Docker 网络的问题,或者我的配置不佳和误解,但我有以下设置:

  • 2 个 Docker 容器(使用 Microsoft/ASP.NET 映像作为基础构建)在每个容器中运行一个 .NET MVC 应用程序。
  • 1 个运行 SQL 服务器的 Docker 容器(使用 Microsoft/mssql-server-windows 映像构建)

当我创建所有 3 个容器时,一切正常,我可以使用它们的名称附加和 ping 所有其他容器,而不会出现任何问题。应用程序运行并可以如我所愿地相互通信。

但是,当我重新启动机器并再次启动所有容器时,它们无法再使用它们的名称相互 ping/通信(使用 IP 地址很好)。

我已经在默认 NAT 网络上尝试过,还尝试用我自己的自定义 NAT 网络替换 NAT 网络。

为了解决这个问题,我必须为每个容器运行 force network disconnect 命令,如下所示:

然后我必须在启动它们之前将每个容器重新连接到网络。然后,所有容器都可以使用它们的名称和 IP 地址相互 ping/通信。

仅供参考,这是一个开发环境,但我希望使用 Windows Server 2016 VM 在 Azure 中做类似的事情,虽然我不太清楚现场生产的最佳网络配置是什么,因为我需要有多个应用程序(在单独的容器)在通过它们自己的子域访问的同一节点上。

任何帮助或指导都会很棒。

0 投票
2 回答
4225 浏览

docker - Docker 构建在入口点的 COPY 或 ADD 语句上失败,仅限 Windows

我正在为 Docker 容器创建一个入口点,然后尝试使用docker-compose.yml文件运行它。 这在 Ubuntu 和 OS X 中运行良好,但在 Windows 中出现权限错误(没有太多额外信息)

这是 Dockerfile:

这是 docker-compose.yml 条目:

以下是在 Windows 上运行 build 命令时的输出:

请注意,它是COPY产生错误的命令,因为我们尝试单独注释掉它和RUN chmod语句。

当我运行原始 docker build 查询时:

然后我得到一堆错误输出,因为它试图压缩当前目录。基本上每个文件添加都会失败。完整输出在这里:

https://gist.github.com/danieltalsky/4cb6bddb6534c46b051230bc45578072

0 投票
1 回答
775 浏览

sql-server - 从 Docker for Windows 中运行的 ASP.NET Core 应用程序连接到 SQL Server Developer

我正在尝试从使用Docker Desktop for Windows创建的 docker 映像连接到SQL Server Developer本地计算机上的版本。我已经按照这里的教程进行操作。这帮助我确保 SQL Server 正常运行并暴露于外部世界。Windows 10 ProVisual Studio Tools

我的偏好是以某种方式启动 dockerNET=HOST并仅用于.访问我的数据库。但是,我不确定该怎么做,也不确定这是否适用于 Windows。

现在我似乎无法正确连接以实际连接到 SQL。我试过这些:

我从网上看过的教程中尝试了许多其他教程,但不记得全部了。我有点困惑。

0 投票
1 回答
1057 浏览

asp.net-core - ASP.NET Core w/Tools for Docker EnvironmentName for Stage

我使用Docker Desktop for WindowsVS Tools for DockerStaging为我的 ASP.NET Core创建了配置。当我运行配置时,不断出现而不是.Stagingenv.EnvironmentNameProductionStaging

在文件docker-compose.dev.staging.yml中,我也将其设置ASPNETCORE_ENVIRONMENTStaging。但这也无济于事。当然,我还需要把它放在其他地方,因为当我发布时我想Staging获得Staging EnvironmentName.

我错过了什么?

更新

所以,看起来Visual Studio Tools for Docker. 它不尊重配置设置并抓取文件docker-compose.dev.release.yml而不是docker-compose.dev.staging.yml. 因此,如果要将环境更改为staging. 因此,在调试时staging将以下内容添加到您的release文件中:

这个世界一切都会好起来的。docker-compose在部署到主文件时,您也需要这样做。烦人,但你还要做什么?

另外,添加图像名称,如:

然后,您将获得staging部署到登台的标签。希望这个错误将很快得到修复。

更新 2

现在,我了解了 Docker 的工作原理。基本上你需要在docker-compose.yml文件中传递环境变量。因此,在运行您的环境的服务器上,staging您将添加我在上面放置的内容,然后docker up使用该 yaml 文件。至于在您自己的机器上,如果您想使用您的stage设置,您只需添加/删除(或注释掉)环境设置。有点痛。希望VS Tools for Docker修复此行为以进行调试。这将使编程稍微容易一些。

0 投票
1 回答
1322 浏览

docker - 如何为 Windows 配置 Docker 以使用存储库的主机文件推送

我正在尝试将容器从本地开发盒推送到远程私有存储库,该存储库的主机名在我的 Windows 主机文件中设置。当我推动时,我得到了这个:

如果我使用 babun 在 URL 上执行 curl -vvv,我会得到:

由于我在本地收到错误消息,但在我使用 curl 时没有收到错误消息,因此我的本地 Windows docker 实例似乎没有解析为docker主机名。

0 投票
2 回答
1864 浏览

docker - 更改 docker 容器用户名

我在 docker 容器中手动重命名了用户,从Dockerfile. 这个容器很大,我不想重建它,或者启动另一个,如何取回它?我在 docker inspect 的“用户”属性下看到旧用户名,启动此容器失败

找不到用户 cmbuild:passwd 文件中没有匹配的条目

这是因为我将其重命名为“构建”有没有办法在 docker 容器配置中更改用户?为了让它更难,我使用Docker Desktop for Windows(即 moby Linux)

0 投票
1 回答
1431 浏览

docker - 适用于 Windows 64 位的 Docker 映像

我让我的 Docker 在 Windows 上启动并运行,

现在我想从我的应用程序制作一个需要安装在 64 位 Windows 服务器上的容器。

是否有我可以使用的 Windows 服务器的干净图像?

我查看了 dockerhub 并看到了一些我可以像这样使用的图像。

但我想确保我做对了,我可以使用这个图像来安装我的应用程序吗?

0 投票
1 回答
998 浏览

performancecounter - Docker 容器上的 Windows 性能计数器:System.InvalidOperationException:类别不存在

我正在使用Docker Desktop for Windows在 windows docker 容器中运行 .net 应用程序。当我的应用程序尝试使用此代码创建性能计数器时:

我得到了这个例外:

未处理的异常:System.InvalidOperationException:类别不存在。在 System.Diagnostics.PerformanceCounterLib.CounterExists(String machine, String category, String counter) at System.Diagnostics.PerformanceCounter.InitializeImpl() at System.Diagnostics.PerformanceCounter..ctor(String categoryName, String counterName, String instanceName, Boolean readOnly)

这是我的容器的基本映像:https ://hub.docker.com/r/microsoft/dotnet-framework/

它具有 Windows Server 核心作为其中的一部分。

感谢解决此问题的任何帮助。我不确定这是否只是我需要在此处更改的一些 Windows 设置,还是因为 docker & windows 或我的代码无法访问性能计数器的类别。

当我在本地机器而不是容器中运行它时,它工作得很好。

0 投票
1 回答
508 浏览

windows - Docker for Windows Swarm IIS 服务与 Win10 Insider 正在运行但无法访问

我目前正在用 Docker for Windows 试验 Swarm 服务。新的 Win10 Insider 版本支持 Windows 容器的覆盖网络,我很高兴看到我的 IIS 服务实际启动。我遇到的唯一问题是我无法在浏览器中访问该服务,尽管尝试了多种方法,例如不同的端口和网络。发出的命令如下:

我还尝试使用该--network标志来尝试不同的网络,并确保测试docker service inspect webfarm命令中可见的所有 IP 地址。

docker service ps webfarm确实表明我的服务处于 RUNNING 状态并且没有任何错误,所以我不知道我还能尝试什么。特别是因为这些命令在带有 Apache 的 Linux 上运行良好。

我想知道是否有人能够在 Windows Insider 构建 (15046) 上使用 Windows 容器成功创建服务,如果可以,如何?

0 投票
1 回答
179 浏览

docker - docker 卷的 PhpStorm 错误:“应在 Docker 云设置中配置 VirtualBox 共享文件夹”

这是 Windows 上 PhpStorm 2016.3.3 的问题。我在尝试配置 Docker 容器时遇到了以下错误:

示例

我可以通过进入并将相同的文件夹添加到“VirtualBox共享文件夹”选择中来消除即时错误消息......Build, Execution, Deployment > Docker

在此处输入图像描述

...这会解锁文件选择器...

使用文件选择器的无用解决方法示例

...但不幸的是,当我运行容器时,它仍然没有安装。