关于为Windows Service 2019 使用 Docker的问题

目录
  • 引言
  • 准备工作
  • 开始安装
    • 安装Hyper-V
    • 安装容器
    • 安装Docker
    • 安装docker-compose
    • 切换内核(此方法有问题)
    • 更新Docker
    • 卸载Docker
      • 准备你的系统以删除 Docker
      • 正式卸载
      • 清理 Docker 数据和系统组件
  • 已知问题
  • 吐槽

引言

最近收到领导通知,甲方需要将原来的服务器迁移到新的服务器。
原来的服务器上安装了很多的服务,每次重启之后总是有很多的问题需要人工大量的进行干预。
这次迁移的还是Windows服务器于是这次打算使用Docker给以后减少点麻烦。
有的项目必须跑在Windows环境中,吐槽。

准备工作

操作系统: Windows Service 2019
指导手册: https://docs.microsoft.com/zh-cn/virtualization/windowscontainers/quick-start/set-up-environment?tabs=Windows-Server

开始安装

安装Hyper-V

通过服务器管理器->添加角色和功能进行安装。
在选择服务器角色界面选择 Hyper-V ,之后一直下一步即可。

安装容器

Install-WindowsFeature -Name containers

安装Docker

打开提升的 PowerShell 会话,从 PowerShell 库安装 Docker-Microsoft PackageManagement 提供程序。

Install-Module -Name DockerMsftProvider -Repository PSGallery -Force

如果系统提示安装 NuGet 提供程序,还请键入 Y 进行安装。
如果在打开 PowerShell 库时遇到错误,则可能需要将 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;

2.使用 PackageManagement PowerShell 模块安装最新版本的 Docker。

Install-Package -Name docker -ProviderName DockerMsftProvider

PowerShell 询问是否信任包源“DockerDefault”时,键入 A 以继续进行安装。
3. 在安装完成后,请重启计算机。

Restart-Computer -Force

安装docker-compose

可以通过链接查询最新的docker-compose 【https://github.com/docker/compose/releases】 再使用Powershell执行下方命令进行安装。

Invoke-WebRequest https://github.com/docker/compose/releases/download/v2.5.1/docker-compose-windows-x86_64.exe -UseBasicParsing -OutFile $env:ProgramFiles\docker\docker-compose.exe

切换内核(此方法有问题)

安装完后,默认为Windows内核容器,可手工切换至Linux内核容器,但个人认为意义并不大,完全可以在服务器上通过Hyper-V管理器安装一个Linux虚拟机,在虚拟机内跑Linux下的Docker,实现同时拥有两种内核的Docker服务,然后再通过Docker自带的Swarm进行统一管理,Swarm会根据镜像的类型自动发布到相应内核的Docker上去。
切换到Linux内核容器

[Environment]::SetEnvironmentVariable("LCOW_SUPPORTED", "1", "Machine")
Restart-Service Docker

切换到Windows内核容器

[Environment]::SetEnvironmentVariable("LCOW_SUPPORTED", $null, "Machine")
Restart-Service Docker

更新Docker

1.使用以下命令检查安装的版本:

Get-Package -Name Docker -ProviderName DockerMsftProvider

2.使用以下命令查找当前版本:

Find-Package -Name Docker -ProviderName DockerMsftProvider

3.准备好升级后,运行以下命令:

Install-Package -Name Docker -ProviderName DockerMsftProvider -Update -Force

最后,运行以下命令以启动 Docker:

Start-Service Docker

卸载Docker

准备你的系统以删除 Docker

在卸载 Docker 之前,请确保系统上没有运行任何容器。
运行以下 cmdlet,检查是否有正在运行的容器:

# Leave swarm mode (this will automatically stop and remove services and overlay networks)
docker swarm leave --force
# Stop all running containers
docker ps --quiet | ForEach-Object {docker stop $_}

最好在删除 Docker 之前也从系统中删除所有容器、容器映像、网络和卷。 为此,可以运行以下 cmdlet:

docker system prune --volumes --all

正式卸载

使用 Uninstall-Package 和 Uninstall-Module cmdlet 从系统中删除 Docker 模块及其相应的程序包管理提供程序,如以下示例所示:

Uninstall-Package -Name docker -ProviderName DockerMsftProvider
Uninstall-Module -Name DockerMsftProvider

清理 Docker 数据和系统组件

在卸载 Docker 后,需删除 Docker 的默认网络。这样,在卸载 Docker 后,这些网络的配置就不会保留在系统上。 为此,可以运行以下 cmdlet:

Get-HNSNetwork | Remove-HNSNetwork
```PowerShell
在 Windows Server 2016 上删除 Docker 的默认网络。

Get-ContainerNetwork | Remove-ContainerNetwork

运行以下 cmdlet,从系统中删除 Docker 的程序数据:
```PowerShell
Remove-Item "C:\ProgramData\Docker" -Recurse

重启系统:

Restart-Computer -Force

已知问题

当执行命令的时候如果提示 npipe 连接失败。
error during connect: This error may indicate that the docker daemon is not running.: Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/images/json": open //./pipe/docker_engine: The system cannot find the file specified.

# 可以考虑一下方式处理: 在 C:\ProgramData\Docker\config\daemon.json 文件中增加 "npipe://"
# 类似一下配置
{
    "hosts": ["tcp://0.0.0.0:2375","npipe://"]
}

吐槽

  • Docker不支持文件映射
  • 很多服务没有现成的镜像
  • 微软很多的镜像无法推送到私有仓库

可以使用点此查看解决方案 https://www.jb51.net/article/248769.htm

到此这篇关于为Windows Service 2019 使用 Docker的文章就介绍到这了,更多相关Windows 2019  使用 Docker内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Windows Server 2012 R2 安装 Docker的详细步骤

    目录 安装包下载 安装步骤 ☘️安装 Docker Toolbox ☘️启动Docker ☘️遇到的报错提示 ☘️参考 安装包下载 windows10.Windows Server 2016以上系统可直接使用安装包,低版本系统需要使用 Docker Toolbox 来进行安装使用 Docker.这里在网盘中提供需要的文件. 链接: https://pan.baidu.com/s/1C9rTfY2AkQQv6g-XPWZ39Q?pwd=n83r 提取码: n83r 安装步骤 开启 Cpu 的虚拟化

  • Windows Server 2016 安装 Docker的过程及遇到问题

    必备条件 若要在 Windows Server 上运行容器,需要一台运行 Windows Server(半年频道).Windows Server 2019 或 Windows Server 2016 的物理服务器或虚拟机. 建议优先更新服务器 Windows Server 2016已经支持Docker技术,官方也给出了资料: https://docs.microsoft.com/zh-cn/virtualization/windowscontainers/quick-start/quick-st

  • windows server 2016安装docker的方法步骤

    最近微软发布了windows server 2016,并原生支持docker,本文通过一系列的步骤,来学习怎么在windows server 2016安装docker. Windows支持两种不同类型的容器,即 Windows Server 容器和 Hyper V 容器. 这两种类型的容器的使用方式相同,也支持相同的容器映像. 但是它们的实现机制不同,提供了不同的安全隔离级别 Windows Server 容器 - 非常类似与Linux中的容器,使用通过命名空间.资源控制实现进程隔离.每个Win

  • 关于为Windows Service 2019 使用 Docker的问题

    目录 引言 准备工作 开始安装 安装Hyper-V 安装容器 安装Docker 安装docker-compose 切换内核(此方法有问题) 更新Docker 卸载Docker 准备你的系统以删除 Docker 正式卸载 清理 Docker 数据和系统组件 已知问题 吐槽 引言 最近收到领导通知,甲方需要将原来的服务器迁移到新的服务器.原来的服务器上安装了很多的服务,每次重启之后总是有很多的问题需要人工大量的进行干预.这次迁移的还是Windows服务器于是这次打算使用Docker给以后减少点麻烦.

  • windows server 2019 服务器搭建的方法步骤(图文)

    一.windows server 2019 安装 Vmware 下安装 windows server 2019 . 二.服务器配置 1. 先启用远程功能 右键点击"此电脑"--"属性",进入"控制面板\系统和安全\系统",点击远程设置. 2.在"远程桌面"下方,点击"允许远程连接到此计算机",还有去掉下方"仅允许运行使用网络级别身份验证的远程桌面的计算机连接" 3.在运行中运行gpedi

  • windows server 2019 服务器配置的方法步骤(大图版)

    下面就为大家分享一下服务器的搭建方法,需要的朋友可以参考一下 一.windows server 2019 安装 Vmware 下安装 windows server 2019 . 具体的安装可以查看这篇文章:https://www.jb51.net/article/148806.htm 二.服务器配置 1. 先启用远程功能 右键点击[此电脑]–[属性],进入“[控制面板\系统和安全\系统]”,点击-[远程设置]计算机找不到就使用[win+E]快捷键 2.在“远程桌面”下方,点击[允许远程连接到此计

  • 详解Windows 利用 WSL2 安装 Docker 的2种方式

    目录 一.安装 WSL 先决条件 二.安装 Docker 前的准备 三.Windows 安装 Docker 一.安装 WSL 先决条件 必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11.(来自官网的说明) 二.安装 Docker 前的准备 控制面板->程序和功能->启用或关闭Windows功能->勾选 适用于Linux的Windows子系统 重启电脑 打开应用商城搜索 WSL ,可根据自己需求选择安装 Linux 发行

  • windows server 2019 性能优化和安全配置小结

    最近机器都升级到了windows server 2019 数据中心版,之前我们小编已经为大家分享了windows2008,2016 server的安全设置,其实2019与2016类似都是基于win10的服务器,所以这里就简单介绍一下 一般拿到服务器第一步不要安装更新就是 安装步骤 1.安装iis+php运行环境 2.安装mysql或者sqlserver(mysql安装zip版,sqlserver 可以安装2016或2019) 3.然后可以升级补丁,因为怕安全设置好以后打补丁会出问题或者打不上补丁

  • 安装mysql出错”A Windows service with the name MySQL already exists.“如何解决

    如果以前安装过mysql,卸载重装,很可能会碰到"A Windows service with the name MySQL already exists."这样的提示.即服务已经存在. 我们可以在window任务管理器----服务中查看,发现确实存在,没有卸载干净. 解决这个问题,可以在dos窗口,使用如下命令: 复制代码 代码如下: sc delete mysql 如果成功,出现如下结果: [SC] DeleteService SUCCESS 之后,重启电脑.如果再在任务管理器--

  • 以windows service方式运行Python程序的方法

    本文实例讲述了以windows service方式运行Python程序的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python # coding: utf-8 # SmallestService.py # # A sample demonstrating the smallest possible service written in Python. import win32serviceutil import win32service import win3

  • 解决MySQL5.1安装时出现Cannot create windows service for mysql.error:0

    安装MySQL5.1过程中,我把以前MySQL5.0的GUI工具和服务器全部删掉,安装目录全部删掉,数据文件目录名字改掉,注册表用完美卸载清理了.  然后重启安装MySQL5.1(我以前遇到过服务启动不了的情况,这样做就搞定了),可配置到最后一步时出现Cannot create windows service for MySQL.error:0错误,把配置工具关掉重试几次都不行,后来百度了下,听说要在系统管理员用户下执行sc delete mysql删除MySQL服务后再启动配置工具配置,实在不

随机推荐