方枪枪的java世界

不要因为风雨飘落就停止了你的脚步,真正的得失就在你的心中。 做喜欢做的事,不轻言放弃!

Docker 在windows上安装运行

Windows用户使用Docker ToolBox来安装Docker软件。
Windows上运行Docker,必须是64位的win7或者更高的64位版本

Docker ToolBox安装
需要安装如下部分:
Docker Client for Windows
Docker Toolbox management tool and ISO
Oracle VM VirtualBox
Git MSYS-git UNIX tools

安装完成后会生成三个快捷方式,分别为:
(1) Docker Quickstart Terminal: 提供Docker的命令行操作
(2) Oracle VM VirtualBox: 打开可以看到有一个虚拟机,里面安装了Core Linux机器,名字为default。
(3) Kitematic (Alpha):图形化的docker工具

启动Terminal窗口工具之后,我运行hello world报错了
$ docker run hello-world
docker: An error occurred trying to connect: Post http://127.0.0.1:2375/v1.22/co
ntainers/create: dial tcp 127.0.0.1:2375: connectex: No connection could be made
because the target machine actively refused it..
See 'C:\Program Files\Docker Toolbox\docker.exe run --help'.
上面问题的解决办法:
经过多方查资料,可能的原因是本机安装的其他虚拟网络,如VMWare, VPN等可能造成网络冲突导致。
因此我打算重建自定义网络,在重建之前,我打开"Oracle VM VirtualBox",删除了默认的default虚拟机和两个Host-only网络。
本来打算执行一个命令来自定义创建的的,结果当我启动"Docker Quickstart Terminal"时,系统自动重建了虚拟机和网络,然后进入结果就OK了。
因此,解决办法就是删除默认的虚拟机和网络,让系统帮你重建一次。

default虚拟机
可以直接从"Oracle VM VirtualBox"界面进入default虚拟机,不需要输入密码即可进入root环境,输入ifconfig命令可以看到default有三个网段的IP地址,分别为:
docker0: 172.17.0.1,这个是docker的网桥。
eth0:10.0.2.15,这个网段在Ubuntu环境中是没有的,暂不知道为什么会多这一个。
eth1:192.168.99.100,这个数宿主机的IP地址。

windows环境部分docker命令
$ docker-machine env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="C:\Users\dhu\.docker\machine\machines\default"
export DOCKER_MACHINE_NAME="default"
$ docker info
Containers: 2
Running: 0
Paused: 0
Stopped: 2
Images: 1
Server Version: 1.10.3
Storage Driver: aufs
Root Dir: /mnt/sda1/var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 6
Dirperm1 Supported: true
Execution Driver: native-0.2
Logging Driver: json-file
Plugins:
Volume: local
Network: bridge null host
Kernel Version: 4.1.19-boot2docker
Operating System: Boot2Docker 1.10.3 (TCL 6.4.1); master : 625117e - Thu Mar 10
22:09:02 UTC 2016
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 996.1 MiB
Name: default
ID: PKEB:7MPC:BCKW:4RCR:JLMF:OMOO:ZY5T:O2W2:3LLX:OXDM:DD56:I4B7
Debug mode (server): true
File Descriptors: 10
Goroutines: 22
System Time: 2016-04-09T15:39:25.323452975Z
EventsListeners: 0
Init SHA1:
Init Path: /usr/local/bin/docker
Docker Root Dir: /mnt/sda1/var/lib/docker
Labels:
provider=virtualbox
docker-machine rm default 删除一个虚拟机

打开"Oracle VM VirtualBox",进入File->Preferences->Network->Host-only Networks,删除两个默认的网络。
docker-machine create --driver virtualbox --virtualbox-hostonly-cidr "25.0.1.100/24" dev

总结一下:Docker在windows上运行其本质是运行在Windows上的虚拟机里面的Linux上,实质上还是运行在Linux,因为Docker是建立在Linux内核基础上的,Windows无法适应。

参考资料:
[1] https://docs.docker.com/windows/
[2] http://docs.docker.com/windows/started/

posted on 2016-12-28 21:52 做强大的自己 阅读(377) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: