docker启动odoo提示module没有安装_Windows Server 2019上的Docker 入门

本文字数:1679字

阅读时间:6分钟

b46fac3e3ea80f27b5c7d77b8c21ed69.png ac928e2d2dea25e329ac7bff48ba90ca.png

导读

Windows Server 2019 现在可以使用了!它是Windows Server的下一个长期支持版本,对运行Docker Windows容器进行了一些非常有用的改进。Docker Captain Stefan Scherer已经在他的博客文章中总结了Docker在Windows Server 2019上的新功能。

     更新:Windows的Docker第二版现已推出。它的主要内容为介绍Windows Server 2019

您需要Windows服务器来运行“单纯的”Docker容器,容器进程直接在主机操作系统上运行。您可以在Windows10上使用相同的docker images、相同的dockerfiles和相同的docker命令,但是还有一个额外的虚拟化开销,所以最好在测试环境中使用Windows Server VM。

        在Windows 10 Docker桌面上开始是最简单的入门方法

ac928e2d2dea25e329ac7bff48ba90ca.png

如果您想查看最新版本的 Windows Server 并运行Docker容器,下面是您需要做的事情。

获取Windows Server 2019

您现在可以从您的Visual Studio订阅(如果您有的话)下载ISO,然后安装Windows Server 2019;如果您没有,可以下载180天评估版。已部署Windows Server 2019的虚拟机将很快可以在Azure上使用。

2019的安装过程与以前的Windows Server版本相同 - 从ISO启动VM并开始安装。于我而言我更喜欢没有GUI的核心安装:

我在我的Windows10计算机上运行的一个Hyper-V虚拟机上安装了2019服务器,虚拟机磁盘存储在一个外部SSD驱动器上。安装程序在几分钟内完成,运行速度非常快,即使只分配了4GB内存。

您还可以使用ISO从以前的Windows Server版本升级到2019版本。

连接到服务器

当您RDP进入Windows Server Core时,您只看到一个命令提示。第一次连接时,需要设置默认管理员帐户的密码。然后我喜欢将PowerShell设置为默认命令shell,因此每当RDP进入PowerShell会话时:

Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' -name Shell -Value 'PowerShell.exe -noExit'

配置Windows功能

要运行容器,您需要启用容器功能,对于非生产虚拟机,我还禁用了Windows Defender以停止它燃烧CPU周期。您需要在执行以下步骤后重新启动:

Install-WindowsFeature -Name ContainersUninstall-WindowsFeature Windows-DefenderRestart-Computer -Force 

配置Windows更新

你要确保你更新了最新的版本,但是我禁用了自动更新,所以我只在需要的时候获取未来的更新。Windows Server Core中没有GUI,因此运行sconfig,然后选择:

  • 选项5,将Windows更新设置为手动

  • 选项7,启用对服务器的远程桌面访问

  • 选项6,下载并安装所有更新内容

然后就可以安装Docker了。

在Windows Server 2019 上安装Docker

Windows Server许可包括Docker Enterprise的许可证成本,因此您可以运行企业版,并为Microsoft和Docker的容器提供生产支持。

最新的Docker Enterprise引擎是版本18.03,您可以使用PowerShell显式安装该引擎:

Install-Module -Name DockerMsftProvider -Repository PSGallery -ForceInstall-Package -Name docker -ProviderName DockerMsftProvider -Force -RequiredVersion 18.03 

这将Docker设置为Windows服务,您需要启动:

Start-Service docker  

拉动 Windows Base Images

您在Windows Server 2019上运行的任何Docker容器都将基于Windows Server Core或Nano Server。您需要他们的image。请注意,基础 image现在托管在Microsoft的容器注册表MCR上:

docker image pull mcr.microsoft.com/windows/servercore:1809docker image pull mcr.microsoft.com/windows/nanoserver:1809  

与Windows Server 2016版本相比,这些image很小。Windows Server Core从超过10GB缩小到1.5GB下载,而Nano Server从超过1GB缩小到90MB下载!

(可选)拉取 .NET 核心 image

.NET核心团队在Windows Server 2019发布后立即发布了其SDK和运行时image的版本。现在,您可以立即启用,并在2019年开始运行您的.NET核心应用程序(希望.NET Framework SDK、ASP.NET和SQL Server image很快发布。)

docker image pull microsoft/dotnet:2.1-sdk-nanoserver-1809docker image pull microsoft/dotnet:2.1-aspnetcore-runtime-nanoserver-1809  

上游Docker image仍在Docker Hub上,只有基础Windows 2019 image在MCR上。

试试看

我推送了我的.NET Core Whoami image的更新版本,因此您可以尝试在Windows Server Core 2019容器中运行ASP.NET Core 2.1:

docker container run -d -p 8080:80 sixeyed/whoami-dotnet:nanoserver-1809  

Docker在Windows Server 2019中的一个增强功能是现在可以使用环回地址,因此您可以使用服务器上的localhost访问此容器,并使用来自外部计算机的相同发布端口:

在Swarm模式中……

我将发布一个更详细的解释,说明在Windows Server 2019中你可以用Docker做什么,但在Windows Server 2016中不能做到,这里还有一件事:Windows Server 2019现在支持进入网络用于Docker Swarm模式。这意味着您可以在一台服务器上运行多个容器,所有容器都在同一端口上侦听,Docker将在容器之间对传入请求进行负载平衡。

在我的多元化课程:管理Docker Swarm模式集群中的负载平衡和规模中有更多的细节。

将服务器切换到单节点群:

docker swarm init --advertise-addr 127.0.0.1  

现在将whoami应用程序部署为一个Swarm服务,具有多个副本和一个已发布的端口:

docker service create `    --publish 8070:80 `  --replicas 5 `  sixeyed/whoami-dotnet:nanoserver-1809

现在,当您从外部浏览到VM时,Docker将在托管该服务的五个容器之间对请求进行负载平衡:

还有更多

Windows Server 2019是Docker对容器功能的改进。Windows Server 2016对于生产来说仍然是完美的,但是2019使Windows容器更接近于与Linux容器的功能特性,并且解决了一些在2016年棘手的问题。

下一件重要的事是Kubernetes的Windows支持,预计将在今年年底前上市 :)

5223a8742659fd857e1439d52e54f8eb.png

点击

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值