问题标签 [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 - vmwarevsphere 上的 windows docker
我们公司的虚拟机使用 VMWare vSphere。
要自动创建 docker 主机,我们使用一个简单的命令:
它会自动在我们的 VM 集群中创建新的 VM 机器,安装 docker,然后我们将其添加到 swarm 或创建新的。
现在我需要创建 windows docker 主机来运行 windows 容器。Docker-machine 在创建 VM 后安装 boot2docker.iso。但相反,我需要带有 microsoft servercore 或 nano 的 VM。我该怎么做?
非常感谢。安东
docker - 托管在 Windows 10 上的 Windows 容器丢失其 DNS
我正面临这种情况,我的基于 Windows 的容器失去了解析 DNS 的能力。
这就是发生的事情
启动一个容器来测试 dns 解析
docker run -it microsoft/windowsservercore powershell
从容器内部
Test-NetConnection google.com -Port 443
失败
PS C:> Test-NetConnection google.com -Port 443 警告:google.com 的名称解析失败 -- 状态:这通常是主机名解析期间的临时错误,意味着本地服务器没有收到来自权威服务器的响应ComputerName:google.com RemoteAddress:InterfaceAlias:SourceAddress:PingSucceeded:False
但应该是这样的
PS C:\Users\asarafian> Test-NetConnection google.com -Port 443 ComputerName : google.com RemoteAddress : 216.58.204.14 RemotePort : 443 InterfaceAlias : vEthernet (External Virtual Switch) SourceAddress : 10.98.5.139 TcpTestSucceeded : True
我总是使工作站(Windows 10)休眠,并在其上运行 Hyper-V 实例和 Docker。工作站是 Windows 10,据我所知,当问题发生时,它使用 Windows 10 主机的 IP 作为 DNS。
从容器内
172.19.128.1
是我的 Windows 10 主机 IP。
同时,当 Windows 10 主机容器卡住时,其他一切都正常解析 DNS。
- Windows 10 上的任何进程。
- Windows 10 上的 Hyper-V 实例。
- 容器托管在 Windows 10 上的 Hyper-V 实例上。
重新启动机器并不能解决问题。这是第二次出现这种情况。以前我不得不重置整个 docker 安装来解决这个问题。我想避免这种情况并了解问题所在以及如何解决。
Docker 版本是
更新 1 - 20170408
根据@chris-lawrence 评论的要求,以下内容ipconfig /all
来自主机和容器内部。有趣的方面是 dns 解析在容器内部工作。
容器内
在容器主机上
出于好奇,我检查了 hyper-v 实例的状态,它们已关闭。我的感觉是,当 hyper-v(s). 我最怀疑的是,当系统在 hyper-v 实例运行时从休眠状态恢复时会发生一些奇怪的事情。我去查一下......
我做了检查,一切都还好。但是 hyper-v(s) 是为有线网络适配器设置的,因此在 WIFI 上则没有网络。可能是在这种情况下他们不干涉。
更新 2 - 20170411
根据@chris-lawrence 评论的请求,以下是ipconfig /all
来自主机和网络上存在问题的容器内部的内容。正如@GSA 所建议的那样,此时容器主机上的防火墙已关闭。
容器内
PS C:> ipconfig /all
我注意到只有一个dns 条目172.19.128.1
是内部 docker。
在容器主机上
更新 3 - 问题已修复
我刚刚升级到 Windows 10 创建者更新,突然问题就停止了。目前,我认为通过 Windows 更新解决了这个问题。但是对于遇到类似问题的人来说,我在更新方面只落后了一周,我不认为这是问题所在。是否会再次发生有待观察。
curl - 对 docker 后面的 keycloak 的令牌请求,curl 有效,reactjs 无效
以下情况:
使用 docker compose ( http://127.0.0.1:8083 )设置 Keycloak 服务器
当我这样做时:
有用。
然后我尝试在 react.js 上做同样的事情,如下:
它不起作用。我得到以下信息:
旁注:在 keycloak 上,我设置了允许来源 * 也很奇怪:我看到用户已经从 ip 172.17.0.1 打开了会话(我猜这是由 curl 引起的)
问题:如何使它从 react.js 工作?问题 2:为什么它在 curl 中工作而不是在 axios 中工作?
docker-volume - 无法将卷标志与 Windows 容器一起使用
我正在尝试以与在 linux/mac 上通过-v "$(pwd)":/code
. 我想不出一个简单的例子来使它与 Windows 容器一起工作。
我尝试了无数其他变体,这里接受的答案给出了同样的错误。
文档似乎只指 Docker Toolbox 。这个例子只给了我invalid bind mount spec
。
我的 Dockerfile
操作系统名称:Microsoft Windows 10 Pro 操作系统版本:10.0.14393 N/A Build 14393
版本 17.03.1-ce-win5 (10743) 频道:稳定 b18e2a5
免责声明:我最初在docker 论坛上发布了这个,但没有任何回应。
docker - 在 Windows 下登录时启动 Docker 容器
我刚刚设置了一台新的 Windows 10 开发机器,为了尽量减少安装的麻烦,我使用 docker-compose 脚本在 Docker 下运行了各种开发依赖项(Oracle、MongoDB、RabbitMQ、HAProxy 等)。
我想在 Windows 登录时自动启动这些容器,但我还没有想出办法来做到这一点;一个在正确目录中执行的简单脚本docker-compose up -d
应该可以做到,但如果它在登录时立即执行,Docker 尚未启动,因此脚本失败。有谁知道如何以编程方式等到 docker 运行?
docker - 无法在 win 10 VM 上启动 docker
我们无法在 win 10 VM 上启动 docker,以下是错误详细信息:
无法写入数据库。退出代码: 1 在 Docker.Backend.ContainerEngine.Linux.DoStart(Settings settings) 在 Docker.Backend.ContainerEngine.Linux.Start(Settings settings) 在 Docker.Core.Pipe.NamedPipeServer.<>c__DisplayClass8_0.b__0(Object[]参数)在 Docker.Core.Pipe.NamedPipeServer.RunAction(字符串动作,对象 [] 参数)
任何解决该问题的意见将不胜感激。
谢谢。
docker-compose - 为 docker 本地开发容器使用自定义主机名
我正在使用适用于 Windows 的 Docker Desktop(刚开始),并且有这个简单docker-compose.yml
的,效果很好:
一旦我运行docker-compose up -d
它,它就会为数据库、phpmyadmin 和 wordpress 网站创建容器,并且可以访问并且工作正常。
我的问题是,如何设置“project.dev”而不是“localhost:8080”来访问 wordpress 站点和“phpmyadmin.dev”而不是“localhost:8090”来访问 phpmyadmin?我还需要什么其他工具?请注意,我使用 Windows 10 作为主机。
docker - Docker windows容器内存限制
带有Docker Desktop for Windows的 docker windows 容器是否有默认内存限制?我有一个应用程序在容器中运行时崩溃,但是当我尝试为命令指定--memory 2048mb
参数时,docker run
它似乎运行良好。至少在它之前崩溃的情况下。这给我的印象是有默认内存限制,但我在文档中找不到它。所以我的问题是有内存限制,如果它在哪里记录?
dockerfile - 通过 windows docker 文件设置 git
我写Dockerfile
的是基于windowsnanoserver的。我需要添加到这个图像 git。为了实现它,我做了以下事情:
但是当我通过 docker build 执行这些行时,我收到以下错误消息:
Invoke-Expression:术语“c:\Git-2.12.2.2-64-bit.exe”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。
我意识到此错误消息表明由于 Windows docker 映像的控制台性质,我将无法执行 GUI 安装程序。不幸的是 git 没有控制台安装程序。Chocolatey在windowsservercore图像下工作正常,但在windowsnanoserver上不起作用。为了为windowsnanoserver安装 git,我想重复Dockerfile
来自巧克力 git 安装程序的命令,这对我来说很好,但我仍然想知道有没有更简单的方法在windowsnanoserver上安装 git ?
docker - 从容器访问 docker 远程 API
我正在尝试从容器内访问 Docker 远程 API,因为我需要启动其他容器。
主机地址是172.19.0.1
,所以我http://172.19.0.1:2375/images/json
用来获取图像列表(来自主机,http://localhost:2375/images/json
按预期工作。
连接被拒绝,我猜是因为 Docker (for Windows) 监听127.0.0.1
而不是0.0.0.0
.
我尝试更改配置(从 UI 和daemon.json
)添加条目:
但守护进程无法启动。我怎样才能访问api?