Docker在 Windows 上安装

注意这个Docker的发行版本不建议使用Boot2Docker命令行,建议使用Docker Machine。使用Docker Toolbox安装Docker Machine跟安装其他Docker工具一样。

你可以使用Docker Toolbox安装Docker。Docker Toolbox包含如下的Docker 工具:

  • Docker Machine 为了运行 docker-machine 可执行包
  • Docker Engine 为了运行 docker 可执行包
  • Docker Compose 为了运行 docker-compose 可执行包
  • Kitematic,Docker GUI
  • 一个预设的Docker命令行环境
  • Oracle VM VirtualBox

因为Docker Daemon使用了Linux一个内核特性,原生的OS X系统不能直接运行Docker。折中的解决方案,你必须使用 docker-machine 去创建并连接到一个虚拟机上(VM)。这个VM会为你的Mac提供Docker运行环境。

Docker 虚拟机是轻量Linux额虚拟机,专门用于在Windows上运行Docker Daemon。VM(虚拟机)完全运行在内存里,它非常小,大约只有24MB,只需约5S就可以启动。

要求

你的机器必须是运行了 Windows 7,8/8.1 或更新的操作系统并启动Docker。目前,还不支持 Windows 10。查看你的Windows版本信息:

  1. 右击Windows控制面板选项系统。

    译者注:在微软的查看系统有很多种方法,大家不要局限于上面的方式,选择你喜欢的方式就OK。

    Which version

    如果你正在使用的系统不支持,为了能正常使用Docker,你应该考虑升级你的操作系。

  2. 确保你的CPU 支持虚拟化技术并启用BIOS的虚拟化支持。

    Windows 8 或 8.1

    选择 Start(开始) > Task Manager(任务管理) 并切换到 Performance(性能) 选卡。在 CPU 的下方,你应该看到如下信息:

    Release page

    在你的系统上,如果虚拟化没有被开启。以下的厂商的指令可以开启它。

    Windows 7

    运行微软® 硬件辅助虚拟化检测工具和屏幕中的指令。

注意:如果你已经拥有了一个正在运行的Docker主机,且你有不希望安装一个Docker ToolBox,你可以使用非官方的Windows包管理器(Chocolatey)安装 docker.exe 。如何操作,请移步到Docker package on Chocolatey

在安装前,先了解一些主要的概念

Docker 在Linux上安装过程里,你的物理机器既是本地主机也是Docker的宿主机。在网络里,本地主机的意思是你的计算机。Docker的宿主机是托管这容器运行的计算机。

在一个标准的Linux安装中,Docker客户端、Docker Daemon和一些运行中的容器会直接寄托在你的本地主机上。这意味着你可以使用标准的本地地址和端口去访问容器,例如, localhost:8000 或 0.0.0.0:8376

Linux Architecture Diagram

在一个 Windows 安装里,docker daemon(守护进程)会运行在一个Linux虚拟机的内部。你可以使用Windows Docker客户端与Docker  虚拟主机进行通信。你的Docker 容器运行在这个主机内部。

Windows Architecture Diagram 

在Windows里面,Docker 宿主机的地址跟Linux虚拟一样。当你使用 docker-machine 启动Linux虚拟机是,它会分配一个IP地址。当你启动一个容器是,容器上的端口会映射到虚拟机的端口上。

安装

如果你已经运行了 VirtualBox,在安装前,你必须停止它。

  1. 打开 Docker Toolbox 主页。

  2. 点击安装程序连接去下载。

  3. 双击安装包或通过右键弹出的菜单选择 "打开(Openning)" 启动安装。

    安装程序启动后,会弹出 “Install Docker Toolbox” 对话框。

  1. Install Docker Toolbox

  2. 按下 “Next” 安装 toolbox。

    安装程序会给你提供选项来定制标准的安装。默认情况下,标准的 Docker Toolboxthe 会安装如下工具:

    • 安装Docker 工具的可执行到 C:\Program Files\Docker Toolbox 文件里。
    • 安装 VirtualBox;或更新已经存在的安装
    • 添加一个Docker文件夹到你的快捷目录中
    • 更新你的 PATH 环境变量
    • 为Docker快速启动终端和Kitematic添加桌面图标

    以上都是默认安装设置。

  3. 按下 “Next” 直到你到达 “Ready to Install” 页面。

    系统提示你输入密码。

    Install

  4. 按下 “Install” 继续安装。

    当完成安装后,安装程序会给提供一些常用的操作任务,以便你可以快速的体验。

    All finished

  5. 点击 “Finish” 完成安装。

运行一个Docker容器

为了运行一个Docker容器,你需要如下步骤:

  • 创建一个新的(或启动一个已经存在的) Docker 虚拟机
  • 将你的环境切换到新的虚拟机
  • 使用 docker 客户端创建、加载和管理容器

当你创建一个机器时,如果你喜欢,你可以随时重用它。正如所有的VirtualBox虚拟机一样。

这里有两种方式可以使用你已经安装的工具,从Docker 快速终端或从你的shell

使用 Docker 快速启动终端

  1. 在你的桌面找到Docker 快速启动终端的图标并双击启动它。

    应用执行流程:

    • 打开一个终端窗口
    • 创建一个 default 虚拟机,如果它不存在,并启动虚拟机
    • 将终端的环境指向这个虚拟机

    当启动完成后,你可以执行 docker 命令。

  2. 通过运行 hello-world 容器,核实你的配置是否成功。

    $ docker run hello-world
    Unable to find image 'hello-world:latest' locally
    511136ea3c5a: Pull complete
    31cbccb51277: Pull complete
    e45a5af57b00: Pull complete
    hello-world:latest: The image you are pulling has been verified.
    Important: image verification is a tech preview feature and should not be
    relied on to provide security.
    Status: Downloaded newer image for hello-world:latest
    Hello from Docker.
    This message shows that your installation appears to be working correctly.
    
    
    To generate this message, Docker took the following steps:
    1. The Docker client contacted the Docker daemon.
    2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
       (Assuming it was not already locally available.)
    3. The Docker daemon created a new container from that image which runs the
       executable that produces the output you are currently reading.
    4. The Docker daemon streamed that output to the Docker client, which sent it
       to your terminal.
    
    
    To try something more ambitious, you can run an Ubuntu container with:
    $ docker run -it ubuntu bash
    
    
    For more examples and ideas, visit:
    http://docs.docker.com/userguide/
    

使用 Windows 命令提示(cmd.exe)

  1. 启动一个Windows 命令提示终端(cmd.exe)。

    docker-machine 命令需要 ssh.exe 在你的 PATH 环境变量。这个 .exe 在 MsysGit bin 文件夹里。

  2. 通过执行如下指令,添加它到 %PATH% 环境变量里:

    set PATH=%PATH%;"c:\Program Files (x86)\Git\bin"
    
  3. 创建一个新的 Docker 虚拟机。

    docker-machine create --driver virtualbox my-default
    Creating VirtualBox VM...
    Creating SSH key...
    Starting VirtualBox VM...
    Starting VM...
    To see how to connect Docker to this machine, run: docker-machine env my-default  
    

    这条命令也创建了一个机器配置文件,在 C:\USERS\USERNAME\.docker\machine\machines 目录里。你只需运行一次 create 命令。之后,你可以在命令行里,使用 docker-machine 去启动、停止、查询和其他管理虚拟机。

  4. 列出你的可用机器

    C:\Users\mary> docker-machine ls
    NAME                ACTIVE   DRIVER       STATE     URL                         SWARM
    my-default        *        virtualbox   Running   tcp://192.168.99.101:2376
    

    如果你以前安装了被弃用的Boot2Docker 应用或运行Docker 快速启动终端,你可能还有一个 dev 的虚拟机。当你创建了default 虚拟机,docker-machine 命令会提供指令去学习如何连接虚拟机。

  5. 获取你的新虚拟机的环境命令

    C:\Users\mary> docker-machine env --shell cmd my-default
    
  6. 连接你的 shell 到 my-default 机器上

    C:\Users\mary> eval "$(docker-machine env my-default)"
    
  7. 运行 hello-world 容器去核实你的配置

    C:\Users\mary> docker run hello-world
    

使用 PowerShell

  1. 启动一个Windows PowerShell窗口。

  2. 添加 ssh.exe 到你的PATH上:

    PS C:\Users\mary> $Env:Path = "${Env:Path};c:\Program Files (x86)\Git\bin"
    
  3. 创建一个新的Docker虚拟机。

    PS C:\Users\mary> docker-machine create --driver virtualbox my-default
    
  4. 列出你可用的机器。

    C:\Users\mary> docker-machine ls
    NAME                ACTIVE   DRIVER       STATE     URL                         SWARM
    my-default        *        virtualbox   Running   tcp://192.168.99.101:2376
    
  5. 获取你的新虚拟机的环境命令。

    C:\Users\mary> docker-machine env --shell powershell my-default  
    
  6. 连接你的shell到 my-default 机器。

    C:\Users\mary> eval "$(docker-machine env my-default)"
    
  7. 运行 hello-world 容器去核实你的配置。

    C:\Users\mary> docker run hello-world
    

了解你的 Toolbox 安装

Toolbox 安装了Docker 引擎二进制包,它会被存放 C:\Program Files\Docker Toolbox 目录里。当你使用Docker 快速启动终端或手动创建一个 default 虚拟机时,Docker Machine 会更新 C:\USERS\USERNAME\.docker\machine\machines\default 文件夹到你的系统。这个文件夹包含虚拟机的配置文件。

你可以创建多个虚拟机,使用Docker Machine 在你的系统上。因此,你可能得到多个虚拟机文件夹,如果你拥有多个虚拟机。移除一个虚拟机,可以使用 docker-machine rm <machine-name> 命令。

从Boot2Docker迁移

如果你之前使用 Boot2Docker,你拥有一个Docker boot2docker-vm 虚拟机,在你的本地系统上。如果你想让Docker Machine 去管理旧的虚拟机,你可以迁移它。

  1. 打开一个终端或Docker CLI(命令行接口),在你的系统上。

  2. 输入如下命令:

    $ docker-machine create -d virtualbox --virtualbox-import-boot2docker-vm boot2docker-vm docker-vm
    
  3. 使用 docker-machine 命令发起虚拟的迁移通信。

docker-machine 子命令与 boot2docker 有稍许的差异。如下列表中列出了 docker-machine 等同的子命令:

boot2docker docker-machine docker-machine描述
init create 创建一个新的docker主机
up start 启动一个停止的机器
ssh ssh 运行一个命令或互动ssh回话,在机器上。
save - 没有对等指令
down stop 停止一个运行中的机器
poweroff stop 停止一个运行中的机器
reset restart 重启一个运行中的机器
config inspect 打印机器的配置详情
status ls 列出所有机器和他们的状态
info inspect 显示一个机器的详情
ip ip 显示机器的 ip 地址
shellinit env 显示你跟机器交互配置的shell指令
delete rm 删除一个机器
download - 没有对等指令
upgrade upgrade 更新一个机器的Docker客户端到一个最新稳定版本

升级 Docker Toolbox

Docker Toolbox安装包下载,并重新安装即可。具体可以参考上述的诸多步骤。

容器端口的重定向

如果你对虚拟机给Docker分配的默认 docker  用户名和 tcuser 密码感到“不爽”。docker-machine 最新版只是给Docker 设置一个主机网络适配器,它提供访问容器的端口服务。

如果运行想运行一个带发布端口的容器,可以这样做:

$ docker run --rm -i -t -p 80:80 nginx

之后,使用IP地址你应该可以访问到这个nginx服务,使用如下命令查看IP:

$ docker-machine ip

通常,IP 是192.168.59.103,但是,你可以修改Virtualbox的DHCP实现来修改它。

登录 PUTTY 替代使用CMD

Docker Machine 生成并使用公匙/密匙对,在你的 %USERPROFILE%\.ssh 目录里。所以,要成功登录,你必须从相同的目录获得有效的密匙。这个密匙必须转换成PuTTY的格式。你可以使用puttygen做到:

  1. 启动 puttygen.exe 并加载(“File”->“Load” menu) 密匙

    %USERPROFILE%\.docker\machine\machines\<name_of_your_machine>
    
  2. 点击 “Save Private Key”(保存密匙)。

  3. PuTTY 执行 docker@127.0.0.1:2022 并使用上面保存的问价完成登录。

卸载

你可以使用Windows的标准删除进程卸载Docker Toolbox。这个进程不会自动移除 docker-install.exe 问价。你必须自己去删除这个文件。

知识拓展

你可以通过 Docker用户指南继续学习。如果你Kitematic GUI的使用感兴趣,请移步到Kitematic用户指南

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值