Windows 下 Docker 的安装与配置概述

本文简要说明 Windows 环境下 Docker 的安装与配置。

原理概述

Docker 最早基于 Linux 内核相关特性构建,只能在 Linux 类系统上运行。所以,Windows 上只能基于 Linux 虚拟机运行 Docker。但与微软深入合作后,从 Windows Server 2016 开始,提供了对 Docker 的原生支持。所以,在 Windows 上安装、运行 Docker 有两种模式:

  • Windows Container:专为 Windows 设计的容器架构下原生支持、运行的容器,Windows 底层相关 API 都是全新设计的。
  • Hyper-V/VirtualBox Container(Linux Container):基于 Windows Hyper-V 或 Docker Toolbox 内嵌的 VirtualBox 创建 Linux 虚拟机承载 Docker 容器环境。

要点

  • Windows Container 与其宿主机共享一个内核,因此容器映像版本必须与宿主机相匹配。 如果版本不同,容器虽然可以启动,但其功能完整性得不到保证。
  • 而 Linux Container 基于虚拟机构建,所以使用自己的内核实例。因此,宿主机和容器镜像可以是不同的操作系统版本。

环境要求

  • Windows Container 功能仅适用于 Windows Server 2016(核心和桌面体验)、Nano Server 和 Windows 10 专业版和企业版(周年纪念版)。
  • 运行 Hyper-V 容器之前必须安装 Hyper-V 角色。
  • Windows Server 容器主机必须将 Windows 安装到 C:\。 如果将仅部署 Hyper-V 容器,则不会应用此限制。

安装配置概述

Docker Toolbox For Windows 7/8

要点

对于 Windows 7/8 系统,可以基于 Docker Toolbox 安装 Docker 环境。注意如下要点:

  • 操作系统必须是 Windows 7 之后的系统。
  • 必须是 64位系统。

Docker Toolbox 涵盖了 Docker 运行的通用组件。包括:

  • Docker CLI 客户端:创建镜像、运行容器等 Docker 相关操作的 CLI 环境。
  • Docker Machine:使您可以在 Windows CMD 里面直接运行 docker 相关指令。
  • Docker Compose : 使您可以运行 docker-compose 相关指令。
  • Kitematic: 提供了 Docker 图形配置界面
  • Docker 快速启动:使您能快速启动 Docker 命令行环境。
  • Oracle VM VirtualBox: 虚拟机软件,基于其自动创建 Docker 运行所依赖的 Linux 虚拟机。
  • Git: Windows Git 客户端。

安装

Docker Toolbox 的安装非常简单。和常见的 Windows 软件类似,从 Docker 官方下载安装包后直接双击安装即可。

具体安装细节及更多安装说明,本文不再详述,您可以查阅 Docker 官方文档

注意事项

Docker Quickstart Terminal 启动时会自动从 github 下载最新的 boot2docker.iso (一个专为Docker而设计的轻量级 Linux 发行包)。而由于国内到 github 的网络稳定性问题,会导致由于该文件无法下载导致启动过程中出现类似如下信息并持续卡顿:

(default) No default Boot2Docker ISO found locally, downloading the latest release...
(default) Latest release for github.com/boot2docker/boot2docker is v17.05.0-ce
(default) Downloading C:\Users\\Administrator\.docker\machine\cache\boot2docker.iso from https://github.com/boot2docker/boot2docker/releases/download/v17.05.0-ce/boot2docker.iso...
(default) 0%Error removing file: Error removing temporary download file: remove C:\Users\\Administrator\.docker\machine\cache\boot2docker.iso.tmp24517390: The process cannot access the file because it is being used by another process.
(default)Looks like something went wrong in step ´Checking if machine default exists´...Press any key to continue...

处理办法
1. 复制上述报错信息正文中的 boot2docker.iso 下载地址,比如:https://github.com/boot2docker/boot2docker/releases/download/v17.07.0-ce/boot2docker.iso
2. 通过 VPN 等方式从 github 直接下载该文件。
3. 将下载后的文件保存到上述报错信息中的相应目录。比如: C:\Users\Administrator.docker\machine\cache
4. 同时删除上述目录所有之前生成的类似 boot2docker.iso.tmpxxxx 的缓存文件。
4. 重新运行 Docker Quickstart Terminal 。

通过 Client 连接和管理 Docker Engine

基于上述 Docker Quickstart Terminal 快速创建 Docker 虚拟环境后,可以通过如下方式,使用 Docker CLI 连接和管理 Docker Engine。

注意: 必须确保相应 Docker Engine 已正常启动后才能正常连接。

  • 前置:获取基础信息

    1. 新建 CMD窗口,执行 docker-machine ls 获取 docker Engine 相关信息:URL 列是监听地址,Name 列是名称(默认为 default)。
    2. Docker Quickstart Terminal 创建的 Docker Engine 默认的证书目录如下(Administrator 对应安装用户):
      C:\Users\Administrator.docker\machine\certs
  • 直接在命令中添加相关参数

    可以在命令行中结合相关参数,直接指定目标 docker Engine 的地址进行使用和管理:

    格式
    docker -H tcp://:2376 --tlsverify --tlscacert=<证书路径>\ca.pem --tlscert=<证书路径>\cert.pem --tlskey=<证书路径>\key.pem <操作指令>

    示例

    docker -H tcp://192.168.99.100:2376 --tlsverify --tlscacert=C:\Users\Administrator\.docker\machine\certs\ca.pem --tlscert=C:\Users\Administrator\.docker\machine\certs\cert.pem --tlskey=C:\Users\Administrator\.docker\machine\certs\key.pem ps
    
  • 通过 docker-machine 获取自配置脚本

    docker-machine env 指令可以根据相应的 docker engine 自动生成相应 shell 的环境配置脚本。根据所使用 shell 的不同,结合相应 Docker Engine 的名称,使用如下格式获取配置脚本:

    格式
    docker-machine env --shell [docker engine 名称]
    说明

    1. 支持的 shell 包括: fish,cmd,powershell,tcsh,auto-detect
    2. shell 自动判断不建议使用,实测判断效果很差。
    3. docker engine 名称参阅前述说明,通过 docker-machine ls 获取,如果不输入,则使用默认名称:*default*。

    示例

    【cmd 环境】
    docker-machine env --shell cmd default
    SET DOCKER_TLS_VERIFY=1
    SET DOCKER_HOST=tcp://192.168.99.100:2376
    SET DOCKER_CERT_PATH=C:\Users\Administrator\.docker\machine\machines\default
    SET DOCKER_MACHINE_NAME=default
    SET COMPOSE_CONVERT_WINDOWS_PATHS=true
    REM Run this command to configure your shell:
    REM     @FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd') DO @%i
    
    1. 参阅返回信息末尾相关说明,在新开的 shell 窗口中,执行最后一条指令进行环境自动配置即可。比如:
      ```
      【cmd 环境】:
      @FOR /f "tokens=*" %i IN ('docker-machine env --shell cmd') DO @%i

    【powershell环境】:
    & docker-machine env --shell powershell default | Invoke-Expression

5. 可以将上述脚本指令创建对应脚本,比如 setCmd.bat,然后将脚本路径添加到环境变量 PATH 末尾即可。这样后续使用的时候直接输入 setcmd 按需调用即可:
```
【setDockerCmd.bat】:注意,bat 脚本中,for 语句中的特殊字符需要进行转义。所以这里将 %i 替换为 %%i:
@FOR /f "tokens=*" %%i IN ('docker-machine env --shell cmd') DO @%%%i
```

Docker for Windows For Windows 10

安装

对于 Windows 10 系统,可以基于 Docker for Windows 直接安装 Docker 环境。注意如下要点:

  • 安装包分为 Stable channel 和 Edge channel 两个分支。
  • Stable 版是稳定版本,每个季度更新一次。而 Edge 版是测试版,每个月更新一次。

Docker for Windows 的安装也类似,从 Docker 官方按需下载所需的分支版本安装包后,直接双击安装即可。

安装完成后,双击桌面上的 Docker for Windows 图标运行 Docker。待通知区域的 Docker 图标显示 Docker 正在运行后,以管理员身份打开 PowerSehll,然后运行指令 docker version,则会输出 Docker 客户端及服务端的相关版本信息:

PS C:\Windows\system32> docker version
Client:
 Version:      17.09.0-ce-rc1
 API version:  1.31
 Go version:   go1.8.3
 Git commit:   ae21824
 Built:        Wed Sep  6 22:25:14 2017
 OS/Arch:      windows/amd64

Server:
 Version:      17.09.0-ce-rc1
 API version:  1.32 (minimum version 1.24)
 Go version:   go1.8.3
 Git commit:   ae21824
 Built:        Wed Sep  6 22:35:40 2017
 OS/Arch:      windows/amd64
 Experimental: true

配置

配置自动补齐

PowerShell 下 Docker 相关指令默认没有配置自动补齐功能。可以参阅如下步骤安装配置 posh-docker 来实现自动补齐:
1. 以管理员身份打开 powershell
2. 执行如下指令配置 powershell 脚本执行权限(按 Y 选择 ):

Set-ExecutionPolicy RemoteSigned
# 执行完成后,可以执行如下指令检查配置情况
get-executionpolicy
  1. 安装 posh-docker

    Install-Module posh-docker
    # 出现相关提示,选择 Y
  2. 默认情况下,自动补齐只对当前 powershell 生效。执行如下指令以对全局生效:

    if (-Not (Test-Path $PROFILE)) {
    New-Item $PROFILE –Type File –Force
    }
    Add-Content $PROFILE "`nImport-Module posh-docker"

关于 Windows 镜像

完成前述配置后,就可以按正常模式继续使用 Docker 了。可以点击通知栏 Docker 图标进行 Windows Container 和 Linux Container 的切换。需要注意的是,Windows Docker 目前支持的容器镜像只有两种:Windows Server Core 和 Nano Server。 并非所有配置都支持这两个操作系统映像。 下表详细介绍所支持的配置。

| 主机操作系统| Windows Server 容器| Hyper-V 容器|
| - | -|
|Windows Server 2016(Standard 或 Datacenter) |Server Core/Nano Server |Server Core/Nano Server|
| Nano Server | Nano Server | Server Core/Nano Server|
| Windows 10 专业版/企业版 | 不可用 | Server Core/Nano Server |

切换到 Windows Container 后,执行如下指令获取 Windows 镜像:

docker pull microsoft/nanoserver
docker pull microsoft/servercore

配置加速器

由于 docker hub 在国外,所以 pull 镜像时速度很慢甚至中断。目前 Docker 官方与阿里云合作,已经退出官方国内加速地址:https://registry.docker-cn.com*,可以配置加速器加速镜像的下载:

Docker Toolbox For Windows 7/8

参阅前述说明,在 通过 docker-machine 获取自配置脚本 步骤中,手工增加如下指令

SET REGISTRY-MIRRORS=https://registry.docker-cn.com

Docker for Windows For Windows 10

右击通知区域的 Docker 图标,选择 Settings...,然后切换到 Proxies 选项卡,选择 Manual proxy configuration,然后取消勾选 Use same for both,最后在 Secure Web Server.. 区域填入如下内容:

https://registry.docker-cn.com

参考资料

时间: 2024-12-30 10:02:50

Windows 下 Docker 的安装与配置概述的相关文章

Windows下Nginx的安装与配置

Windows下Nginx的安装与配置 Nginx ("engine x") 是一款高性能的,轻量级的HTTP Web 服务器 和 反向代理服务器及电子邮件 IMAP/POP3/SMTP 代理服务器. Nginx 是由俄罗斯的程序设计师 Igor Sysoev 所开发,为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过四年多时间了,Igor 将源代码以类BSD许可证的形式发布. 自 Nginx 发布四年来,Nginx 已经因它的稳定性.丰富的功能集.示例配置

Windows下MySQL下载安装、配置与使用

用过MySQL之后,不论容量的话,发现比其他两个(sql server .oracle)好用的多,一下子就喜欢上了.下面给那些还不知道怎么弄的童鞋们写下具体的方法步骤. (我这个写得有点太详细了,甚至有些繁琐,有很多步骤在其他的教程文档里都是省略掉的,但我还是要写出来,因为我当时走了很多弯路,我希望你们能够避免我走的这些弯路.当然,知道同学的可以略过,选择你想知道的地方看) 第一大步:下载.(不需要注册也可以下载,直接点下面的no thanks) a.俗话说:"巧妇难为无米之炊"嘛!我

Windows下SVN的安装与配置

STEP 1:下载和安装 首先在Subversion的官方网站http://sourceforge.net/projects/win32svn/files/  去下载windows安装包,最新版. 下载后安装在本地机器上,这里注意的是最好将安装目录指定为纯英文名目录,安装在中文目录下天知道哪天会冒出一个让你想破头也想不出的错误来. 下载TortoiseSVN进行本地安装,http://sourceforge.net/projects/tortoisesvn/files/  这是一个将SVN集成到

Windows下codeblocks的安装与配置

最近自己正好要使用codeblocks编写C++程序,安装好却发现无法编译,如果您也遇到相似问题,可以参考本文.   如果您已安装codeblocks,想转换成中文界面,直接参考Step 2. 如果您C程序无法编译,直接参考Step 3.   Step 1.安装codeblocks [1]下载 codeblocks10.05setup  [2]打开安装程序,点next直至安装完成(Win7请以管理员身份运行)   Step 2.转换成中文界面 [1]下载 locale.zip [2]解压出 lo

apache-关于windows下Apache的安装配置

问题描述 关于windows下Apache的安装配置 下载了Apache2.4.18的64位压缩包,然后安装之后,可以正常启动,在服务里也可以看见,但是就是验证的时候打不开网页. 然后,应该不是端口问题,因为80不行,改成8088也不行,改成8080也不行,改成了4321还是不行. 所以,还有可能是什么问题呢?大神在哪里 解决方案 先看看apache的log里面有没有什么错误信息,是不是网页路径配置没有正确 解决方案二: 参考这个试试看看 解决方案三: 你需要配置apache才可以的,要去他的配

Windows下Docker环境搭建

Windows下Docker环境搭建 一.下载.安装docker 链接:https://docs.docker.com/windows/step_one/ 按照网页中图解下载DockerToolbox并按照图解实例步骤进行安装. 二.启动docker拉取并安装所需要组件 1)点击Docker Quickstart Terminal图标启动docker 图1 2)通过docker拉取所需组件   如:拉取mysql组件 图2 分别执行如下命令拉取所需其他组件: 3)查看docker容器中已存在的组

Linux/Unix下ODBC的安装、配置与编程

odbc|unix|编程 Linux/Unix下ODBC的安装.配置与编程 齐亮 (cavendish@eyou.com) 2002 年 7 月 本文主要内容是介绍ODBC的简单原理,以及如何在Linux/Unix下进行ODBC的安装.配置与编程. 一. ODBC原理 ODBC 是Open Database Connect 即开放数据库互连的简称,它是由Microsoft 公司于1991 年提出的一个用于访问数据库的统一界面标准,是应用程序和数据库系统之间的中间件.它通过使用相应应用平台上和所需

java程序员菜鸟进阶(九)windows下搭建SVN服务器及配置myeclipse SVN客户端

  java程序员菜鸟进阶(九)windows下搭建SVN服务器及配置myeclipse SVN客户端 分类: 学习专区 java Web    1.下载SVN最新版本安装文件,官网下载地址是:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100,选择最新发布的SVN安装文件进行下载.最新版本是Setup-Subversion-1.6.5.msi,大小7.4MB,安装SVN至我的电脑.最好使用中文路径,而且

Windows 下noinstall方式安装 mysql 5.7.5 m15 winx64(推荐)_Mysql

下载解压不说 我解压在:E:\DBFiles\mysql-5.7.15-winx64\mysql-5.7.15-winx64 添加配置文件E:\DBFiles\mysql-5.7.15-winx64\mysql-5.7.15-winx64\my.ini ####################配置文件开始################### [client] default-character-set=utf8 [mysqld] port=3306 basedir ="E:\DBFiles\m