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