今天是Docker討論系列的終章,我們先從docker的命令開始介紹,再說(shuō)明Docker run命令關(guān)鍵參數(shù)。
為自流井等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及自流井網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、自流井網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
如果你還沒看過(guò)前面的內(nèi)容:
第一篇《容器的本質(zhì)是什么?容器從何而來(lái)?》
第二篇《Docker的安裝及架構(gòu)介紹》
上圖摘自:http://bingohuang.com/simplify-docker-image-2/
Images:docker鏡像??蓪⑷萜鬓D(zhuǎn)化為鏡像,也可從鏡像運(yùn)行出一個(gè)個(gè)的容器實(shí)例。類似于虛擬機(jī)模板的概念。
Container:容器。
有running\stopped\pause三種狀態(tài),類似于虛擬機(jī)的概念。
Tar files:可以將鏡像打包為tar文件,也可以將打包后的tar文件重新load為鏡像
Dockerfile:構(gòu)建鏡像的聲明式配置文件。Docker技術(shù)的核心亮點(diǎn)之一。當(dāng)我們從一個(gè)基礎(chǔ)鏡像(centos鏡像)構(gòu)建一個(gè)另一個(gè)基礎(chǔ)鏡像(如java鏡像)時(shí),一般不會(huì)使用的在centos鏡像中直接安裝java的方式,而是將java軟件與centos鏡像放置于一起,在相同目錄下編寫好dockerfile,dockerfile中定義了java鏡像安裝的命令和環(huán)境配置參數(shù)等安裝信息,然后使用docker build命令就可以將這些軟件及配置文件打包成一個(gè)java鏡像。這樣做的好處就是通過(guò)這種聲明式的構(gòu)建方式最終構(gòu)建了一個(gè)純凈的鏡像文件。
Registry:鏡像倉(cāng)庫(kù)。用于存儲(chǔ)鏡像文件。
Engine:docker引擎
Docker version ?查看docker版本
Docker info 顯示 Docker 系統(tǒng)信息,包括鏡像和容器數(shù).
Docker events? 從服務(wù)器獲取實(shí)時(shí)事件
狀態(tài)操作命令:
Docker start? 從stop到running
Docker kill? 從running到stop,直接kill容器進(jìn)程
Docker stop? 從running到stop,容器在停止前先完成一些保護(hù)性的動(dòng)作之后再停止容器
Docker pause? 暫停容器中所有的進(jìn)程
Docker unpause? 恢復(fù)容器中所有的進(jìn)程
容器與鏡像相關(guān)的操作命令:
Docker commit? 將容器保存為一個(gè)新的鏡像
Docker create? 從鏡像創(chuàng)建一個(gè)容器,該容器狀態(tài)為stop
Docker run? 從鏡像創(chuàng)建一個(gè)容器并將該容器啟動(dòng)
Docker diff 檢查自鏡像運(yùn)行之后,容器里文件結(jié)構(gòu)的更改
容器與tar文件相關(guān)的操作命令:
Docker export? 將容器導(dǎo)出為一個(gè)tar文件
容器自身的其他操作命令:
Docker inspect? 獲取容器/鏡像的元數(shù)據(jù)
Docker attach? 連接到正在運(yùn)行中的容器
Docker port? 列出指定的容器的端口映射
Docker ps 查看系統(tǒng)中的容器
Docker top 查看容器中運(yùn)行的進(jìn)程信息
Docker rm? 刪除容器
Docker logs? 獲取容器的日志
Docker wait? 阻塞運(yùn)行直到容器停止,然后打印出它的退出代碼
Docker exec? 在運(yùn)行的容器中執(zhí)行命令
Docker network 操作容器網(wǎng)絡(luò)
容器與鏡像相關(guān)的操作命令:
Docker commit? 將容器保存為一個(gè)新的鏡像
Docker create? 從鏡像創(chuàng)建一個(gè)容器,該容器狀態(tài)為stop
Docker run? 從鏡像創(chuàng)建一個(gè)容器并將該容器啟動(dòng)
Docker diff 檢查自鏡像運(yùn)行之后,容器里文件結(jié)構(gòu)的更改
鏡像與tar files相關(guān)的命令:
Docker import? 將tar文件load為鏡像,會(huì)丟失相關(guān)的元數(shù)據(jù)和歷史記錄
Docker load? 將tar文件load為鏡像
Docker save? 將鏡像保存為tar文件
鏡像與dockerfile相關(guān)的命令:
Docker build? 基于dockerfile構(gòu)建鏡像
鏡像與倉(cāng)庫(kù)相關(guān)的命令:
Docker pull? 從倉(cāng)庫(kù)下載鏡像
Docker push? 將鏡像上傳至倉(cāng)庫(kù)
鏡像自身的命令:
Docker images 列舉鏡像
Docker rmi 刪除鏡像
Docker tag 為鏡像打上標(biāo)簽
Docker inspect? 列出鏡像的詳細(xì)信息
Docker history? 列出鏡像的構(gòu)建歷史
Docker export? 將容器導(dǎo)出tar文件
Docker import? 將tar文件load為鏡像,會(huì)丟失相關(guān)的元數(shù)據(jù)和歷史記錄
Docker load? 將tar文件load為鏡像
Docker save? 將鏡像保存為tar文件
Docker build? 基于dockerfile構(gòu)建鏡像
鏡像與倉(cāng)庫(kù)相關(guān)的命令:
Docker pull? 從倉(cāng)庫(kù)下載鏡像
Docker push? 將鏡像上傳至倉(cāng)庫(kù)
倉(cāng)庫(kù)自身的命令:
Docker search ?在倉(cāng)庫(kù)中查找某個(gè)鏡像
Docker login? 登錄倉(cāng)庫(kù)
Docker logout? 登出倉(cāng)庫(kù)
Docker命令學(xué)習(xí)示意圖:
圖片來(lái)源:https://blog.csdn.net/yuanfenger/article/details/73316481
Docker命令學(xué)習(xí)示意圖:
圖片來(lái)源:https://www.twblogs.net/a/5c290471bd9eee01606d2e41
Docker run命令的作用在于從一個(gè)容器鏡像生成一個(gè)容器實(shí)例并將其啟動(dòng)。
Docker run的主要命令參數(shù)如下:
使用docker run -it [IMAGE_NAME] 可以啟動(dòng)一個(gè)容器,并進(jìn)入命令行交互界面:
使用exit可退出此容器
使用-d可以讓容器在后臺(tái)運(yùn)行:
--ip可以為容器指定ip地址,先使用docker network ls查看主機(jī)上的docker網(wǎng)絡(luò):
使用--ip參數(shù)啟動(dòng)容器:
此時(shí)會(huì)報(bào)錯(cuò),如果要使用自定義ip,只能使用自定義的容器網(wǎng)絡(luò)。先創(chuàng)建自定義的容器網(wǎng)絡(luò):
也可以在創(chuàng)建時(shí)手動(dòng)指定容器的子網(wǎng):
重新運(yùn)行指定容器ip的命令:
執(zhí)行成功,查看容器ip地址:
-h指定容器中的主機(jī)名,--name指定容器的名字
-p 可以將主機(jī)上的端口映射到容器中。-p 8088:80 表示將主機(jī)的8088端口映射到容器的80端口上:
--privileged表示將對(duì)主機(jī)的文件更改的權(quán)限賦予此容器, -v 表示將主機(jī)的 /host/v1 目錄映射給容器上的 /con/logs目錄 ,如果容器中沒有此目錄,則會(huì)自動(dòng)創(chuàng)建。執(zhí)行命令?
docker run -it --privileged -v /host/v1:/con/logs centos
在主機(jī)上的相應(yīng)目錄可看到容器中對(duì)該目錄寫入的內(nèi)容
為容器掛載主機(jī)上的卷并設(shè)置容器只有對(duì)此卷的只讀權(quán)限:?
docker run -it –privileged -v /host/v1:/con/logs:ro centos
-m用來(lái)指定容器內(nèi)存,-c可用于指定容器的cpu配額
我們可以下載progrium/stress容器來(lái)測(cè)試容器的配額指定。使用以下命令查看該容器有哪些測(cè)試功能:
使用docker run -m 2000m可啟動(dòng)一個(gè)內(nèi)存占用2000MB的容器,但該容器中未進(jìn)行什么進(jìn)程時(shí),該容器并不會(huì)直接占用主機(jī)2000MB的內(nèi)存。此時(shí)我們可以啟動(dòng)stress容器,并使用--vm 1和 –vm-bytes 2000M表示啟動(dòng)stress容器時(shí)在其中啟動(dòng)一個(gè)占用內(nèi)存2000M的進(jìn)程:
如果我們?cè)谝粋€(gè)總限額為2000MB的stress容器中啟動(dòng)3個(gè)占用500MB的進(jìn)程,總共1500MB,那么情況如下:
在容器中是運(yùn)行超過(guò)容器內(nèi)存限額的進(jìn)程的:
關(guān)于cpu限制,--cpu-share表示主機(jī)上運(yùn)行的容器的cpu使用權(quán)重的定義。由于主機(jī)上有4個(gè)cpu核,所有需 --cpu 4參數(shù)在容器中啟動(dòng)4個(gè)進(jìn)程以便將主機(jī)的cpu全部占滿。
關(guān)于docker run中的 --cpus 參數(shù),則是指定cpu的個(gè)數(shù)。當(dāng)主機(jī)上有4個(gè)cpu時(shí),容器只會(huì)使用總共1個(gè)cpu,也就是4分之1。
此數(shù)值也可以為小數(shù),如0.5 ,那么容器只會(huì)使用此主機(jī)8分之1的cpu。
當(dāng)數(shù)值與主機(jī)的cpu核數(shù)相同時(shí),將可使用此主機(jī)的所有cpu配額,可以看到4個(gè)cpu全滿。
我們可以啟動(dòng)5個(gè)占滿cpu的進(jìn)程而不是4個(gè),情況如下:
作者:沈曉龍
Docker操作實(shí)踐(2):Docker的安裝及架構(gòu)介紹
Docker操作實(shí)踐(1):容器的本質(zhì)是什么?容器從何而來(lái)?
使用sqlplus進(jìn)行Oracle數(shù)據(jù)庫(kù)批量自動(dòng)發(fā)布
業(yè)務(wù)復(fù)雜、數(shù)據(jù)龐大、應(yīng)用廣怎辦?了解下分布式事務(wù)的解決思路!
贛州銀行增強(qiáng)科技創(chuàng)新,實(shí)現(xiàn)一鍵災(zāi)備切換
網(wǎng)頁(yè)名稱:Docker操作實(shí)踐(3):Docker的操作詳解
網(wǎng)頁(yè)地址:http://aaarwkj.com/article12/pegdgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、網(wǎng)站制作、品牌網(wǎng)站制作、網(wǎng)站策劃、虛擬主機(jī)、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)