最近公司涉及到对docker容器引擎的使用,所以就在网上各种搜索,由于是win7系统,所以在使用上更是麻烦,遇到各种错误就是无法成功启动docker,经过两天的各种尝试下,终于安装成功,在此记录一下使用过程和遇到的问题。

一 、下载Docker安装包  

  1.系统为win10,max  :https://www.docker.com/get-started

  2.系统为其他就版本如win7,win8等就需要下载Docker Toolbox:https://github.com/docker/toolbox/releases

    本人使用的Docker Toolbox是DockerToolbox-18.09.3这个版本:

    链接:https://pan.baidu.com/s/1gVLNhlQ5QGKP-vZ-6ER0WQ
    提取码:dkud

  下载时需要勾选电脑中未安装的环境,如git,特别是oracle VM VirtualBox(创建虚拟机的必要条件,在win10下则使用系统自带的hyper-v)等

  

  

安装完成后有一个 Docker Quickstart Terminal 程序,如果一切就绪直接启动就可以用了。

二 、docker的使用指南  

  参考官网:https://docs.docker.com/get-started/

  下面是对docker run hello-world执行成功的情况。

Docker Quickstart Terminal工具启动成功

cmd中启动也成功了

oracle VM VirtualBox启动成功

三 、我使用中遇到的问题  

1.未能找到路径文件问题

无法找到C:\Users\Administrator\.docker\machine\machines\default\config.json配置文件

无法找到C:\Users\Administrator\.docker\machine\machines\default\ca.pem证书等

本来是打算在网上搜一个配置文件放进去,可是半天也没有相关的问题,最后发现配置全都在路径C:\Users\Administrator\.docker\machine\machines\mh-keystore下面,果断将所有配置全部Copy到default中

附上docker 的config.json配置文件和ca.pem证书文件

链接:https://pan.baidu.com/s/1s6iH66WG5YH78Sp9hyyBOA
提取码:2h9g

2.由于网络配置问题oracle VM VirtualBox无法正常启动

在设置中找一个可用的网络

3.报错docker daemon is not running. --未开启守护进程

尝试无果:docker-machine env default

在下载DockerToolbox-18.09.3.exe版本重新安装并解决文件路径问题后搞定,之前的版本是在官网https://docs.docker.com/toolbox/overview/下载的,并且有max工具

4.Error checking TLS connection: ssh command error: --未找到SSH证书
$ docker-machine env default
Error checking TLS connection: ssh command error:
command : ip addr show
err : exit status 255
output :

尝试无果:docker-machine regenerate-certs default

在下载DockerToolbox-18.09.3.exe版本重新安装并解决文件路径问题后搞定,之前的版本是在官网https://docs.docker.com/toolbox/overview/下载的,并且有max工具

5.关于工具的介绍可以参考官网

https://docs.docker.com/toolbox/toolbox_install_windows/

6.error during connect: Get https://192.168.99.100:2376/v1.37/images/json?all=1: d

ial tcp 192.168.99.100:2376: connectex: A connection attempt failed because the
connected party did not properly respond after a period of time, or established
connection failed because connected host has failed to respond.

是由于虚拟机未开启,可以直接在Oracle VM VirtualBox开机(前提你要知道那个是默认的虚拟机)、或者直接使用命令  docker-machine.exe restart default  运行默认虚拟机

7.其它错误

示例错误

尝试连接到计算机(例如docker-machine env default)或从Docker Hub(如同docker run hello-world)中提取图像时,可能会出错。

您获得的错误可能特定于证书,如下所示:

  Error checking TLS connection: Error checking and/or regenerating the certs: There was an error validating certificates for host "192.168.99.100:2376": dial tcp 192.168.99.100:2376: i/o timeout

其他人明确建议重新生成证书:

  Error checking TLS connection: Error checking and/or regenerating the certs: There was an error validating certificates for host "192.168.99.100:2376": x509: certificate is valid for 192.168.99.101, not 192.168.99.100
You can attempt to regenerate them using 'docker-machine regenerate-certs [name]'.
Be advised that this will trigger a Docker daemon restart which will stop running containers.

或者,指示网络超时,如下所示:

  bash-3.2$ docker run hello-world
Unable to find image 'hello-world:latest' locally
Pulling repository docker.io/library/hello-world
Network timed out while trying to connect to https://index.docker.io/v1/repositories/library/hello-world/images. You may want to check your internet connection or if you are behind a proxy.
bash-3.2$

解决方案

以下是一些快速解决方案,可帮助我们重回正轨。这些示例假设Docker主机是一台名为的机器default

重新生成证书

某些错误明确告诉您重新生成证书。您也可以尝试使用其他与证书和/或连接相关的错误。

  $ docker-machine regenerate-certs default
Regenerate TLS machine certs? Warning: this is irreversible. (y/n): y
Regenerating TLS certificates

重新启动DOCKER主机

$ docker-machine restart default

机器启动后,为命令窗口设置环境变量。

$ eval $(docker-machine env default)

运行docker-machine ls以验证计算机是否正在运行,并且此命令窗口已配置为与其通信,如活动计算机的星号(*)所示。

$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default * virtualbox Running tcp://192.168.99.101:2376 v1.10.1

停止机器,将其移除,然后创建一个新机器。

$ docker-machine stop default
Stopping "default"...
Machine "default" was stopped. $ docker-machine rm default
About to remove default
Are you sure? (y/n): y
Successfully removed default

您可以将该docker-machine create命令与virtualbox驱动程序一起使用来创建一个名为default(或任何您想要的机器名称)的新机器。

$ docker-machine create --driver virtualbox default
Running pre-create checks...
(default) Default Boot2Docker ISO is out-of-date, downloading the latest release...
(default) Latest release for github.com/boot2docker/boot2docker is v1.10.1
(default) Downloading
...
Docker is up and running!
To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env default

设置命令窗口的环境变量。

$ eval $(docker-machine env default)

运行docker-machine ls以验证新计算机是否正在运行,并且此命令窗口已配置为与其通信,如活动计算机的星号(*)所示。

HTTP代理和连接错误

HTTP代理可能导致特殊品牌的连接错误。如果在使用使用HTTP代理(例如公司网络)的虚拟专用网络(VPN)的系统上安装Docker Toolbox,则在客户端尝试连接到服务器时可能会遇到错误。

以下是此类错误的示例:

  $ docker run hello-world
An error occurred trying to connect: Post https://192.168.99.100:2376/v1.20/containers/create: Forbidden $ docker run ubuntu echo "hi"
An error occurred trying to connect: Post https://192.168.99.100:2376/v1.20/containers/create: Forbidden

在Docker计算机上配置HTTP代理设置

当工具箱创建虚拟机(VM)运行start.sh,这样会很值HTTP_PROXYHTTPS_PROXYNO_PROXY,并将它们作为create选项来创建的default machine

您可以在已创建的Docker计算机(例如计算机)上为专用网络重新配置HTTP代理设置default,然后在不同网络上使用同一系统时更改配置。

或者,您可以通过/var/lib/boot2docker/profileVM内部的配置文件手动修改计算机上的代理设置,或将代理设置配置为docker-machine create命令的一部分。

两种解决方案如下所述。

在DOCKER机器上更新/ VAR / LIB / BOOT2DOCKER / PROFILE

解决此问题的一种方法是更新/var/lib/boot2docker/profile现有计算机上的文件以指定所需的代理设置。

此文件存在于VM本身,因此您需要ssh进入计算机,然后在那里编辑并保存文件。

您可以将计算机地址添加为NO_PROXY设置的值,还可以指定您想要使用的代理服务器。通常设置Docker机器URL以NO_PROXY解决此类连接问题,因此此处显示了示例。

  1. 使用ssh登录到虚拟机。此示例登录到 default计算机。

     $ docker-machine ssh default
    docker@default:~$ sudo vi /var/lib/boot2docker/profile
  2. NO_PROXY设置添加到文件末尾,类似于以下示例。
     # replace with your office's proxy environment
    export "HTTP_PROXY=http://PROXY:PORT"
    export "HTTPS_PROXY=http://PROXY:PORT"
    # you can add more no_proxy with your environment.
    export "NO_PROXY=192.168.99.*,*.local,169.254/16,*.example.com,192.168.59.*"
  3. 重启Docker。修改profileVM后,重新启动Docker并注销计算机。
     docker@default:~$ sudo /etc/init.d/docker restart
    docker@default:~$ exit

重试Docker命令。Docker和Kitematic现在都应该正常运行。

当您移动到其他网络(例如,离开办公室的公司网络并返回主页)时,删除或注释掉这些代理设置/var/lib/boot2docker/profile并重新启动Docker。

使用--ENGINE ENV手动创建计算机以指定代理设置

您可以default使用该docker-machine create命令手动删除它们并使用该命令手动创建计算机,而不是重新配置自动创建的计算机,而是使用该--engine env标志指定所需的代理设置。

以下是创建default代理设置为http://example.com:8080和的机器的示例https://example.com:8080,以及N0_PROXY服务器的设置example2.com

docker-machine create -d virtualbox \
--engine-env HTTP_PROXY=http://example.com:8080 \
--engine-env HTTPS_PROXY=https://example.com:8080 \
--engine-env NO_PROXY=example2.com \
default 其它错误出自官网:https://docs.docker.com/toolbox/faqs/troubleshoot/
本来都打算放弃了,环境配置每次都让人头疼,再坚持一下,总会有办法的,哈哈。

win7下docker环境安装的更多相关文章

  1. win7下docker环境搭建nginx+php-fpm+easyswoole+lavarel+mysql开发环境

    win7环境基础在上一篇win7下docker环境搭建nginx+php-fpm+easyswoole开发环境中已经详细叙述搭建完成 本篇文章将叙述如何在上述基础上搭建laravel开发环境,这个其实 ...

  2. win7下docker环境centos容器中安装mysql5.7

    docker环境基于镜像skiychan/nginx-php7,进行安装 ps:skiychan/nginx-php7此镜像已封装nginx1.15.3+php7.2.9 1.环境配置 配置共享文件夹 ...

  3. win7下docker环境搭建nginx+php-fpm+easyswoole开发环境

    基础的环境已在文章nginx.php-fpm.swoole HTTP/TCP压测对比中搭建了,现在是在这个基础上在搭建easyswoole开发环境 主要要修改的地方是dnmp包里面的docker-co ...

  4. WIN7 下 Qt Creator 安装 QWT

    WIN7 下 Qt Creator 安装 QWT 环境:WIN7 +QT Creator2.6.2 1.下载QWT源代码 qwt-6.1-rc3.zip 2 编译QWT  open projects- ...

  5. centos7系统下 docker 环境搭建

    运行环境: VMware Workstation Pro 在虚拟机中安装centos7系统, 选择最小安装, 网络连接方式选择的桥接(与宿主机在同一IP段)centos7一定要安装64位, docke ...

  6. Win7下MongoDB的安装和使用

    Win7下MongoDB的安装和使用 1.下载: http://www.mongodb.org/downloads 2.安装: 安装目录为 D:\mongodb\MongoDB 2.6 Standar ...

  7. CentOS6下docker的安装和使用

    CentOS6下docker的安装和使用 Docker是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.利用Linux的LXC.AUFS.Go语言.cgroup ...

  8. CentOS6.5下docker的安装及遇到的问题和简单使用(已实践)

    转载自 CentOS6下docker的安装和使用 Docker是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.利用Linux的LXC.AUFS. Go语言.c ...

  9. Windows和Centos下Docker的安装配置

    Windows和Centos下Docker的安装配置 windows环境下的安装(win10) 在Windows系统上需要利用toolbox来安装Docker,现在 Docker 有专门的 Win10 ...

随机推荐

  1. The World's Only Advanced Operating System

    The World's Only Advanced Operating System

  2. flex柱状图

    柱状图的展现是通过flex自带的控件实现 控件解析:<mx:ColumnChart id = "columns" dataProvider = "{dataSour ...

  3. [win]系统优化工具dism++

    系统优化工具, 确实能将c盘扩大个2-3g. 主要是删除日志 优化系统等功能. https://www.chuyu.me/

  4. jquery扩展

    jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级 ...

  5. Hibernate(一)之Hibernate入门

    一.Hibernate入门 ssh框架体系结构 1.1.ORM框架 Hibernate是一个数据持久化层的ORM框架. Object:对象,java对象,此处特指JavaBean Relational ...

  6. 【Uva623】500!(高精)

    Description 求N! \(N \leq 1000\) Sample Input 10 30 50 100 Sample Output 10! 3628800 30! 265252859812 ...

  7. 【Learning】 动态树分治

    简介 动态树分治整体上由点分治发展而来. 点分治是统计树上路径,而动态树分治用来统计与点有关的树上路径,比如多次询问某一些点到询问点的距离和. 前置知识就是点分治. 做法 众所周知,点分树(点分治中重 ...

  8. linux下批量kill进程的方法

    --kill某个用户下的所有进程(用户为test)--pkill  # pkill -u test--killall  # killall -u test--ps  # ps -ef | grep t ...

  9. Material Design(原质化设计)视觉设计语言规范 踏得网镜像

    Android 5.0 Lollipop(棒棒糖,也就是之前的代称Android L)全面实践了谷歌最新研发的 Material Design 设计语言规范,只是该设计规范并不是仅针对移动平台. 我们 ...

  10. youtube相关

    Ubuntu环境巧妙下载YouTube视频 http://www.linuxidc.com/Linux/2008-07/14555.htm 今天,我就为大家介绍在Ubuntu环境总一个专门从 YouT ...