在Docker for Windows中运行正常的Win32应用程序

时间:2016-02-23 08:57:42

标签: windows delphi docker

我对Docker for Windows的概念有点困惑。 我可以为Windows(以及像Windows 2016这样的Windows主机)创建一个docker容器,并在该容器中安装一个普通的Windows应用程序(简单:notepad.exe;在Delphi中编写一些更复杂的应用程序)? 我可以在每个启用Docker的主机上运行此容器吗?容器是否自动启动应用程序内部?或者Windows docker容器只能提供服务或基于Web的应用程序,如IIS网站吗?

4 个答案:

答案 0 :(得分:7)

如果你有Windows Server 2016,你将能够启动Windows容器(并且你需要一个Linux服务器来启动Linux容器)。

查看这些链接

https://msdn.microsoft.com/en-us/virtualization/windowscontainers/quick_start/manage_docker

https://msdn.microsoft.com/en-us/virtualization/windowscontainers/quick_start/container_setup

https://msdn.microsoft.com/en-us/virtualization/windowscontainers/containers_welcome

在Windows中,您的Dockerfile将以

开头

FROM windowsservercore

而不是更常见的

FROM debian 要么 FROM ubuntu

在(Windows)docker

中查看IIS的一些示例

https://msdn.microsoft.com/en-us/virtualization/windowscontainers/quick_start/manage_docker

或docker中的SQL Server

http://26thcentury.com/2016/01/03/dockerfile-to-create-sql-server-express-windows-container-image/

答案 1 :(得分:5)

Docker的候选应用程序类型是没有UI的应用程序。

与VM docker不同,图像非常纤薄,只有足够的代码库来为特定用例提供服务。但是,您可以创建一个docker镜像并使用VNC来查看类似环境的桌面;但你必须通过箍来配置它。如果你需要一个gui表面,就更容易拥有一个VM。

docker的优势在于可以轻松创建服务器和数据库后端的容器。您甚至可以运行电子邮件服务器或一堆安静的服务。

在我的笔记本电脑上,我安装了mysql,IIS和PHP。使用docker我将所有这些迁移到图像中。我需要它时将它旋转起来,在不到10秒的时间内,我有一个工作的db后端,一个带PHP接口的IIS服务器。我可以为不同的迭代维护不同版本的mysql,IIS和PHP,它们彼此隔离并在自己的容器中运行。当我升级我的笔记本电脑时,我不需要安装任何这些,只需图像即可。

答案 2 :(得分:1)

我知道这个话题有点老了,但是由于我刚刚尝试过,所以我想我会添加2ct。

否,您无法在容器内启动Windows应用程序,并期望其窗口出现在桌面上。

实际上,虽然可以启动这样的应用程序,但用处不大,因为您将无法看到UI或与UI交互。

例如,您可以在Windows Core Server容器中启动notepad.exe并验证该进程是否正在运行(使用tasklist而不是taskmanager,这同样无法看到)。 但是您不能在此记事本实例中键入任何内容或访问菜单。

Hth, mav

答案 3 :(得分:-6)

没有。 Docker本质上是Linux。是的,你可以在Windows上运行Docker,但它实际上做的是安装VirtualBox并在其中运行Linux VM。 Docker服务器通常在云中的Linux VM上运行。您可以放入Docker容器的程序是Linux程序。