win7下docker环境安装
最近公司涉及到对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_PROXY
,HTTPS_PROXY
和NO_PROXY
,并将它们作为create
选项来创建的default machine
。
您可以在已创建的Docker计算机(例如计算机)上为专用网络重新配置HTTP代理设置default
,然后在不同网络上使用同一系统时更改配置。
或者,您可以通过/var/lib/boot2docker/profile
VM内部的配置文件手动修改计算机上的代理设置,或将代理设置配置为docker-machine create
命令的一部分。
两种解决方案如下所述。
在DOCKER机器上更新/ VAR / LIB / BOOT2DOCKER / PROFILE
解决此问题的一种方法是更新/var/lib/boot2docker/profile
现有计算机上的文件以指定所需的代理设置。
此文件存在于VM本身,因此您需要ssh
进入计算机,然后在那里编辑并保存文件。
您可以将计算机地址添加为NO_PROXY
设置的值,还可以指定您想要使用的代理服务器。通常设置Docker机器URL以NO_PROXY
解决此类连接问题,因此此处显示了示例。
- 使用
ssh
登录到虚拟机。此示例登录到default
计算机。$ docker-machine ssh default
docker@default:~$ sudo vi /var/lib/boot2docker/profile
- 将
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.*"
- 重启Docker。修改
profile
VM后,重新启动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环境安装的更多相关文章
- win7下docker环境搭建nginx+php-fpm+easyswoole+lavarel+mysql开发环境
win7环境基础在上一篇win7下docker环境搭建nginx+php-fpm+easyswoole开发环境中已经详细叙述搭建完成 本篇文章将叙述如何在上述基础上搭建laravel开发环境,这个其实 ...
- win7下docker环境centos容器中安装mysql5.7
docker环境基于镜像skiychan/nginx-php7,进行安装 ps:skiychan/nginx-php7此镜像已封装nginx1.15.3+php7.2.9 1.环境配置 配置共享文件夹 ...
- win7下docker环境搭建nginx+php-fpm+easyswoole开发环境
基础的环境已在文章nginx.php-fpm.swoole HTTP/TCP压测对比中搭建了,现在是在这个基础上在搭建easyswoole开发环境 主要要修改的地方是dnmp包里面的docker-co ...
- WIN7 下 Qt Creator 安装 QWT
WIN7 下 Qt Creator 安装 QWT 环境:WIN7 +QT Creator2.6.2 1.下载QWT源代码 qwt-6.1-rc3.zip 2 编译QWT open projects- ...
- centos7系统下 docker 环境搭建
运行环境: VMware Workstation Pro 在虚拟机中安装centos7系统, 选择最小安装, 网络连接方式选择的桥接(与宿主机在同一IP段)centos7一定要安装64位, docke ...
- Win7下MongoDB的安装和使用
Win7下MongoDB的安装和使用 1.下载: http://www.mongodb.org/downloads 2.安装: 安装目录为 D:\mongodb\MongoDB 2.6 Standar ...
- CentOS6下docker的安装和使用
CentOS6下docker的安装和使用 Docker是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.利用Linux的LXC.AUFS.Go语言.cgroup ...
- CentOS6.5下docker的安装及遇到的问题和简单使用(已实践)
转载自 CentOS6下docker的安装和使用 Docker是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.利用Linux的LXC.AUFS. Go语言.c ...
- Windows和Centos下Docker的安装配置
Windows和Centos下Docker的安装配置 windows环境下的安装(win10) 在Windows系统上需要利用toolbox来安装Docker,现在 Docker 有专门的 Win10 ...
随机推荐
- PL/SQL 使用控制流程
一.条件分支语句 1.if判断 IF <布尔表达式> THEN PL/SQL 和 SQL语句 END IF; 2.if else判断 IF <布尔表达式> THEN PL/SQ ...
- python----PySnooper获取打印日志
官网链接:https://pypi.org/project/PySnooper/ 安装:pip install PySnooper 使用方式,直接 导入import pysnooper,添加装饰器 ...
- &和&&,|和||的用法区别
&和&&的区别是,&会执行两边,不管第一个是否成立&&只会执行一边,如果第一个条件为假,则不会走第二个条件举例public class Test2{ p ...
- 一些VMware vCenter Appliance的默认用户名和密码
一些VMware vCenter Appliance的默认用户名和密码 2014-03-30 17:30:03 flowershade_21 阅读数 13367更多 分类专栏: vmware VM ...
- Druid连接池 报错:abandon connection原因分析
问题现象:使用Druid的数据库连接池,在进行一个查询SQL的时候,抛出了异常: [2017-10-20 01:40:59.269 ERROR com.alibaba.druid.pool.Druid ...
- LOJ P10117 简单题 题解
每日一题 day15 打卡 Analysis 树状数组 用树状数组来维护每个字符变化的次数,如果是偶数就是0,奇数就是1 #include<iostream> #include<cs ...
- Shared Nothing、Shared Everthting、Shared Disk
数据库构架设计中主要有Shared Everthting.Shared Nothing.和Shared Disk:1.Shared Everything:一般是针对单个主机,完全透明共享CPU/MEM ...
- 三十六.MHA集群概述 、 部署MHA集群 测试配置
1.准备MHA集群环境 准备6台虚拟机,并按照本节规划配置好IP参数 在这些虚拟机之间实现SSH免密登录 在相应节点上安装好MHA相关的软件包 使用6台RHEL 7虚拟机,如图-1所示.准备集群环 ...
- Wireshark抓取本地回环接口数据包 RawCap.exe
Wireshark提供了winpcap可以抓取远程网卡数据包...但我尝试了不成功.后来发现RawCap.exe不仅可以抓取回环接口数据包,远程跑了拿到pcap文件再打开用起来比winpcap更方便最 ...
- Oracle语句中IN和=的区别有哪些?
Oracle语句中IN和=的区别有: 1.首先应用范围不一样:in 可以理解为是范围内的选择:= 只有一个.例如: select sno, sname from t1 where sno in ('s ...