




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Docker技術(shù)專題講座,技術(shù)原理 環(huán)境搭建 應(yīng)用實(shí)例,1,簡(jiǎn)介,Docker的英文本意是“搬運(yùn)工”,在程序員的世界里,Docker搬運(yùn)的是集裝箱(Container),集裝箱里裝的是任意類型的App,開發(fā)者通過Docker可以將App變成一種標(biāo)準(zhǔn)化的、可移植的、自管理的組件,可以在任何主流系統(tǒng)中開發(fā)、調(diào)試和運(yùn)行。最重要的是,它不依賴于任何語言、框架或系統(tǒng)。 目標(biāo)是實(shí)現(xiàn)輕量級(jí)的操作系統(tǒng)虛擬化解決方案 基礎(chǔ):Linux 容器( LXC) Go 語言實(shí)現(xiàn) Apache 2.0 協(xié)議 GitHub 上進(jìn)行維護(hù),2,對(duì)比傳統(tǒng)虛擬機(jī),3,對(duì)比虛擬機(jī),4,Docker應(yīng)用場(chǎng)景,web應(yīng)用的自動(dòng)化打包和發(fā)布
2、 自動(dòng)化測(cè)試和持續(xù)集成、 發(fā)布 在服務(wù)型環(huán)境中部署和調(diào)整數(shù)據(jù)庫(kù)或其他的后臺(tái)應(yīng)用 從頭編譯或者擴(kuò)展現(xiàn)有的OpenShift或Cloud Foundry平臺(tái)來搭建自己的PaaS環(huán)境。,5,Docker 帶來的好處,6,安裝,安裝 Docker 所需條件:需要 64 位架構(gòu)的系統(tǒng)和 Linux 3.10 內(nèi)核或更高版本。 Docker有很多種安裝的選擇,推薦在Ubuntu下面安裝,因?yàn)閐ocker是在Ubuntu下面開發(fā)的,安裝包測(cè)試比較充分,可以保證軟件包的可用性。 添加 Docker 的官方 apt 軟件源 /etc/apt/sources.list.d/docker.list deb http
3、s://repo ubuntu-trusty main 添加成功后,更新 apt 軟件包緩存 $ sudo apt-get update 安裝 Docker $ sudo apt-get install -y docker-engine,7,Docker的Hello World,啟動(dòng)docker后臺(tái)Daemon: $ sudo systemctl start docker 跑我們第一個(gè)Hello World容器: $ sudo docker run -i -t fedora /bin/echo hello world hello world 可以看到在
4、運(yùn)行命令行后的下一行會(huì)打印出經(jīng)典的Hello World字符串。,8,3個(gè)內(nèi)部組件,Docker Images Docker image 是 Docker container 最基本的模板。image 通過容器使系統(tǒng)和應(yīng)用易于安裝,Docker image 是用來運(yùn)行的容器,你可以在這里 images (多種操作系統(tǒng)和軟件已經(jīng)被安裝好了的 Docker)。 Docker Container Docker 容器(Docker Container)是一個(gè) Image,在運(yùn)行的 Docker image 上讀取和寫入。Docker 是一個(gè)聯(lián)合的文件系統(tǒng)作為容器后臺(tái),容器的任何變化,都將被保存在一個(gè)基
5、本 image 新的層上。我們安裝應(yīng)用程序的層就是容器。每個(gè)在主機(jī)上運(yùn)行的容器都是獨(dú)立的,因此,提供了一個(gè)安全的應(yīng)用平臺(tái)。 Docker Registry Docker registry 是為 Docker images 提供的庫(kù)。它提供了公共和私有庫(kù)。公共 Docker 庫(kù)被叫做 Docker Hub。這里我們能夠上傳 push 和 pull 我們自己的 images。,9,10,Docker架構(gòu)圖,11,Docker總架構(gòu)圖,12,Docker運(yùn)行案例分析-docker pull,13,Docker運(yùn)行案例分析-docker run,14,Docker 鏡像,每個(gè)鏡像都由很多層次構(gòu)成,Do
6、cker 使用 Union FS 將這些不同的層結(jié)合到一個(gè)鏡像中去。 使用 docker pull 命令來從倉(cāng)庫(kù)獲取所需要的鏡像 $ sudo docker pull ubuntu:12.04 使用 docker images 顯示本地已有的鏡像,15,創(chuàng)建鏡像,從 Docker Hub 獲取已有鏡像并更新,最后使用 docker commit 命令來提交更新后的副本。 利用 Dockerfile 來創(chuàng)建鏡像 Dockerfile 中每一條指令都創(chuàng)建鏡像的一層,例如: 編寫完成 Dockerfile 后可以使用 docker build 來生成鏡像,16,鏡像導(dǎo)出、導(dǎo)入、移除,如果要導(dǎo)出鏡像到
7、本地文件,可以使用 docker save 命令。$sudo docker save -o ubuntu_14.04.tar ubuntu:14.04 可以使用 docker load 從導(dǎo)出的本地文件中再導(dǎo)入到本地鏡像庫(kù),例如:$ sudo docker load -input ubuntu_14.04.tar 如果要移除本地的鏡像,可以使用 docker rmi 命令。 使用下面的命令可以清理所有未打過標(biāo)簽的本地鏡像 $ sudo docker rmi $(docker images -q -f dangling=true),17,Docker 容器,啟動(dòng)容器有兩種方式,一種是基于鏡像新建
8、一個(gè)容器并啟動(dòng),另外一個(gè)是將在終止?fàn)顟B(tài)( stopped) 的容器重新啟動(dòng)。 新建并啟動(dòng) $ sudo docker run ubuntu:14.04 /bin/echo Hello world Hello world 啟動(dòng)已終止容器 docker start 添加 -d 參數(shù)來實(shí)現(xiàn)后臺(tái)運(yùn)行,不直接把執(zhí)行命令的結(jié)果輸出在當(dāng)前宿主機(jī)下。 使用 docker stop 來終止一個(gè)運(yùn)行中的容器 使用 docker attach 命令進(jìn)入容器進(jìn)行操作,18,如果要導(dǎo)出本地某個(gè)容器,可以使用 docker export 命令。 $ sudo docker export 7691a814370e ubun
9、tu.tar 可以使用 docker import 從容器快照文件中再導(dǎo)入為鏡像 $ cat ubuntu.tar | sudo docker import - test/ubuntu:v1.0 使用 docker rm 來刪除一個(gè)處于終止?fàn)顟B(tài)的容器。 用 docker rm $(docker ps -a -q)清理所有處于終止?fàn)顟B(tài)的容器,19,倉(cāng)庫(kù),目前 Docker 官方維護(hù)了一個(gè)公共倉(cāng)庫(kù) Docker Hub,其中已經(jīng)包括了超過 15,000的鏡像。 docker search 命令來查找官方倉(cāng)庫(kù)中的鏡像 docker pull 命令來將它下載到本地 有時(shí)候使用 Docker Hub 這
10、樣的公共倉(cāng)庫(kù)可能不方便,用戶可以創(chuàng)建一個(gè)本地倉(cāng)庫(kù)供私人使用。 registry 是官方提供的工具,可以用于構(gòu)建私有的鏡像倉(cāng)庫(kù),20,21,Docker 數(shù)據(jù)管理,使用數(shù)據(jù)卷和數(shù)據(jù)卷容器在 Docker 內(nèi)部以及容器之間管理數(shù)據(jù)。 掛載一個(gè)主機(jī)目錄作為數(shù)據(jù)卷 $ sudo docker run -d -P -name web -v /src/webapp:/opt/webapp training/webapp python app.py,22,Docker 中的網(wǎng)絡(luò)功能介紹,Docker 允許通過外部訪問容器或容器互聯(lián)的方式來提供網(wǎng)絡(luò)服務(wù)。 外部訪問容器 通過 -P 或-p 參數(shù)來指定端口映射
11、$ sudo docker run -d -p 5000:5000 training/webapp python app.py 容器互聯(lián) 使用 -link 參數(shù)可以讓容器之間安全的進(jìn)行交互 $ sudo docker run -d -P -name web -link db:db training/webapp python app.py,23,Docker 網(wǎng)絡(luò),24,多臺(tái)物理主機(jī)之間的容器互聯(lián)( 暴露容器到真實(shí)網(wǎng)絡(luò)中),25,一張圖總結(jié) Docker 的命令,26,底層實(shí)現(xiàn),Docker 底層的核心技術(shù)包括 Linux 上的名字空間( Namespaces) 、控制組( Control g
12、roups)、Union 文件系統(tǒng)( Union file systems)和容器格式( Container format) 。 大家雖然都共用一個(gè)內(nèi)核和某些運(yùn)行時(shí)環(huán)境( 例如一些系統(tǒng)命令和系統(tǒng)庫(kù)) ,但是彼此卻看不到,都以為系統(tǒng)中只有自己的存在。這種機(jī)制就是容器( Container) ,利用名字空間來做權(quán)限的隔離控制,利用 cgroups 來做資源分配。,27,AUFS (AnotherUnionFS),AUFS 是一種 Union FS, 簡(jiǎn)單來說就是支持將不同目錄掛載到同一個(gè)虛擬文件系統(tǒng)下的文件系統(tǒng), 更進(jìn)一步的理解, AUFS支持為每一個(gè)成員目錄(類似Git Branch)設(shè)定rea
13、donly、readwrite 和 whiteout-able 權(quán)限, 同時(shí) AUFS 里有一個(gè)類似分層的概念, 對(duì) readonly 權(quán)限的 branch 可以邏輯上進(jìn)行修改(增量地, 不影響 readonly 部分的)。,28,典型的啟動(dòng)Linux運(yùn)行需要兩個(gè)FS: bootfs + rootfs:,29,30,Docker的開源之路-用戶社區(qū)維護(hù)、源代碼管理、創(chuàng)建合作伙伴生態(tài)圈,31,應(yīng)用案例-在測(cè)試中使用Docker,使用Docker測(cè)試靜態(tài)網(wǎng)站 Sample網(wǎng)站的初始Dockerfile 構(gòu)建Sample網(wǎng)站和tomcat鏡像 從Sample網(wǎng)站和tomcat鏡像構(gòu)建容器 修改網(wǎng)站,32,應(yīng)用案例-中小
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2025年商旅行業(yè)市場(chǎng)前景及投資研究報(bào)告:管理市場(chǎng)
- 穆棱輔警考試題庫(kù)2024
- 老王說課課件模板
- 2025年汝陽(yáng)縣社區(qū)工作者招聘考試筆試試題(含答案)
- 老年護(hù)理安全課件
- 老年護(hù)理壓瘡課件
- 老年中醫(yī)養(yǎng)生教學(xué)課件
- 知識(shí)產(chǎn)權(quán)密集型部分股份轉(zhuǎn)讓合同樣本
- 生態(tài)農(nóng)業(yè)部分股權(quán)投資與產(chǎn)業(yè)鏈整合合同
- 餐飲連鎖企業(yè)員工福利待遇合同范本
- 廣東省湛江市雷州市2023-2024學(xué)年六年級(jí)下學(xué)期4月月考綜合試題
- 護(hù)理MDT多學(xué)科協(xié)作模式
- 《槍炮、病菌與鋼鐵》讀書分享交流會(huì)
- DB13-T1431-2011森林消防物資儲(chǔ)備庫(kù)建設(shè)和管理規(guī)范
- 煙臺(tái)市開發(fā)區(qū)行業(yè)報(bào)告
- 臨床男科學(xué)與男科疾病診療
- 乳腺癌輔助化療
- 10kV試驗(yàn)報(bào)告模板-大全
- 醫(yī)院保潔服務(wù)投標(biāo)方案(完整技術(shù)標(biāo))
- 范卿平人教版初三化學(xué)講義全集
- 產(chǎn)科運(yùn)用PDCA循環(huán)降低入室新生兒低血糖發(fā)生率品管圈成果匯報(bào)
評(píng)論
0/150
提交評(píng)論