windows 安装Docker/Emqx教程

一、Docker安装

1、概述

windows安装docker总体分为三种方式:

  1. Windows Docker Desktop
  2. DockerToolbox
  3. Powershell Install-Package

不论哪种方式对于windows的版本都有比较严格的限制,包括但不限于如下一些限制(未探索完全):

  1. 普通云服务器暂时不支持(暂无解决方案)docker,云服务器不支持二次虚拟化。Azure和AWS已经提供了Docker 的 VM 映像。
  2. Windows Docker Desktop 安装方式,必须满足 WSL 2 (windows版本支持:windows 10(版本1903 或 1909,内部版本号必须是 18362.1049+ 或 18363.1049+,次要内部版本号需要高于 .1049))。
  3. Windows Docker Desktop 安装方式,必须满足Windows 10 64 位:Home 或 Pro 2004(build 19041)或更高版本,或者 Enterprise 或 Education 1909(build 18363)或更高版本。
  4. DockerToolbox 安装方式,windows必须支持虚拟化。
  5. Powershell Install-Package 安装方式,Windows server 2016、Windows server 2019 需要升级到最新版。

Windows 各版本推荐安装方式:

1. Windows 10 64位Home、Pro、 Enterprise、Education 需要升级到最新版,采用Windows Docker Desktop方式安装。
2. Windows server 2016 需要升级到最新版,采用DockerToolbox方式安装。
3. Windows server 2019 需要升级升级到最新版,采用Windows Docker Desktop 方式安装。
4. 其他版本采用DockerToolbox方式安装

PS:DockerToolbox方式官方已经放弃维护,条件允许情况windows server 升级到2019版,windows10升级到20h及以上

下载地址列表:

1
https://www.docker.com/products/docker-desktop
1
https://github.com/docker/toolbox/releases
1
https://github.com/boot2docker/boot2docker/releases
1
https://www.microsoft.com/en-us/download/details.aspx?id=54616
1
https://aka.ms/wsl2kernel

2. Windows Docker Desktop 方式安装

2.1 WSL 2安装

2.1.1 启用适用于 Linux 的 Windows 子系统
1
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
2.1.2 启用虚拟机功能
1
2
3
PowerShell

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
2.1.3 下载安装WSL2 Linux内核更新包

WSL2 Linux内核更新包 下载地址
如图,点击点击适用于 x64 计算机的 WSL2 Linux 内核更新包下载。

2.1.4 设置 WSL2 为默认版本
1
2
3
PowerShell

wsl --set-default-version 2
2.1.5 安装Docker Desktop
2.1.5.1 开始安装

双击下载的***Docker Desktop Installer.exe***安装包,进入安装界面,默认勾选>

  • [x] Install required Windows components for WSL 2
  • [x] Add shortcut to desktop

点击OK进入下一步

2.1.5.2 安装完成点击Close and restart启动docker,如启动失败,请查看常见错误(X.2 缺少WSL支持)

2.1.5.3 安装完成,等待docker启动完成

2.1.5.4 docker启动完成

3. DockerToolbox 方式安装

3.1 下载并安装 DockerToolbox

DockerToolbox 下载地址

3.2 下载并安装 boot2docker

复制下载的最新boot2docker.iso 到 C:\Users{UserName}.docker\machine\cache(缓存位置)下,如果cache文件夹不存在就新建一个名称cache的文件夹。
boot2docker下载地址

3.3 创建默认虚拟机

双击"Docker Quickstart Terminal"应用,创建默认虚拟机。

4. Powershell Install-Package 方式安装

4.1 安装Windows PowerShell5.1

4.1.1 查验PowerShell版本

当前系统为Windows 7 Service Pack 1, Windows 8.1, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2时,而PowerShell版本又低于5.1需要执行1.1、1.2,反之跳过1.1、1.2。查看PowerShell版本,如果版本低于5.1则需要安装PowerShell5.1。

1
Get-Host | Select-Object Version

4.1.2 下载并安装PowerShell5.1

PowerShell5.1下载地址

根据当前windows系统类型,选择下载对应的更新包(此处我系统是windows server2012 r2 X64位,所以下载X64包),安装更新过程中需要重启多次。

4.2 安装nuget

4.1.1 TSL1.0切换到TLS 1.2(仅限当前回话生效)
1
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
4.1.2 安装nuget
1
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force #指定Nuget安装包最小版本


nuget安装成功

4.3 安装docker模块

1
Install-Module -Name DockerMsftProvider -Force  #安装docker模块

4.5 安装docker包

1
Install-Package -Name docker -ProviderName DockerMsftProvider -Force #安装docker包

4.6 重启电脑

1
Restart-Computer -Force #重新启动

4.6 查看docker安装信息

1
docker info 

二. 安装Emqx

1. 下载emqx镜像

1
2
3
PowerShell

docker pull emqx/emqx

2. 查看安装的Emqx镜像

方式一:在Docker desktop 的菜单Images 查看 emqx镜像

方式二:使用Powersehll

1
2
3
PowerShell

docker images

3. 启动Emqx

后台启动Emqx

1
2
3
PowerShell

docker run -d --name emqx -p 18083:18083 -p 1884:1883 --restart=always emqx/emqx:latest
--rm:移除容器
-d:指定以后台模式运行容器
--name:指定容器名称
-p 18083:18083:将主机的 1883 端口映射到容器的 1883 端口。
1883:MQTT 协议端口
8883:MQTT/SSL 端口
8083:MQTT/WebSocket 端口
8080:HTTP API 端口
18083:Dashboard 管理控制台端口

4. 登录Emqx管理后台

1
2
http://ip:18083  
默认账号:admin 密码:public

5. 管理后台查看Emqx信息

6. Emqx管理后台修改admin账户密码为 js*169 信息



二、 附录

1. 常见错误

1.1 系统不支持

Manifest extraction failed: 找不到 Windows 运行时类型“Windows.Data.Json.JsonObject”。
installation filed

解决方案:建议更换windows10及以上版本系统。

1.2 缺少WSL支持

WSL 2 Installation
解决方案:下载linux kerner内核更新包

1.3 windows10 版本太低(Windows Subsystem for Linux Update Setup)

检查运行 WSL 2 的要求,若要更新到 WSL 2,需要运行 Windows 10。

  • 对于 x64 系统:版本 1903 或更高版本,采用 内部版本 18362 或更高版本。
  • 对于 ARM64 系统:版本 2004 或更高版本,采用 内部版本 19041 或更高版本。
  • 低于 18362 的版本不支持 WSL 2.

    解决方案:建议升级windows10 的版本,升级到1903或者1909的最新版。

2. docker-emqx常用命令

进入docker emqx:docker exec -it emqx /bin/sh
重启docker emqx:docker restart emqx
停止docker emqx:docker stop emqx