Docker03 Docker基礎知識、Docker實戰
1 Docker基礎知識
1.1 什麼是Docker
Docker是一個可以裝應用的容器,就像杯子可以裝水、書包可以裝書一樣; ofollow,noindex">docker官網
Docker是Docker公司開發的,並開源到GitHub上;
Docker是跨平臺的,支援windows、linux、Macos
1.2 Docker思想
1.2.1 集裝箱
需要執行的程式放到一個集裝箱中
1.2.2 標準化
運輸方式
儲存方式
API介面
1.2.3 隔離
1.3 Docker解決了什麼問題
1.3.1 解決執行環境不一致問題
解決了本地可以執行但是上線就出現問題
1.3.2 應用之間的隔離
當一臺伺服器同時執行多個應用時,有可能會因為一個應用出現問題而牽扯到其他應用的執行;docker化的應用會給每個應用進行隔離,某個應用出現問題後不會影響其他的應用
1.3.3 簡化應用的擴充套件
當需要大量擴充套件應用程式的部署時,利用docker可以輕鬆實現;例如:雙十一應用的擴充套件
1.4 Docker核心技術
Docker執行程式的過程:利用命令從倉庫拉取一個映象到本地 -> 利用命令將映象變成容器 -> 利用命令執行容器
build : 構建映象
ship : 運輸映象,從倉庫把需要的映象運輸到某臺伺服器(即:從倉庫中獲取映象)
run : 執行的進行(就是一個正在執行的容器)
1.4.1 映象(集裝箱)
就行就是一系列的檔案,可以是應用檔案,也可以是執行應用需要的環境檔案;Docker會把這些檔案儲存到本地,儲存方式採用Linux中的聯合檔案系統的分層概念方式(即:將不同目錄下的檔案掛載到同一個目錄下)。
映象可以用來建立Docker容器的。一個映象可以包含一個完整的作業系統環境和使用者需要的其它應用程式。在docker hub 裡面有大量現成的映象提供下載。docker的映象是隻可讀的,一個映象可以建立多個容器,每個容器之間相互不干擾。
映象由下到上每層的具體說明為:
作業系統的引導
具體的Linux作業系統
相關軟體:tomcat、jdk等
應用程式碼
頂層為可寫層(屬於容器)
說明:docker載入完每層後,所有檔案都會被視為放在同一個目錄【相當於所有檔案都放在一個檔案系統中,docker的這個檔案系統就叫作容器】
1.4.2 倉庫(超級碼頭)
就是存放映象的遠端倉庫
1.4.3 容器(執行程式的地方)
Docker利用容器來開發、執行應用容器是映象建立的例項。它可以被啟動、開始、停止、刪除。每個容器都是 相互隔離的、保證安全的平臺。
電風扇
2 安裝
2.1 windows安裝
2.1.1 下載Docker for Developers
2.1.2 啟動Docker Quickstart Termina時遇到的坑
說明01:非windows10使用者需要下載docker toolbox 來安裝docker
說明02:安裝完 docker toolbox 後會在桌面出現三個圖示
坑01:啟動Docker Quickstart Terminal時會提示找不到git執行路徑
解坑02:右鍵Docker Quickstart Terminal -> 屬性 -> 快捷方式 -> 目標 -> D:\PTool\Git\bin\bash.exe --login -i "H:\docker\Docker Toolbox\start.sh"
坑02:第一啟動Docker Quickstart Terminal時需要下載一個boot2docker檔案,非常慢
解坑02:利用迅雷下載(從第一次啟動Docker Quickstart Terminal時可以獲取到boot2docker檔案的下載url),並將下載好的檔案放到 C:\Users\a\.docker\machine\cache 下即可;然後再次啟動
說明03:啟動 Docker Quickstart Terminal 成功後,可以利用Docker Version來檢視docker的客戶端和服務端資訊
3 Docker實戰
3.1 Docker的Hello World
docker pull -> 拉取映象
docker images -> 檢視映象列表資訊
docker ps -> 檢視正在執行的容器資訊
docker run -> 執行映象
3.2 Nginx
3.2.1 nginx容器的特點
是一個持久執行的容器
最好選擇後臺執行
進入容器內部
3.2.2 具體步驟
》到映象中心去檢視nginx
》拉取nginx映象
docker pull hub.c.163.com/library/nginx:latest
》前臺執行nginx容器(前臺啟動直接利用ctrl + c就可以停掉)
docker run hub.c.163.com/library/nginx
》後臺執行nginx容器
docker run -d hub.c.163.com/library/nginx
》關閉nginx容器
docker stop 244c59f1c7f7
》進入nginx容器內部
使用命令 dokcer exec
可以通過 docker exec --help 檢視該命令的一些資訊
docker exec -i -t b42516a87c12 bash
說明:進入容器後就相當於進入了一個linux系統,可以通過exit命令退出
》訪問容器中的nginx
網路型別:Bridge(docker的預設模式)、Host、None
埠對映
$ docker run -d -p 8088:80 hub.c.163.com/library/nginx
坑01: IP問題
未完待續...2018年11月11日16:59:14