问题标签 [windows-server-container]
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.
powershell - Docker windows容器文件访问权限问题
Windows Server 2016 主机,通过默认的 MSFTdocker 提供程序运行 Docker EE。
Docker 版本 17.06.2-ee-5,构建 508bb92
docker-compose 版本 1.17.1,构建 6d101fb0
我有一个基于 的 Windows 容器microsoft/windowsservercore:latest
,并且正在尝试为 Bamboo 服务器设置映像。在创建构建计划期间,服务器会生成密码以在 Bamboo 和 Bitbucket 之间进行通信。在正在运行的容器中,密码文件夹/文件生成失败并出现以下错误:
我已经尝试将卷C:\bamboo-home
连接到我的 Windows 主机,并完全包含在容器中。两次同样的错误。
Windows 容器使用名为“containeradministrator”的管理员帐户运行;在默认图像和使用入口点时都是这种情况,如下所示。
标准图像运行:
并在自定义构建的图像上测试入口点:
据我所知,这个用户是管理员的别名,尽管有趣的是它并没有显示net user
为这个名称:
所以这可能是一个问题,但无论如何,据我所知,用户拥有完整的管理员权限:
所以我尝试了以下方法:
在将文件夹权限设置为“所有人 - 完全访问”的容器中运行构建步骤
在启动时在运行的容器中手动运行脚本,执行相同的操作
运行时连接容器,手动运行powershell也一样
每次,在尝试生成密码文件之前,权限如下所示:
并且尝试生成后出现上述错误,权限更改为:
为什么默认帐户(可能是名为 containeradministrator 的管理员)在似乎表明它拥有所有权时会失去对该目录的访问权限?为什么它不能首先创建文件(或文件夹),因为在这两种情况下,“每个人”都应该拥有完全访问权限?
docker - 基于windowsservercore的docker下载问题(Appveyor, Visual Studio 2017)
windowsservercore
我对docker image上的文件下载有一个小问题。我在这里列出了一个小型 docker 映像:https ://github.com/EndurantDevs/sonarqube-mysql-windows-docker
如您所见 - 有四个类似的 Docker 文件:基于 2 个版本的 Windows 容器的 SonarQube 的 2 个版本(nanoserver
以及windowsservercore
,通过openjdk
图像)
在构建过程中,所需文件的下载nanoserver
顺利进行。
但是,在windowsservercore
图像上我遇到了这个问题:
因此,问题出现在从运行良好的相同服务器上下载相同文件时nanoserver
。
应用包括 Tls12 在内的所有已知修复都没有帮助。我认为这是 Appveyor 端主机上的问题。但是,即使我尝试过的注册表修复也无济于事。
这是要比较的构建信息:https ://ci.appveyor.com/project/dnikolayev/sonarqube-mysql-windows-docker/build/1.0.53
docker - 在带有 windows/servercore 的 Windows 容器上以无头模式运行 Firefox
为了提供 Windows Selenium WebDriver Grid,我开始准备允许用作网格节点的 Dockerfile。最初的原因是准备一个带有可控Firefox/GeckoDriver版本的图像。出于相同目的成功准备 Chrome 映像的鼓舞,我从以下 Dockerfile 开始:
现在,一旦容器启动,WebDriver 中生成的 geckodriver 的响应(使用 TRACE 级别的日志执行)将挂起:
所以这是一个 Firefox 没有正确启动的问题,因为 GeckoDriver 能够生成它但不能与之交互。此外,直接在容器中运行 firefox.exe 会导致 firefox.exe 进程在tasklist
执行后出现,但它只是一个占用 6MB RAM 的进程(不像 Chrome,它会产生数十个进程并且无头运行没有问题,对于在 Windows 10 上执行的 Firefox)。我假设有某种障碍阻止 Firefox 被打开,并且由于 Server Core 没有 GUI,它无法显示并且无法诊断。遗憾的是,我没有找到任何有关存储在磁盘上的 Firefox 日志的信息,也没有从命令行以更详细的模式运行 Firefox。我已经尝试过的事情:
- 将 Firefox 更改为 32 位
- 各种火狐版本
- 安装 DirectX 的子集
- 在没有巧克力的情况下安装 Firefox
- 各种 Windows Server Core 版本
总而言之,即使不可能(但为什么?Chrome 可能),我想知道实际错误是什么以及失败的原因是什么。来自 Firefox 本身的更多详细信息也会很方便。
我知道最简单的方法是切换到 Linux,但长话短说,目前还不可能。
版本:
- 泊坞窗:18.09.2,内部版本 6247962
- 火狐:66.0.3
- 壁虎驱动程序:0.24.0
azure-aks - 如何为 Azure Kubernetes 服务上的 Windows Server 容器指定主机节点的 Windows 版本?
我正在遵循有关如何在 Azure Kubernetes 服务上创建 Windows Server 容器的指南。关联
我提取了指南中演示的示例图像 (mcr.microsoft.com/dotnet/framework/samples:aspnetapp),对其进行了标记并将其上传到 Azure 容器注册表。将应用程序部署到 Kubernetes 后,Pod 无法从容器注册表中提取映像。我还尝试使用来自 Docker hub 的原始图像导致同样的问题。
以下是kubectl describe
其中一个 pod 上的命令输出
事件部分有一个带有消息的事件
该消息对我来说似乎很清楚,因为它抱怨容器和主机之间的 Windows 版本不匹配。
我的 Kubernetes 部署文件
如何确保容器和主机之间的 windows 版本匹配?有什么方法可以指定将在主机上使用的 Windows 版本?
docker - 在 Windows Server 容器中启用远程桌面
我正在尝试创建一个可以使用 RDP 进入其桌面环境的 Windows 容器。微软似乎在最近的 Windows Server Core Containers 中关闭了 RDP。首先,我尝试跟进本教程。我可以使用远程桌面应用程序成功登录,但在那之后没有任何反应,似乎没有桌面,或者可能还有其他问题。
我想知道是否有任何官方的 Windows Server 映像容器可以访问其桌面 GUI 或任何其他方式来添加此功能。
docker - 将参数传递给 dockerfile 无法正常工作
我在将参数值传递给 dockerfile 时遇到了一些麻烦。
在里面运行 dockerWindows Server 2016
我的 docker 版本信息是
和 powershell 打开为administrator
.
我的参考是这个。
但这对我不起作用。
所以这是我的dockerfile。
我也尝试了许多不同类型的回声值,例如
这是我的执行命令。
我的预期结果是打印1234
但实际结果是
为什么会发生?如何修复它?
windows - 无法在 Windows 容器上授予 IIS_IUSRS 权限
我正在构建一个由microsoft/aspnet
builder OS 制作的图像:
,运行后出现错误RUN icacls 'C:\inetpub\wwwroot\' /grant 'IIS_IUSRS:(F)'
无效参数“'IIS_IUSRS:(F)'”
命令 'cmd /S /C icacls 'C:\inetpub\wwwroot\' /grant 'IIS_IUSRS:(F)'' 返回非零代码:87
但是在由microsoft/aspnet
builder OS制作的基础镜像下
完全没问题,有人知道为什么吗?
docker - 如何在 Windows Server 2019 上升级 Kubernetes 工作节点?
所以我有一个包含 3 个 CentOS 7 VM(1 个主,2 个工作节点)和 2 个 Windows Server 2019 工作节点的集群。我可以按照以下步骤更新 CentOS VM 上的节点:https ://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/ 。现在,我需要更新 2019 节点上的版本,但我不知道如何正确执行。2019 VM 上的版本是 1.14.3(kubectl、kubelet 和 kubeadm),我能够毫无问题地将它们升级到 1.14.10,但是当我跳到下一个主要版本(任何 1.15.x)时,在 Windows 服务下运行的 kubelet 服务被暂停,显然节点版本仍然显示 1.14.10。升级节点的唯一方法是重新创建它并将其重新添加到现有集群吗?除了初始设置指南之外,我无法在网上找到任何东西。
谢谢!
windows - Windows Docker 添加自定义标头
我正在尝试使用将X-Forwarded-For
请求标头添加到mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2019
Docker 基础映像中Add-WebConfigurationProperty
。
我的 Dockerfile 看起来像:
当我运行 docker build 时,出现以下错误
Dockerfile 在没有RUN Add-WebConfigurationProperty
. 如果我在没有它的情况下构建它,RUN Add-WebConfigurationProperty
我可以运行容器并执行Add-WebConfigurationProperty
命令并看到它确实将字段添加到日志文件中。知道为什么它不能通过 Dockerfile 工作。
docker - 在 docker windows/servercore 中运行有人值守的安装程序
一段时间以来,我一直在尝试将应用程序迁移到云端,并将大部分服务设置在运行在 k8s 集群中的 pod 中。最后一块给我带来了麻烦,我需要使用无法静默安装的旧软件设置映像。然后我尝试在我的 dockerfile 中安装其 .net 依赖项(2005.x86、2010.x86、2012.x86、2015.x86、2015.x64)并手动传输程序的本地安装,但这也不起作用。
有什么方法可以在远程 Windows 映像中进行引导式安装,或者能够确定安装程序所做的所有文件更改以便手动进行?