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/