Docker03 Docker基础知识、Docker实战
?
1 Docker基礎(chǔ)知識(shí)
1.1 什么是Docker
Docker是一個(gè)可以裝應(yīng)用的容器,就像杯子可以裝水、書包可以裝書一樣;docker官網(wǎng)
Docker是Docker公司開發(fā)的,并開源到GitHub上;
Docker是跨平臺(tái)的,支持windows、linux、Macos
1.2 Docker思想
1.2.1 集裝箱
需要運(yùn)行的程序放到一個(gè)集裝箱中
1.2.2 標(biāo)準(zhǔn)化
運(yùn)輸方式
存儲(chǔ)方式
API接口
1.2.3 隔離
1.3 Docker解決了什么問題
1.3.1 解決運(yùn)行環(huán)境不一致問題
?解決了本地可以運(yùn)行但是上線就出現(xiàn)問題
1.3.2 應(yīng)用之間的隔離
當(dāng)一臺(tái)服務(wù)器同時(shí)運(yùn)行多個(gè)應(yīng)用時(shí),有可能會(huì)因?yàn)橐粋€(gè)應(yīng)用出現(xiàn)問題而牽扯到其他應(yīng)用的運(yùn)行;docker化的應(yīng)用會(huì)給每個(gè)應(yīng)用進(jìn)行隔離,某個(gè)應(yīng)用出現(xiàn)問題后不會(huì)影響其他的應(yīng)用
1.3.3 簡化應(yīng)用的擴(kuò)展
當(dāng)需要大量擴(kuò)展應(yīng)用程序的部署時(shí),利用docker可以輕松實(shí)現(xiàn);例如:雙十一應(yīng)用的擴(kuò)展
1.4 Docker核心技術(shù)
Docker運(yùn)行程序的過程:利用命令從倉庫拉取一個(gè)鏡像到本地 -> 利用命令將鏡像變成容器 -> 利用命令運(yùn)行容器
build : 構(gòu)建鏡像
ship : 運(yùn)輸鏡像,從倉庫把需要的鏡像運(yùn)輸?shù)侥撑_(tái)服務(wù)器(即:從倉庫中獲取鏡像)
run : 運(yùn)行的進(jìn)行(就是一個(gè)正在運(yùn)行的容器)
1.4.1 鏡像(集裝箱)
就行就是一系列的文件,可以是應(yīng)用文件,也可以是運(yùn)行應(yīng)用需要的環(huán)境文件;Docker會(huì)把這些文件保存到本地,存儲(chǔ)方式采用Linux中的聯(lián)合文件系統(tǒng)的分層概念方式(即:將不同目錄下的文件掛載到同一個(gè)目錄下)。
鏡像可以用來創(chuàng)建Docker容器的。一個(gè)鏡像可以包含一個(gè)完整的操作系統(tǒng)環(huán)境和用戶需要的其它應(yīng)用程序。在docker hub 里面有大量現(xiàn)成的鏡像提供下載。docker的鏡像是只可讀的,一個(gè)鏡像可以創(chuàng)建多個(gè)容器,每個(gè)容器之間相互不干擾。
鏡像由下到上每層的具體說明為:
操作系統(tǒng)的引導(dǎo)
具體的Linux操作系統(tǒng)
相關(guān)軟件:tomcat、jdk等
應(yīng)用代碼
頂層為可寫層(屬于容器)
說明:docker加載完每層后,所有文件都會(huì)被視為放在同一個(gè)目錄【相當(dāng)于所有文件都放在一個(gè)文件系統(tǒng)中,docker的這個(gè)文件系統(tǒng)就叫作容器】
1.4.2 倉庫(超級(jí)碼頭) ?
就是存放鏡像的遠(yuǎn)程倉庫
官方倉庫、國內(nèi)倉庫
?
1.4.3 容器(運(yùn)行程序的地方)
Docker利用容器來開發(fā)、運(yùn)行應(yīng)用容器是鏡像創(chuàng)建的實(shí)例。它可以被啟動(dòng)、開始、停止、刪除。每個(gè)容器都是 相互隔離的、保證安全的平臺(tái)。
電風(fēng)扇
?
2 安裝
2.1 windows安裝
2.1.1 下載Docker for Developers
2.1.2 啟動(dòng)Docker Quickstart Termina時(shí)遇到的坑
說明01:非windows10用戶需要下載docker toolbox 來安裝docker
說明02:安裝完?docker toolbox 后會(huì)在桌面出現(xiàn)三個(gè)圖標(biāo)
坑01:啟動(dòng)Docker Quickstart Terminal時(shí)會(huì)提示找不到git執(zhí)行路徑
解坑02:右鍵Docker Quickstart Terminal -> 屬性 -> 快捷方式 -> 目標(biāo)?-> D:\PTool\Git\bin\bash.exe --login -i "H:\docker\Docker Toolbox\start.sh"
坑02:第一啟動(dòng)Docker Quickstart Terminal時(shí)需要下載一個(gè)boot2docker文件,非常慢
解坑02:利用迅雷下載(從第一次啟動(dòng)Docker Quickstart Terminal時(shí)可以獲取到boot2docker文件的下載url),并將下載好的文件放到?C:\Users\a\.docker\machine\cache 下即可;然后再次啟動(dòng)
說明03:啟動(dòng) Docker Quickstart Terminal 成功后,可以利用Docker Version來查看docker的客戶端和服務(wù)端信息
?
3 Docker實(shí)戰(zhàn)
3.1 Docker的Hello World
docker pull? -> 拉取鏡像
docker images -> 查看鏡像列表信息
docker ps -> 查看正在運(yùn)行的容器信息
docker run -> 運(yùn)行鏡像
?
3.2 Nginx
3.2.1 nginx容器的特點(diǎn)
是一個(gè)持久運(yùn)行的容器
最好選擇后臺(tái)運(yùn)行
進(jìn)入容器內(nèi)部
3.2.2 具體步驟
》到鏡像中心去查看nginx
》拉取nginx鏡像
docker pull hub.c.163.com/library/nginx:latest》前臺(tái)運(yùn)行nginx容器(前臺(tái)啟動(dòng)直接利用ctrl + c就可以停掉)
docker run hub.c.163.com/library/nginx》后臺(tái)運(yùn)行nginx容器
docker run -d hub.c.163.com/library/nginx》關(guān)閉nginx容器
docker stop 244c59f1c7f7》進(jìn)入nginx容器內(nèi)部
使用命令 dokcer exec?
可以通過 docker exec --help 查看該命令的一些信息
docker exec -i -t b42516a87c12 bash說明:進(jìn)入容器后就相當(dāng)于進(jìn)入了一個(gè)linux系統(tǒng),可以通過exit命令退出
》訪問容器中的nginx
網(wǎng)絡(luò)類型:Bridge(docker的默認(rèn)模式)、Host、None
端口映射
$ docker run -d -p 8088:80 hub.c.163.com/library/nginx坑01:IP問題
?
?未完待續(xù)...2018年11月11日16:59:14
?
轉(zhuǎn)載于:https://www.cnblogs.com/NeverCtrl-C/p/9942592.html
總結(jié)
以上是生活随笔為你收集整理的Docker03 Docker基础知识、Docker实战的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 资源分配博弈之纳什均衡和斯塔克尔伯格模型
- 下一篇: 免费DDOS攻击测试工具大合集