DockerToolbox安装docker - Windows 10家庭版

由于本机使用的是win10家庭版操作系统,无法直接Docker for Windows安装,因此只好使用Docker Toolbox。在此记录一下过程,以供参考。

下载

因为toolbox安装包的官网下载需要FQ,所以从阿里云提供的镜像地址下载.

地址:http://mirrors.aliyun.com/docker-toolbox/windows/

或者去github:https://github.com/docker/toolbox/releases

此目录下有docker-for-windows和docker-toolbox俩个目录, docker-toolbox目录下是当前系统需要的安装包, docker-for-windows是为win10专业版提供的安装包(安装需要hyper-v).

 直接获取最新的版本.

 安装

打开exe的安装程序,选择安装目录,注意目录中不可有中文.

此处需要注意勾选了git后,此安装程序会先卸载系统本身的git,然后再进行安装,如系统本身已安装git,可以将此处的勾取消.

勾选最后一项.next,next.安装完成后会得到3个快捷方式.

 vm虚拟机管理,docker quickstart是docker命令行窗口的启动快捷方式。

可以通过cmd查看是否安装成功和安装路径等信息,命令是docker-machine

 

 双击Docker Quickstart Terminal, 如果出现如下页面,说明Docker已启动成功。

 

最近在Windows10 家庭普通版上安装Docker Toolbox时,遇到了很多麻烦,搜索了各种资料,累到吐血,终于成功了,这里主要参考了深蓝居的博文,亲测有效。

补充:1、安装Docker Toolbox时,会在C:\Users\ccy.docker\machine\machines目录下生成default目录,这个默认的镜像可能运行不正常,可以直接删掉,使用下面的docker-machine create --driver=virtualbox default命令直接创建一个即可。其他按照深蓝居的配置即可。
2、使用阿里云镜像加速有点坑的地方是,目录不好找。镜像服务在弹性计算下面。

原文链接: https://www.cnblogs.com/studyzy/p/6113221.html

最近在研究虚拟化,容器和大数据,所以从Docker入手,下面介绍一下在Windows下怎么玩转Docker。

Docker本身在Windows下有两个软件,一个就是Docker,另一个是Docker Toolbox。这里我选择的是Docker Toolbox,为什么呢?参见官方文档:

https://blog.docker.com/2015/08/docker-toolbox/

首先我们从官网下载最新版的Windows Docker Toolbox。安装后会安装一个VirtualBox虚拟机,一个Kitematic,这是GUI管理Docker的工具,没有发布正式版,不推荐使用,另外还有就是我们在命令行下用到的docker-machine和docker命令了。

基本使用

安装完成Toolbox后会有一个Docker Quickstart Terminal的快捷方式,双击运行如果报错,那可能是因为你已经安装了Hyper-v,所以VirtualBox无法用64位的虚拟机。需要卸载Hyper-v。

运行后会在Virtualbox中创建一个叫做default的虚拟机,然后很有可能会卡在waiting for an IP的命令下,然后就死活不动了。我的做法是彻底放弃Docker Quickstart Terminal,根本不用这玩意儿,关掉,我们用PowerShell进行虚拟机的管理。

打开PowerShell,输入:

docker-machine ls

我们可以看到我们当前的Docker虚拟机的状态。如果什么都没有的话,那么我们可以使用以下命令创建一个Docker虚拟机。

docker-machine create --driver=virtualbox default

创建完毕后,我们在用docker-machine ls确认我们的Docker虚拟机在运行中。

然后使用以下命令获得虚拟机的环境变量:

docker-machine env default

然后再输入:

docker-machine env default | Invoke-Expression

这样我们就把当前的PowerShell和虚拟机里面的Docker Linux建立的连接,接下来就可以在PowerShell中使用docker命令了。

比如我们要查看当前有哪些镜像:

docker images

当前有哪些容器:

docker ps –a

其他各种docker命令我就不在这里累述了。

Docker虚拟机文件地址修改
默认情况下,docker-machine创建的虚拟机文件,是保存在C盘的C:\Users\用户名.docker\machine\machines\default 目录下的,如果下载和使用的镜像过多,那么必然导致该文件夹膨胀过大,如果C盘比较吃紧,那么我们就得考虑把该虚拟机移到另一个盘上。具体操作如下:

1.使用docker-machine stop default停掉Docker的虚拟机。

2.打开VirtualBox,选择“管理”菜单下的“虚拟介质管理”,我们可以看到Docker虚拟机用的虚拟硬盘的文件disk。

3.选中“disk”,然后点击菜单中的“复制”命令,根据向导,把当前的disk复制到另一个盘上面去。

4.回到VirtualBox主界面,右键“default”这个虚拟机,选择“设置”命令,在弹出的窗口中选择“存储”选项。

5.把disk从“控制器SATA”中删除,然后重新添加我们刚才复制到另外一个磁盘上的那个文件。

这是我设置好后的界面,可以看到我在步骤3复制的时候,复制到E:\VirtualBox\default\dockerdisk.vdi文件去了。
测试图
6.确定,回到PowerShell,我们使用docker-machine start default就可以启动新地址的Docker虚拟机了。确保新磁盘的虚拟机没有问题。就可以把C盘那个disk文件删除了。

【注意:不要在Window中直接去复制粘贴disk文件,这样会在步骤5的时候报错的,报错的内容如下,所以一定要在VirtualBox中去复制!】

Failed to open the hard disk file D:\Docker\boot2docker-vm\boot2docker-vm.vmdk. Cannot register the hard disk ‘D:\Docker\boot2docker-vm\boot2docker-vm.vmdk’ {9a4ed2ae-40f7-4445-8615-a59dccb2905c} because a hard disk C:\Users\用户名.docker\machine\machines\default\disk.vmdk’ with UUID {9a4ed2ae-40f7-4445-8615-a59dccb2905c} already exists. Result Code: E_INVALIDARG (0x80070057) Component: VirtualBox Interface: IVirtualBox {fafa4e17-1ee2-4905-a10e-fe7c18bf5554} Callee RC: VBOX_E_OBJECT_NOT_FOUND (0x80BB0001)

镜像加速

在国内使用Docker Hub的话就特别慢,为此,我们可以给Docker配置国内的加速地址。我看了一下,DaoCloud和阿里云的镜像加速还不错,另外还有网易的蜂巢。选一个就行了。以DaoClound为例,注册账号,然后在https://www.daocloud.io/mirror 就可以看到DaoClound提供给您的镜像加速的URL。然后到PowerShell中去依次执行:

docker-machine ssh default
sudo sed -i “s|EXTRA_ARGS=’|EXTRA_ARGS=’–registry-mirror=加速地址 |g” /var/lib/boot2docker/profile
exit
docker-machine restart default
这样重启Docker后就可以用国内的镜像来加速下载了。

试一下下载一个mysql看看快不快:

docker pull mysql

下载完镜像,我们运行一个容器:

docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123 mysql:latest

接下来我们打开windows下的mysql客户端,服务器地址填docker虚拟机的IP地址,通过docker-machine env可以看到,我这里是192.168.99.100,然后用户名root,密码123,这样我们就可以连接到docker容器里面的mysql了。

【注意,Docker容器是在VirtualBox的虚拟机里面,不是在Windows里面,所以不能用127.0.0.1访问】

 

下面是作者的对软件安装极为简单的过程描述

1.Clone the repository withthiscommand:git clonehttps://github.com/ricklamers/gridstudio

2.Run the bash script (on Windows use e.g. Git Bash) withthiscommand:cd gridstudio && ./run.sh

3.Go to http://127.0.0.1:8080 in your browser. Note! Username: admin password: admin

结果这3个步骤都是有坑.

坑1:git &git bash,git工具集,docker自带,在这里如果你没有调整git工具完整保留unix的路径方式的话,不建议单独安装

坑2:docker网站打不开,只能找镜像这个是镜像的下载地址  ,记好这个版本,我不确定使用其他版本可不可以成功安装docker,因为我系统新装的,没有git没有virtual box,中间装过最新版本的,但是建议全部卸载,你所有需要的东西全部从这个文件中得到.

坑3:Docker Quickstart Terminal启动时需要amd和intel的cpu虚拟化技术支持,这个需要从bios中设置,而且只要你的主板不同,bios的设置选项的位置可能也不同,解决了这个问题,你以为就可以放轻松了?太天真了

坑4:Docker Quickstart Terminal启动时卡在下载boot2docker.iso上,仔细观察提示提示信息,我们发现一个文件链接https://github.com/boot2docker/boot2docker/releases/download/v19.03.5/boot2docker.iso,直接扔到迅雷里面去下载.万幸只是速度慢,而不是没有速度,长时间的等待也许可以,但是我等不及了,直接上迅雷.下载的文件需要放置在缓存文件夹中和程序安装文件家中,而且你需要清空C:\Users\blueblood\.docker\machine\cache下所有文件,并把下载好的boot2docker.iso分别放在C:\Users\blueblood\.docker\machine\cache和C:\Program Files\Docker Toolbox这两个文件夹下面

坑5:还是启动时(default) Waiting for an IP...长达1分钟以上的面无表情会让你怀疑这个程序假死了,其实没有,因为假死是后来virtual box pull 的时候,因为(default) Waiting for an IP...这个假把式让我大意了,接下来virtual box配置Linux的时候可能是真的死机了,因为过去了5分钟都没动静,二话不说,关docker拔电源老子不安了...

上面当然是气话,重复启动Docker Quickstart Terminal知道这个进度条过了而且中间没有超过5分钟的死机就可以了.看看这么狗血的过程,这个程序的名字是不是很有讽刺意义?

坑6:cd gridstudio && ./run.sh,这个就是git bash的意义所在,也是最大的一个坑,Linux和Windows的路径通配符根本不兼容,必须经./run.sh替换成docker run --name=gridstudio --rm=false -p 8080:8080 -p 4430:4430 ricklamers/gridstudio:release(docker run --name=gridstudio --rm=false -p 8080:8080 -p 4430:4430 ricklamers/gridstudio:release

 

posted @ 2020-02-01 11:23  码迷-wjz  阅读(402)  评论(0)    收藏  举报