Wiindows安装docker 在转换成linux模式的时候不能使用,只能退而求其次安装Docker ToolBox在windows10中使用docker。

一、前言

由于本机使用的是win10家庭版操作系统,无法直接Docker for Windows安装,因此只好使用Docker Toolbox。在安装过程中遇到了不少问题,花费了不少时间,才把docker启动起来。在此记录一下过程,以供参考。

二、准备工作

2.1 操作系统

要安装docker,首先要确保操作系统是64位且win7以上的版本。如果操作系统是win10 pro,可以直接使用Docker for Windows安装。本文是基于win10 家庭版安装。

2.2 开启虚拟化

开机进入BIOS,找到“Intel Virtual Technology”类似的选项,设置为Enabled。

注:
如果安装有360安全卫士,最好先关闭它的核晶保护引擎。步骤:打开360安全卫士的主面板,点击左下角的防护中心,在弹出的页面中,点击右上角一个像勋章的图标,关闭核晶保护引擎。

 
核晶保护引擎.png

2.3 关闭Hyper-V

打开控制面板,依次点击程序 -> 程序和功能 -> 启用或关闭Windows功能,找到Hyper-V,不要勾选,点击确定。如果没找到Hyper-V,就不用管了。

2.4 安装PowerShell

此步骤可以先不用做,如果后面用到了,再来安装不迟。
安装方法:https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell?view=powershell-6

三、下载并安装Docker Toolbox

3.1 下载Docker Toolbox

下载地址:https://docs.docker.com/toolbox/toolbox_install_windows/

这个页面除了可以下载Docker Toolbox外,还有Docker Toolbox的安装教程。可以先自行按上面的步骤进行安装,若在之后启动docker时遇到了问题,再回来看剩下的部分也不迟。

3.2 安装Docker Toolbox

双击Docker Toolbox.exe, 一路点击NEXT, 安装路径我设置的是E:\DockerToolbox

 
setup-docker-toolbox-1.png
 
setup-docker-toolbox-2.png
 
setup-docker-toolbox-3.png
 
setup-docker-toolbox-4.png
 
setup-docker-toolbox-5.png

安装完成后,会出现如下几个图标:

 
setup-docker-toolbox-6.png

双击Docker Quickstart Terminal, 如果出现如下页面,说明Docker已启动成功,后面的内容就不需要再看了。

 
docker-start.png

四、启动Docker

4.1 创建docker machine

打开power shell(如果还未安装,参考2.4),进入Docker Toolbox的安装目录,可以看到这个下面有docker-machine.exeboot2docker.isostart.sh几个文件。

在power shell中执行如下命令:

$ docker-machine.exe create --driver virtualbox --virtualbox-boot2docker-url=boot2docker.iso default

输出如下:

 
docker-create-default.png

注:docker-machine.exe虽然是个可执行文件,直接双击却没什么用,需要指定参数来配合。

4.2 启动docker machine

在power shell中执行start.sh,会新弹出一个bash窗口,输出如下信息:

$ ./start.sh
 
docker-start.png

注:start.sh里面涉及到一些文件路径,这些文件路径是windows的。使用bash来执行可能会出现找不到文件的问题。
比如E:\DockerToolbox\docker-machine.exe需改成/mnt/e/DockerToolbox/docker-machine.exe才能被bash正确的找到。

之所以说是可能会出现,是因为我在使用power shell创建default docker machine后,直接在bash中执行start.sh,结果也能正常运行了。。。

所以,在安装过程中,为保险起见,还是使用power shell吧。

4.3 使用docker

docker machine启动之后,就可以在bash里面正常使用docker的相关命令了。

 
docker.png

4.4 关闭docker machine

执行如下命令:

$ docker-machine.exe stop default

注:也可以使用Oracle VM VirtualBox来关闭。Oracle VM VirtualBox是用来管理docker machine的图形界面工具,在步骤3.2中可以看到。

4.5 删除docker machine

执行如下命令:

$ docker-machine.exe rm default

也可以使用Oracle VM VirtualBox来删除。

五、镜像加速

可以通过修改镜像仓库地址,加速docker 镜像的拉取。

执行docker-machine ssh default

$ docker-machine ssh default
( '>')
/) TC (\ Core is distributed with ABSOLUTELY NO WARRANTY.
(/-_--_-\) www.tinycorelinux.net

设置镜像地址

接下来执行sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=https://registry.docker-cn.com |g"
此处镜像地址使用的是https://registry.docker-cn.com,可自行更换。

执行完毕后,执行exit退出。

docker@default:~$ cat /var/lib/boot2docker/profile

EXTRA_ARGS='
--label provider=virtualbox '
CACERT=/var/lib/boot2docker/ca.pem
DOCKER_HOST='-H tcp://0.0.0.0:2376'
DOCKER_STORAGE=aufs
DOCKER_TLS=auto
SERVERKEY=/var/lib/boot2docker/server-key.pem
SERVERCERT=/var/lib/boot2docker/server.pem docker@default:~$
docker@default:~$ sudo sed -i "s|EXTRA_ARGS='|EXTRA_ARGS='--registry-mirror=https://registry.docker-cn.com |g" /var/lib/boot2docker/profile
docker@default:~$ cat /var/lib/boot2docker/profile EXTRA_ARGS='--registry-mirror=https://registry.docker-cn.com
--label provider=virtualbox '
CACERT=/var/lib/boot2docker/ca.pem
DOCKER_HOST='-H tcp://0.0.0.0:2376'
DOCKER_STORAGE=aufs
DOCKER_TLS=auto
SERVERKEY=/var/lib/boot2docker/server-key.pem
SERVERCERT=/var/lib/boot2docker/server.pem docker@default:~$ exit

重启docker-machine

$ docker-machine restart default
Restarting "default"...
(default) Check network to re-create if needed...
(default) Windows might ask for the permission to configure a dhcp server. Sometimes, such confirmation window is minimized in the taskbar.
(default) Waiting for an IP...
Waiting for SSH to be available...
Detecting the provisioner...
Restarted machines may have new IP addresses. You may need to re-run the `docker-machine env` command.

六、安装问题一览

问题1

双击Docker Quickstart Terminal,提示windows 正在查找bash.exe。如果想亲自查找文件,请点击“浏览”。

问题原因

一般出现这个问题,是因为之前已经安装过了git,且bash.exe的路径与Docker Toolbox中不一致导致的。

解决办法

右击Docker Quickstart Terminal的图标,修改前一段bash的路径。

 
quick-start.png

问题2

双击Docker Quickstart Terminal,bash窗口一闪而过。

问题原因

窗口一闪而过,一般是程序运行出错了,需要找到错误信息。通过问题1知道这个快捷方式是使用bash执行start.sh,所以考虑直接在bash中执行start.sh。打开bash.exe,执行start.sh,发现输出如下一段文字:

Docker Machine is not installed. Please re-run the Toolbox Installer and try again.

使用编辑器打开start.sh,会发现如下两端代码:

export PATH="$(win_to_unix_path "${DOCKER_TOOLBOX_INSTALL_PATH}"):$PATH"
VM=${DOCKER_MACHINE_NAME-default}
DOCKER_MACHINE="${DOCKER_TOOLBOX_INSTALL_PATH}\docker-machine.exe" // ... 省略 if [ ! -f "${DOCKER_MACHINE}" ]; then
echo "Docker Machine is not installed. Please re-run the Toolbox Installer and try again."
exit 1
fi

发现是因为找不到docker-machine.exe报的错。docker-machine.exe的路径跟DOCKER_TOOLBOX_INSTALL_PATH这个变量有关。查看环境变量,发现确实没有DOCKER_TOOLBOX_INSTALL_PATH。

解决办法

第一个办法是直接在start.sh里面修改DOCKER_MACHINE的地址,但这种方式治标不治本。
第二个办法是手动创建系统变量DOCKER_TOOLBOX_INSTALL_PATH,也是治标不治本
第三个办法是使用docker-machine.exe创建一个docker machine(参考4.1),docker machine创建完成之后,环境变量里就会有DOCKER_TOOLBOX_INSTALL_PATH。

问题3

执行start.sh报与boot2docker.iso相关的错误:

Running pre-create checks...
(default) Unable to get the local Boot2Docker ISO version: Did not find prefix "-v" in version string
(default) Default Boot2Docker ISO is out-of-date, downloading the latest release...
(default) Latest release for github.com/boot2docker/boot2docker is v18.09.0
(default) Downloading C:\Users\zhangcm\.docker\machine\cache\boot2docker.iso from https://github.com/boot2docker/boot2docker/releases/download/v18.09.0/boot2docker.iso...
Error with pre-create check: "Get https://github-production-release-asset-2e65be.s3.amazonaws.com/14930729/6ae43280-e2b8-11e8-8e32-e857d71a28cd?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20190105%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190105T054430Z&X-Amz-Expires=300&X-Amz-Signature=c16df60be023a5e71aa4091d3be41418973da7b46029860b0c7817ef4c6aac22&X-Amz-SignedHeaders=host&actor_id=0&response-content-disposition=attachment%3B%20filename%3Dboot2docker.iso&response-content-type=application%2Foctet-stream: dial tcp 127.0.0.1:443: connectex: No connection could be made because the target machine actively refused it."
Looks like something went wrong in step ´Checking if machine default exists´... Press any key to continue...
解决方法

其实Docker Toolbox安装路径下已经有boot2docker.iso文件了。参考4.1,创建一个docker machine。然后再执行start.sh。

如果是提示boot2docker.iso的版本过旧,则需要下载一个新版本。
下载地址:https://github.com/boot2docker/boot2docker/releases
选择一个版本,点击boot2docker.iso文件下载。点击后会自动跳转到另一个域名(https://github-production-release-asset-2e65be.s3.amazonaws.com),需翻墙。

转自:https://www.jianshu.com/p/2aa5b05717c6

非常感谢!

DockerToolbox安装docker - Windows 10的更多相关文章

  1. DockerToolbox安装docker - Windows 10家庭版

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

  2. [原][工具][windows10安装][0x800F081F]windows 10 如何离线安装.net framework3.5 || 安装出现错误代码0x800F081F时如何解决

    参考解决方案:https://zhidao.baidu.com/question/1896669183365806820.html?fr=iks&word=win10%B0%B2%D7%B0+ ...

  3. [转]window7下利用DockerToolbox安装Docker

    本文转自:https://blog.csdn.net/qq2712193/article/details/54576313 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blo ...

  4. 用Visual Studio 2015 编译张帆的第一个WDM驱动,并且成功安装到Windows 10里面!!!

    开发工具:Visual Studio 2015 企业版 目 标 机:Windows 10 X86 前提:我们已经成功安装了Visual Studio 2015以及WDK,而且更重要一点是一定要SDK版 ...

  5. CentOS7 安装 Docker,10分钟入门!

    本次安装是在VM虚拟机的CentOS 7环境下,仅为了学习和测试的简单安装,如果在真实生产环境还需要考虑安全策略的其他问题. 1.Linux内核版本需要 3.10.0 以上并且是64位 [root@l ...

  6. 新安装的windows 10无法更新报0x80240fff错误的解决方案

    如果windows 10的安装文件比较老,可能会报0x80240fff错误导致无法更新. 网络上说的方法是选择推迟更新,因为这样貌似能让windows选择另外的更新服务器. 但实际上在我遇到的情况问题 ...

  7. python 安装 scapy windows 10 64bit

    简介: 前段时间装的pypcap做嗅探.打包受阻.因为我都是在windows做的.也要打包到exe给别人用. 所以尝试了一下scapy,也可以嗅探,貌似功能更强大.先用sniff吧. 这个也不是在ve ...

  8. centos7下安装docker(10容器底层--cgroup和namespace)

    cgroup和namespace是实现容器底层的重要技术 cgroup:实现资源限制 namespace:实现资源隔离 1.cgroup:control group Linux操作系统通过cgroup ...

  9. docker学习 (三) Windows 10 安装Docker

    Docker CE: 社区版,免费. Docker EE: 企业版,收费. 安装:             Windows 10 Pro 64, 必须开启Hyper-v 下载:Docker for W ...

随机推荐

  1. Qt Gui 第七章

    1.processEvents 该函数用来处理窗口的各种事件,重绘和event ; row < RowCount; ++row) { ; column < ColumnCount; ++c ...

  2. (CPSCA's)CPOJC+VIJOS

    Coding Plus System Core Association 建立的Coding Plus Online Judge China 在Vijos上初步落脚,让我们拭目以待,等待暑假期间ACM1 ...

  3. i春秋公益赛 ezpload

    题目思路:一看解出的人比较多,emmm,传个马,命令执行一下.最后读到flag文件. /readflag,可执行. 题对萌新比较友好...... 考点:Linux命令,文件上传,命令执行. http: ...

  4. (三)运用Python模块和包

    1 引言 为了能够在Python项目中高效地运用Python模块和包,我们需要进一步地来了解它们是如何在Python项目中进行定义.使用和工作的. 2 Python模块和包 Python模块和包的基本 ...

  5. sift代码实现详解

    1.创建高斯金字塔第-1组 1.1.将源图片转成灰度图 void ConvertToGray(const Mat& src, Mat& dst) { cv::Size size = s ...

  6. 【你不知道的javaScript 上卷 笔记1】 javaScript 是如何工作的?

    一.什么是作用域? 作用域是用来存储变量以及方便寻找变量的一套规则. 二.javaScript 编译过程(编译发生在代码执行前的几微妙) 分词/词法分析(Tokenizing/Lexing)-> ...

  7. HDFS写入数据

    HDFS副本摆放策略 不同的版本副本摆放策略可能并不一致,HDFS主要采用一种机架感知(rack-ware)的机制来实现摆放策略. 由于不同的机架上节点间通信要通过交换机(switches),同一机架 ...

  8. Yaf自定义autoload以实现Model文件和Controller文件命名区分

    先上图: 由于Yaf作者在设计Yaf框架目录时没有直接区分开models文件和controllers文件,所以在IDE看着会很难受,眼睛离开了编辑器就不大好区分这两个文件夹的文件.所以自己写了一个au ...

  9. AntDesign(React)学习-13 Warning XX should not be prefixed with namespace XXX

    有篇UMI入门简易教程可以看看:https://www.yuque.com/umijs/umi/hello 程序在点击操作时报了一个Warning: [sagaEffects.put] User/up ...

  10. Linux断网安装jdk1.8

    1.创建目录存放jdk包 mkdir /usr/java 2.上传jdk包 通过xftp或者其他远程工具 3.解压jdk tar zxvf jdk-8u221-linux-x64.tar.gz 4.打 ...