标签: windows-container

Windows容器可以托管在Linux上吗?

是否可以在Linux上运行Windows Containers?该场景基于一个用.NET(旧网)编写的应用程序和想要通过Docker运行它的Linux用户来提供一个书面API .net462localhost

我正在使用Docker Desktop for Windows的测试版

如果不是,那么为什么Windows可以运行Linux容器而不是反之亦然?

编辑:

一段时间过去了,这个问题很受欢迎.我想在此添加一条说明,解决方法是使用新的netstandard.它允许我将4.6.2框架打包到新的库中.

linux docker docker-for-windows windows-container docker-desktop

203
推荐指数
7
解决办法
13万
查看次数

通过AWS云在Kubernetes中运行windows Container

我在AWS中运行现有的Kubernetes Cluster(1.8)并使用KOPS安装了Cluster.但是现在我想将Windows容器添加到现有集群中,而无法获得正确的解决方案:(!

我想到了下面给出的步骤:

https://kubernetes.io/docs/getting-started-guides/windows/

首先,我下载了节点二进制文件并复制到Windows机器(Kubelet,Kube-dns,kube-proxy,kubectl)

但是对于拥有多个网络选项并且他们已经给出kubeadmin选项将节点加入到我的Master中我并不知道,因为我使用Kops来创建我的集群.

有人可以在这里建议或帮助我如何添加我的Windows节点?

amazon-web-services docker kubernetes windows-container

17
推荐指数
1
解决办法
487
查看次数

无法在Windows 10上复制到Windows容器('docker cp')

我在笔记本电脑上设置了Docker for Windows,并在Docker的设置中从Linux容器切换到Windows容器(这促使了几次重启和Windows更新).我拉了一个图像并使用命令运行基于它的容器:

docker pull microsoft/dotnet-framework
docker run -it microsoft/dotnet-framework cmd
Run Code Online (Sandbox Code Playgroud)

在第二个终端窗口中,我执行了命令:

docker cp app container_id:/
Run Code Online (Sandbox Code Playgroud)

并收到此错误消息:

来自守护程序的错误响应:不支持针对正在运行的Hyper-V容器的文件系统操作

我搜索了这个错误,但没有任何(解释性的)出现,非常令人惊讶.有没有办法在Windows 10上将图像作为Windows容器而不是Hyper-V容器运行?

最终,我将此容器部署到Windows Server 2016主机,但我需要在运行Windows 10 Pro的笔记本电脑上进行所有开发和测试.

Docker版本

Client:
 Version:      17.06.0-ce
 API version:  1.30
 Go version:   go1.8.3
 Git commit:   02c1d87
 Built:        Fri Jun 23 21:30:30 2017
 OS/Arch:      windows/amd64

Server:
 Version:      17.06.0-ce
 API version:  1.30 (minimum version 1.24)
 Go version:   go1.8.3
 Git commit:   02c1d87
 Built:        Fri Jun 23 22:19:00 2017
 OS/Arch:      windows/amd64
 Experimental: true
Run Code Online (Sandbox Code Playgroud)

hyper-v docker windows-10 windows-container

12
推荐指数
1
解决办法
5805
查看次数

Docker Windows 容器无法解析 host.docker.internal

我的 Windows docker 容器无法解析host.docker.internal,但它可以与 Linux 容器一起使用。我更愿意继续使用 Linux 容器,但我在使用旧的 .Net Framework 4.7.2 应用程序时遇到了问题。

我的应用程序连接到本地计算机上的 RabbitMQ。这在 Linux 容器中按预期工作,但在 Windows 容器中它会抛出此错误:

System.Net.Sockets.SocketException:没有这样的主机已知

我尝试过 ping host.docker.internal。

C:\app>ping host.docker.internal Ping 请求找不到主机 host.docker.internal。请检查名称并重试。

这是我的 dockerFile:

FROM mcr.microsoft.com/dotnet/framework/runtime:4.8-windowsservercore-ltsc2019
ARG source
WORKDIR /app
COPY ${source:-SampleApp/obj/Docker/publish} .
ENTRYPOINT ["C:\\app\\SampleApp.exe"]
Run Code Online (Sandbox Code Playgroud)

我使用的是 docker 版本20.10.2和 docker 桌面版本3.1.0
我在 Windows 10 版本 10.0.18363 上运行。

docker docker-container docker-for-windows windows-container docker-desktop

12
推荐指数
1
解决办法
1511
查看次数

HNS失败并显示错误:参数不正确

我正在使用visual studio 2017制作一个docker容器化应用程序.当首先通过visual studio运行docker时,我收到错误"ERROR:客户端版本1.22太旧".

通过将docker compose更新到2.1版来解决此错误

以下链接包含有关此特定错误的进一步说明

错误:客户端版本1.22太旧了

解决此错误后,现在在On Building docker上出现"HNS因错误而失败:参数不正确".

从多个github讨论中我发现它是一个Windows网络错误.

有这个问题的解决方案吗?我应该降低docker版本或安装别的东西.

我正在使用Windows容器.在运行docker版本Client:Version:17.06.0-ce API version:1.30 Go version:go1.8.3 Git commit:02c1d87 Built:Fri Jun 23 21:30:30 2017 OS/Arch:windows/amd64

服务器:版本:17.06.0-ce API版本:1.30(最低版本1.24)Go版本:go1.8.3 Git commit:02c1d87 Built:Fri Jun 23 22:19:00 2017 OS/Arch:windows/amd64实验:true

编辑:

如果我切换到linux容器,这个问题就解决了.但另一个问题是驱动器不共享.共享d后:仍然会出现驱动器共享问题.

如何解决Linux容器驱动器共享问题.

我想在本地使用Windows容器,以便我可以在azure上部署此应用程序.

docker docker-compose windows-container

10
推荐指数
2
解决办法
5309
查看次数

来自守护程序的错误响应:无法识别的卷规范:无法映射文件“\\.\pipe\docker_engine”。该平台上只能映射目录

我是码头工人的新手。欢迎任何帮助和提示。

\n

环境:

\n
    \n
  • Windows:Windows 10 专业版 21H1
  • \n
  • Docker 桌面:3.4
  • \n
\n

我可以毫无问题地运行 hello work 示例。但似乎我无法使用命名管道,无法弄清楚问题是什么。

\n

有些人提到命名管道仅适用于 Windows 服务器,但此博客(https://www.docker.com/blog/docker-windows-server-1709/)明确提到支持 Windows 10。

\n

docker版本输出:

\n
\xe2\x9d\xaf docker version\nClient:\n Cloud integration: 1.0.17\n Version:           20.10.7\n API version:       1.41\n Go version:        go1.16.4\n Git commit:        f0df350\n Built:             Wed Jun  2 12:00:56 2021\n OS/Arch:           windows/amd64\n Context:           default\n Experimental:      true\n\nServer: Docker Engine - Community\n Engine:\n  Version:          20.10.7\n  API version:      1.41 (minimum version 1.24)\n  Go version:       go1.13.15\n  Git commit:       b0f5bc3\n  Built:            Wed Jun …
Run Code Online (Sandbox Code Playgroud)

named-pipes docker docker-compose traefik windows-container

10
推荐指数
2
解决办法
4000
查看次数

在Windows Docker容器中附加到PATH

我需要在Windows Docker容器中附加到PATH,并且我尝试了许多排列.

ENV PATH=%PATH%;C:\\Foo\\bin
ENV PATH=$PATH;C:\\Foo\\bin
ENV PATH="%PATH%;C:\Foo\bin"
ENV PATH="$PATH;C:\Foo\bin"
RUN "set PATH=%PATH%;C:\Foo\bin"
Run Code Online (Sandbox Code Playgroud)

这些都不起作用:它们不评估预先存在的PATH变量.

附加到PATH的正确语法是什么?我甚至可以在Docker中附加到PATH吗?(我可以在类似的Linux容器上)

containers docker windows-container

9
推荐指数
4
解决办法
9922
查看次数

Docker中的postgres与命名或绑定卷上的数据目录在Windows Server 2019上运行,但不适用于Windows Server 2016

我目前正在尝试运行应该在Windows Server 2016 Datacenter(版本1607,Build 14393.2759)上运行的docker PostgreSQL 10.6.1容器(Base-Image mcr.microsoft.com/windows/servercore:ltsc2016).

一切运行正常,包括PostgreSQL initdb和之后运行的PostgreSQL - 只要PostgreSQL的数据目录不是docker主机上的卷.

如果我尝试运行它将PostgreSQL的数据目录放在命名或绑定卷上,PostgreSQL就可以执行它initdb但后来无法启动.

我怀疑这个错误是由于挂载的卷symlink在容器内可见,这取决于mcr.microsoft.com/windows/servercore:ltsc2016导致PostgreSQL失败.在mcr.microsoft.com/windows/servercore:1809,此行为已更改 - 已装入的卷看起来像'普通'目录,PostgreSQL可以启动.

由于根本没有有用的错误消息,并且在容器外运行没有持久存储的数据库听起来像一个真正无用的东西,所以任何帮助都是值得赞赏的.

我正在使用的Dockerfile如下所示:

FROM mcr.microsoft.com/windows/servercore:ltsc2016
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
ARG version=10.6-1

RUN [Net.ServicePointManager]::SecurityProtocol = 'Tls12, Tls11, Tls' ; \
    Invoke-WebRequest $('https://get.enterprisedb.com/postgresql/postgresql-{0}-windows-x64-binaries.zip' -f $env:version) -OutFile 'postgres.zip' -UseBasicParsing ; \
    Expand-Archive postgres.zip -DestinationPath C:\ ; \
    Remove-Item postgres.zip ; \
    Remove-Item 'C:\pgsql\pgAdmin 4' -Recurse ; \
    Remove-Item 'C:\pgsql\StackBuilder' -Recurse …
Run Code Online (Sandbox Code Playgroud)

postgresql docker windows-server-2016 windows-container

9
推荐指数
0
解决办法
505
查看次数

无法从 Windows 容器显示 GUI 应用程序:Windows 2019 Server

我需要使用 Docker Windows 容器来运行 Windows 应用程序。我使用 Windows 2019 Server 构建了一个映像,并安装了 x 服务器用于像 ubuntu 映像一样显示,但它不起作用。

那么有没有办法通过 GUI 访问 Windows 容器呢?

是否有支持 GUI 应用程序的 Windows 映像?是否有在 Windows 容器中运行应用程序 GUI 应用程序的解决方案?

windows docker dockerfile docker-compose windows-container

9
推荐指数
1
解决办法
7189
查看次数

如何在 Amazon AWS EC2 Windows 上使用 Windows 容器运行 Docker Desktop(或者这是不可能的)?

我有一台运行 Windows 10 的桌面计算机,运行 Windows 10、Microsoft 365、在 Windows 容器模式下运行的 Docker Desktop。

我有一台运行 Windows Server 2019 的 Amazon EC2 计算机,并且也在那里安装了 Microsoft 365 并通过 RDP 进行访问。

本质上,我想要创建一台 EC2 机器,它允许我运行在 Windows 容器模式下运行的 Microsoft 365 和 Docker 桌面。

我尝试创建 AWS EC2 实例并安装 Docker for Desktop,但遇到很多神秘错误。(见下文)。

我尝试使用 Microsoft 的 AMI 和https://aws.amazon.com/marketplace/server/procurement?productId=d94e0325-6111-4c69-8c29-87e784a6d0aa中内置的 Hyper-V

[或者我应该使用 Docker Enterprise 来实现此目的?]

[或者根本不可能获得一台可以在 AWS 上运行 Docker Windows 容器的 Windows 机器吗?]

[或者我是否需要选择特定类型的机器大小 [t4.large 或其他] - 我之前在 Microsoft Azure 上体验过,运行 Docker Desktop 只能在特定规格的机器上运行,这允许“虚拟化之上的虚拟化” ”]

System.InvalidOperationException:
job failed with message: 'DockerDesktopVM' failed to …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 docker windows-container docker-desktop

8
推荐指数
1
解决办法
5621
查看次数