问题标签 [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.
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 中做类似的事情,虽然我不太清楚现场生产的最佳网络配置是什么,因为我需要有多个应用程序(在单独的容器)在通过它们自己的子域访问的同一节点上。
任何帮助或指导都会很棒。
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
sql-server - 从 Docker for Windows 中运行的 ASP.NET Core 应用程序连接到 SQL Server Developer
我正在尝试从使用Docker Desktop for Windows创建的 docker 映像连接到SQL Server Developer
本地计算机上的版本。我已经按照这里的教程进行操作。这帮助我确保 SQL Server 正常运行并暴露于外部世界。Windows 10 Pro
Visual Studio Tools
我的偏好是以某种方式启动 dockerNET=HOST
并仅用于.
访问我的数据库。但是,我不确定该怎么做,也不确定这是否适用于 Windows。
现在我似乎无法正确连接以实际连接到 SQL。我试过这些:
我从网上看过的教程中尝试了许多其他教程,但不记得全部了。我有点困惑。
asp.net-core - ASP.NET Core w/Tools for Docker EnvironmentName for Stage
我使用Docker Desktop for Windows和VS Tools for DockerStaging
为我的 ASP.NET Core创建了配置。当我运行配置时,不断出现而不是.Staging
env.EnvironmentName
Production
Staging
在文件docker-compose.dev.staging.yml
中,我也将其设置ASPNETCORE_ENVIRONMENT
为Staging
。但这也无济于事。当然,我还需要把它放在其他地方,因为当我发布时我想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
修复此行为以进行调试。这将使编程稍微容易一些。
docker - 如何为 Windows 配置 Docker 以使用存储库的主机文件推送
我正在尝试将容器从本地开发盒推送到远程私有存储库,该存储库的主机名在我的 Windows 主机文件中设置。当我推动时,我得到了这个:
如果我使用 babun 在 URL 上执行 curl -vvv,我会得到:
由于我在本地收到错误消息,但在我使用 curl 时没有收到错误消息,因此我的本地 Windows docker 实例似乎没有解析为docker
主机名。
docker - 更改 docker 容器用户名
我在 docker 容器中手动重命名了用户,从Dockerfile
. 这个容器很大,我不想重建它,或者启动另一个,如何取回它?我在 docker inspect 的“用户”属性下看到旧用户名,启动此容器失败
找不到用户 cmbuild:passwd 文件中没有匹配的条目
这是因为我将其重命名为“构建”有没有办法在 docker 容器配置中更改用户?为了让它更难,我使用Docker Desktop for Windows(即 moby Linux)
docker - 适用于 Windows 64 位的 Docker 映像
我让我的 Docker 在 Windows 上启动并运行,
现在我想从我的应用程序制作一个需要安装在 64 位 Windows 服务器上的容器。
是否有我可以使用的 Windows 服务器的干净图像?
我查看了 dockerhub 并看到了一些我可以像这样使用的图像。
但我想确保我做对了,我可以使用这个图像来安装我的应用程序吗?
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 或我的代码无法访问性能计数器的类别。
当我在本地机器而不是容器中运行它时,它工作得很好。
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 容器成功创建服务,如果可以,如何?