• Docker 安装


    安装

    Docker 在各个系统上安装:
    官方文档:https://docs.microsoft.com/zh-cn/virtualization/windowscontainers/quick-start/set-up-environment?tabs=Windows-Server

    Windows 10 安装

    微软安装说明:https://docs.microsoft.com/zh-cn/virtualization/windowscontainers/quick-start/set-up-environment?tabs=Windows-10-and-11

    先决条件

    • 启用 Hyper

    • 启用容器

    安装 Docker Desktop

    下载并安装 Docker Desktop,这里演示 Docker Desktop 版本为 4.9.1。
    双击安装文件,安装成功后。需要重启电脑。

    第一次打开 Docker Desktop 后,提示更新 WSL2,如下图所示:

    点击上面的链接,查看更新说明
    https://docs.microsoft.com/zh-cn/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package

    • 启用适用于 Linux 的 Windows 子系统
    dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    
    • 启用虚拟机功能
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    

    安装成功后,重启电脑。

    • 将 WSL 2 设置为默认版本
      打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本:
    wsl --set-default-version 2
    

    检查是否安装成功

    PS C:\WINDOWS\system32> docker -v
    Docker version 20.10.16, build aa7e414
    

    启动 Docker Desktop

    运行第一个Docker容器

    打开 Powershell,运行如下命令:

    PS C:\Users\wei> docker run -d -p 8078:80 docker/getting-started
    Unable to find image 'docker/getting-started:latest' locally
    latest: Pulling from docker/getting-started
    df9b9388f04a: Pull complete
    5867cba5fcbd: Pull complete
    4b639e65cb3b: Pull complete
    061ed9e2b976: Pull complete
    bc19f3e8eeb1: Pull complete
    4071be97c256: Pull complete
    79b586f1a54b: Pull complete
    0c9732f525d6: Pull complete
    Digest: sha256:b558be874169471bd4e65bd6eac8c303b271a7ee8553ba47481b73b2bf597aae
    Status: Downloaded newer image for docker/getting-started:latest
    53f6f0be207181b0bb055f212cce3bda67df34b43edcc78e4b3aaab71679928e
    docker: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:80 -> 0.0.0.0:0: listen tcp 0.0.0.0:80: bind: An attempt was made to access a socket in a way forbidden by its access permissions.
    

    自动下载镜像,并创建、运行容器

    容器启动失败,因为笔者的电脑80端口已经被占用,修改本地电脑端口为8087,映射到容器的80端口

    PS C:\Users\wei> docker run -d -p 8087:80 docker/getting-started
    d9ba4fcb532cca8d877200db5bfb28e190b973610b7fe77328f6ff6ed56f63cf
    

    运行后,重新创建了一个新的容器,如下图所示

    打开浏览器,访问 http://localhost:8087,这是一个运行在 Docker 中的 Doc文档网站,如下图所示:

    Windows Server 2016 安装

    微软官方安装说明:https://docs.microsoft.com/zh-cn/virtualization/windowscontainers/quick-start/set-up-environment?tabs=Windows-Server
    参考:https://www.zhangshengrong.com/p/O3aA7wlnX4/

    在 Windows Server 2016 上安装 Docker Desktop 时提示:

    结论:Windows Server 2016 上不能安装 Docker Desktop

    若要在 Windows Server 上安装 Docker,可以使用由 Microsoft 发布的 OneGet 提供程序 PowerShell 模块(称为 DockerMicrosoftProvider)。 此提供程序启用 Windows 中的容器功能,并安装 Docker 引擎和客户端。 以下是操作方法:

    1. 打开提升的 PowerShell 会话,从 PowerShell 库安装 Docker-Microsoft PackageManagement 提供程序。
    Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
    

    如果系统提示安装 NuGet 提供程序,还请键入 Y 进行安装。

    报错解决方案

    如果在打开 PowerShell 库时遇到错误,

    PS C:\Users\Administrator> Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
    Get-PSGalleryApiAvailability : PowerShell 库当前不可用。请稍后再试。
    所在位置 C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:1711 字符: 9
    +         Get-PSGalleryApiAvailability -Repository $Repository
    +         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation: (:) [Get-PSGalleryApiAvailability],InvalidOperationException
        + FullyQualifiedErrorId : PowerShellGalleryUnavailable,Get-PSGalleryApiAvailability
    
    
    需要使用 NuGet 提供程序来继续操作
    PowerShellGet 需要使用 NuGet 提供程序“2.8.5.201”或更高版本来与基于 NuGet 的存储库交互。必须在“C:\Program
    Files\PackageManagement\ProviderAssemblies”或“C:\Users\Administrator\AppData\Local\PackageManagement\ProviderAssembli
    es”中提供 NuGet 提供程序。也可以通过运行 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force' 安装
    NuGet 提供程序。是否要让 PowerShellGet 立即安装并导入 NuGet 提供程序?
    [Y] 是(Y)  [N] 否(N)  [S] 暂停(S)  [?] 帮助 (默认值为“Y”): Y
    
    警告: 无法从 URI“https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409”下载到“”。
    警告: 无法下载可用提供程序列表。请检查 Internet 连接。
    PackageManagement\Install-PackageProvider : 找不到提供程序“NuGet”的指定搜索条件的匹配项。程序包提供程序要求 "PackageM
    anagement" 和 "Provider" 标记。请检查指定的程序包是否具有标记。
    所在位置 C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:7405 字符: 21
    + ...     $null = PackageManagement\Install-PackageProvider -Name $script:N ...
    +                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidArgument: (Microsoft.Power...PackageProvider:InstallPackageProvider) [Install-Pac
       kageProvider],Exception
        + FullyQualifiedErrorId : NoMatchFoundForProvider,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPackagePro
       vider
    
    PackageManagement\Import-PackageProvider : 未找到与指定搜索条件和提供程序名称“NuGet”匹配的项目。请尝试运行 'Get-Packa
    geProvider -ListAvailable' 以查看系统中是否存在该提供程序。
    所在位置 C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:7411 字符: 21
    + ...     $null = PackageManagement\Import-PackageProvider -Name $script:Nu ...
    +                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidData: (NuGet:String) [Import-PackageProvider],Exception
        + FullyQualifiedErrorId : NoMatchFoundForCriteria,Microsoft.PowerShell.PackageManagement.Cmdlets.ImportPackageProv
       ider
    
    警告: 无法从 URI“https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409”下载到“”。
    警告: 无法下载可用提供程序列表。请检查 Internet 连接。
    PackageManagement\Get-PackageProvider : 找不到程序包提供程序“NuGet”。可能尚未导入该提供程序。请尝试使用 'Get-PackageP
    rovider -ListAvailable'。
    所在位置 C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:7415 字符: 30
    + ... tProvider = PackageManagement\Get-PackageProvider -Name $script:NuGet ...
    +                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : ObjectNotFound: (Microsoft.Power...PackageProvider:GetPackageProvider) [Get-PackageProvi
       der], Exception
        + FullyQualifiedErrorId : UnknownProviderFromActivatedList,Microsoft.PowerShell.PackageManagement.Cmdlets.GetPacka
       geProvider
    
    Install-Module : 需要使用 NuGet 提供程序来与基于 NuGet 的存储库交互。请确保已安装 NuGet 提供程序“2.8.5.201”或更高版本
    。
    所在位置 行:1 字符: 1
    + Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation: (:) [Install-Module],InvalidOperationException
        + FullyQualifiedErrorId : CouldNotInstallNuGetProvider,Install-Module
    
    PS C:\Users\Administrator> [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12
    ;
    PS C:\Users\Administrator> Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
    Get-PSGalleryApiAvailability : PowerShell 库当前不可用。请稍后再试。
    所在位置 C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:1711 字符: 9
    +         Get-PSGalleryApiAvailability -Repository $Repository
    +         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation: (:) [Get-PSGalleryApiAvailability],InvalidOperationException
        + FullyQualifiedErrorId : PowerShellGalleryUnavailable,Get-PSGalleryApiAvailability
    
    
    • 设置 TLS 版本

    则可能需要将 PowerShell 客户端使用的 TLS 版本设置为 TLS 1.2。 为此,请运行以下命令:

    # Set the TLS version used by the PowerShell client to TLS 1.2.
    [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12;
    
    • 然后再安装 NuGet
    PS C:\Users\Administrator> Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
    

    安装 Nuget 成功后,见到如下输出:

    PS C:\Users\Administrator> Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
    
    Name                           Version          Source           Summary
    ----                           -------          ------           -------
    nuget                          2.8.5.208        https://onege... NuGet provider for the OneGet meta-package manager
    
    • 然后安装 DockerMsftProvider:
    PS C:\Users\Administrator> Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
    Get-PSGalleryApiAvailability : PowerShell 库当前不可用。请稍后再试。
    所在位置 C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:1711 字符: 9
    +         Get-PSGalleryApiAvailability -Repository $Repository
    +         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidOperation: (:) [Get-PSGalleryApiAvailability],InvalidOperationException
        + FullyQualifiedErrorId : PowerShellGalleryUnavailable,Get-PSGalleryApiAvailability
    
    

    又报错了,

    • 安装 posh-ssh :
    PS C:\Users\Administrator> Install-Module posh-ssh
    
    不受信任的存储库
    你正在从不受信任的存储库安装模块。如果你信任该存储库,请通过运行 Set-PSRepository cmdlet 更改其 InstallationPolicy 值。是否确实要从“PSGallery”安装模块?
    [Y] 是(Y)  [A] 全是(A)  [N] 否(N)  [L] 全否(L)  [S] 暂停(S)  [?] 帮助 (默认值为“N”): A
    

    输入 A,开始下载:

    1. 使用 PackageManagement PowerShell 模块安装最新版本的 Docker。
    Install-Package -Name docker -ProviderName DockerMsftProvider
    

    PowerShell 询问是否信任包源“DockerDefault”时,键入 A 以继续进行安装。

    1. 在安装完成后,请重启计算机。
    Restart-Computer -Force
    

    如果希望稍后更新 Docker,请执行以下操作:

    1. 使用以下命令检查安装的版本:
    Get-Package -Name Docker -ProviderName DockerMsftProvider
    
    1. 使用以下命令查找当前版本:
    Find-Package -Name Docker -ProviderName DockerMsftProvider
    
    1. 准备好升级后,运行以下命令:
    Install-Package -Name Docker -ProviderName DockerMsftProvider -Update -Force
    
    1. 最后,运行以下命令以启动 Docker:
    Start-Service Docker
    
  • 相关阅读:
    godaddy 问题
    2014.10.5 再次学习LINUX
    自测 基础 js 脚本。
    error: cast from ‘char*’ to ‘int’ loses precision
    python 使用 Pyscript 调试 报错
    VS2012出现加载失败时的解决办法 win7同样适用
    Program received signal SIGILL, Illegal instruction
    visual assist x 注释配置
    python 学习网站
    python 典型文件结构
  • 原文地址:https://www.cnblogs.com/easy5weikai/p/16389012.html
Copyright © 2020-2023  润新知