当前位置: 首页 > 面试题库 >

带有docker deploy Windows容器的Linux机器

刘辰钊
2023-03-14
问题内容

我有一台安装了docker host的Linux服务器,内存为16GB。我想在其上部署Windows Server容器。可能吗?有人尝试过此解决方案吗?


问题答案:

更新2019

如pipe_tape_coder在评论中指出的:

Microsoft 改进了容器的网络选项,现在
允许每个容器中具有改进名称空间的多个容器

理论上(2015年10月的原始答案):

Linux主机上没有运行“ Windows容器”。 而且,Linux容器不能 _直接_在Windows服务器上运行,因为它依赖对Linux内核的系统调用。

您当然可以通过VM在任何Windows机器上运行这些Linux容器。
那就是docker toolbox将要安装的东西。

将有适用于Windows泊坞窗的支持很快,但这是针对Windows的容器,而不是Linux容器。

2017年更新:是的,LinuxKit允许通过基于
linuxkit

的最小Linux操作系统,通过Windows平台上的Hyper-V隔离包装程序运行linux容器。
那仍然是一个主意:Linux在Windows的VM内运行。
那不是在Windows服务器上部署的Linux服务器:仅部署在Windows上的VM中运行的Linux服务器内部。

其实…(2016年12月更新)

请参阅“ Linux和Windows,一起生活,一团糟!(确定,Kubernetes
1.5) ”

Kubernetes 1.5包括对Windows Server Containers和类似于Docker的共享内核模型以及Hyper-V
Containers的alpha支持,Hyper-V Containers是为多租户环境提供更好隔离的单内核模型
(以更大的延迟为代价)。

最终结果是可以创建单个Kubernetes集群的能力,该集群不仅包括运行Linux容器的Linux节点或运行Windows容器的Windows节点,而且还可以同时包括两者,以获得真正的混合体验。
例如,单个服务可以具有使用Windows Server容器的POD和使用Linux容器的其他POD

但:

尽管它似乎功能齐全,但在此早期版本中确实存在一些限制,包括:

  • 由于Kubernetes主机的编写方式存在依赖性,因此仍必须在Linux上运行
    。可以移植到Windows,但目前团队认为最好将精力集中在客户端组件上。
  • 没有原生支持Windows中容器的网络覆盖,因此网络仅限于L3 。(还有其他解决方案,但尚无本地解决方案。)
    但是,Kubernetes Windows SIG正在与Microsoft合作解决这些问题,他们希望在明年初的Kubernetes
    1.6发行版方面取得进展。
  • Windows容器之间的联网更为复杂,因为每个容器都有自己的网络名称空间,因此 建议您现在使用单容器容器
  • Windows
    Server容器中运行的应用程序可以Windows支持的任何语言运行。您可以在Linux容器中运行.NET应用程序,但前提是它们是用.NET
    Core编写的。Nano Server操作系统还支持.NET core,可以将其部署在Windows Server Containers上。


 类似资料:
  • TL;DR:我可以配置一个容器来访问本机VGA,覆盖主机视频输出吗? 我正在考虑处理我的低功耗XenServer(以前是ESXi)白箱来设置一个docker最小安装(例如CoreOS、RancherOs或类似的发行版)。是否可以给一个(可能不是特权)容器对视频输出的独占访问/通过,安装一个可以与所有其他容器一起运行的媒体中心解决方案(例如Kodi),将全屏视频输出到电视,“显然”带有硬件加速视频解

  • 我目前正在我的<code>Jenkinsfile 由于我使用的云托管的kubernetes是从dockerd到containerd作为容器运行时,我想问一下是否有人使用带有jenkins kubernetes插件(特别是podtemplates)的containerd。

  • 太长,读不下去了 有人知道我该如何配置squid、docker或。。。,所以我的docker容器可以通过我的(squid)代理访问internet,同一网络上的容器可以通过它们的主机名访问彼此? 长问题 以下场景: 有一个公司代理 我的docker-compose.yml代码: 当服务不需要访问internet(例如API)时,此设置就可以了,因为前端服务可以通过主机名访问后端服务 但是后端服务需

  • 我得到了一个可用的php fpm docker容器,作为nginx前端的php后端。我所说的工作,是指它按照预期在浏览器中呈现phpinfo输出。我的php fpm容器是由devilbox docker repo的php-fpm-7.4产品生产的。它已启用OCI8。 问题:在尝试oci_connect时,我一直收到ORA-28547 我所做的: 1——将/usr/lib/oracle/client

  • 我用这个参数挂载了容器: -v /home/test/:/home/test 在主机的/home/test内部有一个指向/mnt/文件夹的符号链接。 但是,尽管可以看到链接指向何处,但在容器内部似乎断开了: 这甚至可以在docker中实现吗?我不确定是否有办法做到这一点。 我知道我可以直接挂载符号链接指向的位置,但我只是想知道这是否可能。

  • 我目前正在使用Docker Desktop for Mac。 我的要求是从另一个容器中分离出一个容器。 情况: 容器A有一个正在运行的服务,它会根据请求查找swarm manager,并派生另一个容器B。我已经在我的机器上启动了单节点swarm manager。我不能使用主机网络模式,因为docker for MAC将轻量级linux虚拟机作为主机公开,而不是我的实际本地主机。我也试过:https