1下载和安装Docker Toolbox

  从Docker官网可以下到Docker Toolbox:

https://mirrors.aliyun.com/docker-toolbox/

选择windows版本下载。

image

  双击下载好的程序:

注意:安装路径千万不要有中文!!!!



请注意下面一点,对最后一项打上钩:


然后,点击Install!

2Docker配置

安装完成后,在桌面上会出现两个图标:一个是命令行形式Docker终端,一个是图形界面的Docker操作工具。

image

其安装路径下文件如下:


你可通过CMD查看docker是否安装成功,输入docker-machine,出现版本等信息,安装能够运行,还会给出一些选项,包括machine安装路劲等: -s, --storage-path "C:\Users\wcc335836929\.docker\machine"    Configures storage path [$MACHINE_STORAGE_PATH]



在使用Docker前,要先创建docker machine,它其实是台虚拟机,不过在使用它的时候,你可能根本察觉不出来它是虚拟的。默认情况下,docker machine的所有文件都会保存在用户的根目录下,一般是在C盘,如果就用默认的位置,C盘的空间会越来越小,所以最好还是换个地方。 点击Git Bash,在起开所有docker应用之前需要先使用这个才能更改成功,修改默认的default machine的路径,不然,默认安装在C盘,会使C盘空间越来越小。



然后,输入 notepad .bash_profile 创建和打开.bash_profile 配置文件


然后,在空白处输入(因为我想将以后的镜像都安装到H盘,此处可以修改你喜欢的盘符):

export MACHINE_STORAGE_PATH='H:\docker'


然后,关闭后,在H盘创建名为docker的文件夹,在其下创建名为cache的文件夹,将安装文件下的boot2docker.iso拷贝到该文件夹:


image

在Git Bash中输入更改路径命令,此处使用阿里云的加速器,因为在使用docker的时候,会需要从docker的网站下载镜像文件,下载速度可能会很慢。获得阿里云加速,需要登录阿里云开发者平台,然后点击右侧的管理中心(当然你得要有一个账户):

阿里云容器镜像库:

https://www.aliyun.com/product/acr?spm=5176.10695662.1996646101.searchclickresult.18c1190cZAQF3v

然后点击加速,Windows


复制红色方框中的代码,然后修改为如下(根据自己盘符修改):

docker-machine -s "H:\docker" create --engine-registry-mirror=https://vf29u5xi.mirror.aliyuncs.com -d virtualbox default

现在就可以在Git Bash中运行了:



虚拟机中出现如下界面:

 

此时可以点击Docker Quickstart Terminal:

image

同时,Docker Quickstart Terminal也已经登录进去:


也可以在Git Bash中运行:

docker-machine ls 

image

这里面就是一个linux风格的Docker环境,提示的IP:192.168.99.100就是Docker虚拟机的IP了。

这台docker machine创建后就启动了,如果下次我们再打开电脑,想要启动docker machine,可以打开Docker Quickstart Terminal或者Git Bash,然后执行下面的命令:

docker-machine start

来启动docker machine。

3利用ssh软件登录

SSH登录虚拟机(此处使用的XShell软件,自行百度下载,当然还有其他的ssh软件):


docker machine的IP是192.168.99.100,用SSH工具登录它,用户名是docker,密码是tcuser


Docker-Toolbox常见问题解决方案

错误1

  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

错误2

  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.

错误3

 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.

这些错误可能是由一些常用指令导致,像获取default主机的环境变量docker-machine env default连接主机获取环境变量,
或者拉取镜像运行容器的指令docker run hello-world

问题出现突然,而且不稳定。以下介绍几种通用的解决方案。(以下以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

将Docker Client连接的默认主机default

 # 设置环境变量: 将default主机作为docker deamon(服务端)
 eval $(docker-machine env default)
 # 查看主机列表:default主机Active状态为'*'
 docker-machine ls

关闭、移除、新建主机

 # 关闭default主机
 docker-machine stop default
 # 移除default主机
 docker-machine rm default
 # 新建主机
 docker-machine create --driver virtualbox default

使用HTTP代理出现的连接错误

通常在VPN网络环境中使用HTTP proxy时,用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

在虚拟主机中配置代理设置

进入主机

 # 进入default主机
 docker-machine ssh default

编辑配置文件

 # 编辑配置文件:/var/lib/boot2docker/profile
 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@default:~$ sudo /etc/init.d/docker restart
docker@default:~$ exit

创建虚拟机时直接指定配置

可删除虚拟机重建

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 \
  defaul

docker-machine ssh任然能连接,连接到2376端口似乎不行 ——解决

$ sudo ifconfig vboxnet0 down && sudo ifconfig vboxnet0 up
解决。
需要证书时添加:
docker-machine regenerate-certs [name]
即可
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐