1.Docker溯源
Docker的前身是名為dotCloud的小公司,主要提供的是基於 PaaS(Platform as a Service,平台及服務)平台為開發者或開發商提供技術服務,並提供的開發工具和技術框架。因為其為初創的公司,又生於IT行業,dotCloud受到了IBM,亞馬遜,google等公司的擠壓,發展舉步維艱。於是,在2013年dotCloud 的創始人,年僅28歲的Solomon Hykes做了一個艱難的決定:將dotCloud的核心引擎開源!然而一旦這個基於 LXC(Linux Container)技術的核心管理引擎開源,dotCloud公司就相當於走上了一條"不歸路"。可正是這個孤注一擲的舉動,卻帶來了全球技術人員的熱潮,眾程序員驚呼:太方便了,太方便了。也正是這個決定,讓所有的IT巨頭也為之一顫。一個新的公司也隨之出世,它就是:Docker。可以說,Docker是一夜成名的!!
2.Docker認識
2.1鏡像,容器,倉庫
首先,需要了解一下幾個概念:鏡像,容器,倉庫
鏡像(image):Docker 鏡像就是一個只讀的模板,鏡像可以用來創建 Docker 容器。Docker 提供了一個很簡單的機制來創建鏡像或者更新現有的鏡像,用戶甚至可以直接從其他人那里下載一個已經做好的鏡像來直接使用。鏡像是一種文件結構。Dockerfile中的每條命令都會在文件系統中創建一個新的層次結構,文件系統在這些層次上構建起來,鏡像就構建於這些聯合的文件系統之上。Docker官方網站專門有一個頁面來存儲所有可用的鏡像,網址是:index.docker.io。
容器( Container):容器是從鏡像創建的運行實例。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平台。可以把容器看做是一個簡易版的 Linux 環境,Docker 利用容器來運行應用。
倉庫:倉庫是集中存放鏡像文件的場所,倉庫注冊服務器(Registry)上往往存放着多個倉庫,每個倉庫中又包含了多個鏡像,每個鏡像有不同的標簽(tag)。目前,最大的公開倉庫是 Docker Hub,存放了數量龐大的鏡像供用戶下載。
2.2Docker定義
Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上。Docker是一個重新定義了程序開發測試、交付和部署過程的開放平台,Docker則可以稱為構建一次,到處運行,這就是Docker提出的"Build once,Run anywhere"
Docker倉庫用來保存我們的images,當我們創建了自己的image之后我們就可以使用push命令將它上傳到公有或者私有倉庫,這樣下次要在另外一台機器上使用這個image時候,只需要從倉庫上pull下來就可以了。注意:Docker不是容器,而是管理容器的引擎!
Docker中文手冊上解釋說:Docker是一個開源的引擎,可以輕松的為任何應用創建一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署,包括VMs(虛擬機)、bare metal、OpenStack 集群和其他的基礎應用平台。
從這里我們可以看出,Docker並非是容器,而是管理容器的引擎。Docker是為應用打包、部署的平台,而非單純的虛擬化技術。
3.Docker安裝
3.1下載和安裝Docker Toolbox
從Docker官網可以下到Docker Toolbox:https://www.docker.com/products/docker-toolbox,選擇windows版本下載。
雙擊下載好的程序:
你可通過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 配置文件
然后,在空白處輸入(因為我想將以后的鏡像都安裝到E盤,此處可以修改你喜歡的盤符):
export MACHINE_STORAGE_PATH='E:\docker'
然后,關閉后,在E盤創建名為docker的文件夾,在其下創建名為cache的文件夾,將安裝文件下的boot2docker.iso拷貝到該文件夾:
在Git Bash中輸入更改路徑命令,此處使用阿里雲的加速器,因為在使用docker的時候,會需要從docker的網站下載鏡像文件,下載速度可能會很慢。獲得阿里雲加速,需要登錄阿里雲開發者平台,然后點擊右側的管理中心(當然你得要有一個賬戶):
阿里雲開發者平台:https://dev.aliyun.com/search.html
然后點擊加速,Windows
復制紅色方框中的代碼,然后修改為如下(根據自己盤符修改):
現在就可以在Git Bash中運行了:
docker-machine -s "E:\docker" create --engine-registry-mirror=https://rf483vio.mirror.aliyuncs.com -d virtualbox default
因為本機已裝過,所以顯示上圖;
需要注意的是:
如果開啟了電腦自帶的虛擬機:Hyper-V,需要關閉,否則在安裝時會報錯,提示你禁用Hyper-V;查詢是否禁用:
上面都搞定,正常安裝截圖:
虛擬機中出現如下界面:
此時可以點擊Docker Quickstart Terminal:
同時,Docker Quickstart Terminal也已經登錄進去:
也可以在Git Bash中運行:
docker-machine ls
這里面就是一個linux風格的Docker環境,提示的IP:192.168.99.100就是Docker虛擬機的IP了。
這台docker machine創建后就啟動了,如果下次我們再打開電腦,想要啟動docker machine,可以打開Docker Quickstart Terminal或者Git Bash,然后執行下面的命令:
docker-machine start
來啟動docker machine。
3.3利用ssh軟件登錄
SSH登錄虛擬機(此處使用的XShell軟件,自行百度下載,當然還有其他的ssh軟件):
docker machine的IP是192.168.99.100,用SSH工具登錄它,用戶名是docker
,密碼是tcuser
登錄后界面: