Docker03 Docker基礎知識、Docker實戰
1 Docker基礎知識
1.1 什麽是Docker
Docker是一個可以裝應用的容器,就像杯子可以裝水、書包可以裝書一樣;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
Docker03 Docker基礎知識、Docker實戰