Docker入門到實(shí)戰(zhàn)-基礎(chǔ)

1、Docker與虛擬機(jī)的優(yōu)缺點(diǎn)

2、Docker基本架構(gòu)

Docker是一個(gè)構(gòu)建、發(fā)布、運(yùn)行分布式應(yīng)用的平臺(tái),包括三大核心概念:

鏡像(Image)

Docker鏡像(Image)類似于虛擬機(jī)鏡像,可以將它理解為一個(gè)面向Docker引擎的只讀模板,包含了文件系統(tǒng)。例如:一個(gè)鏡像可以只包含一個(gè)完整的Ubuntu操作系統(tǒng)環(huán)境,可以把它稱為一個(gè)Ubuntu鏡像。鏡像是創(chuàng)建Docker容器的基礎(chǔ)。

容器(Container)

Docker利用容器來運(yùn)行和隔離應(yīng)用。容器是從鏡像創(chuàng)建的應(yīng)用運(yùn)行實(shí)例,可以將其啟動(dòng)、開始、停止、刪除,而這些容器都是相互隔離、互不可見的。鏡像自身是只讀的。容器從鏡像啟動(dòng)的時(shí)候,Docker會(huì)在鏡像的最上層創(chuàng)建一個(gè)可寫層,鏡像本身保持不變。

倉(cāng)庫(kù)(Repository)

Docker倉(cāng)庫(kù)(Repository)類似于代碼倉(cāng)庫(kù),是Docker集中存放鏡像文件的場(chǎng)所。

3、Docker基本操作

1、docker attach 進(jìn)入容器,Docker自帶命令,可以查看容器內(nèi)部的持續(xù)輸出 ?

2、docker build命令:構(gòu)建鏡像用的命令,參數(shù):

-c:控制cpu使用

-f::選擇Dockerfile名稱

-m:設(shè)置構(gòu)建內(nèi)存上限

-q:不顯示構(gòu)建過程的一些信息

-t:為構(gòu)建的鏡像打上標(biāo)簽

3、docker commit命令:把當(dāng)前容器提交打包為鏡像,但一般情況下,更加推薦使用Dockerfile構(gòu)建鏡像。參數(shù):

-a:添加作者信息,方便維護(hù)。

-c:修改Dockerfile指令,目前支持的指令有(CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDUR)

-m:類似git commit -m這樣,提交修改信息。

-p:暫停正在commit的操作。

4、docker cp命令:復(fù)制文件到宿主機(jī),用于在宿主機(jī)和容器之間移動(dòng)復(fù)制文件。

? ?docker cp <containerId>:/file/path/within/container /host/path/target?

? ?例:docker cp ubuntu:/home/c_test.txt ? ~/c_test.txt

5、docker create命令:創(chuàng)建容器

sudo docker create -it ubuntu:latest

docker create命令新建的容器處于停止?fàn)顟B(tài),可以使用 docker start命令來 ? ? ? ? ? ? ? ??啟動(dòng)它。docker start contaninerID (docker start ?b79222953c82)

6、docker diff 命令:查看容器的變化。docker diff contaninerID?

7、docker events 命令:實(shí)時(shí)輸出Docker服務(wù)器端的事件,包括容器的創(chuàng)建、啟動(dòng)、關(guān)閉。使用說明:

docker events -f container=<name or id>

8、docker exec 命令:進(jìn)入容器的命令。參數(shù):

-d 分離模式:在后臺(tái)運(yùn)行的命令

-i 交互模式.

-t 分配一個(gè)TTY

-u 制定用戶和用戶組。

例:docker exec -it ubuntu bash

使用exec進(jìn)入容器內(nèi)部如同進(jìn)入一臺(tái)機(jī)器一樣,且可以使用exit退出。

9、docker export導(dǎo)出容器,導(dǎo)出本地儲(chǔ)存的容器

docker export -o containerName.tar contianerName?

docker export containerName > containerName.tar

查看所有容器:

sudo docker ps -a

導(dǎo)出容器:

sudo docker export b79222953c82 > test_ubuntu

10、docker history 查看鏡像歷史。(例:docker history hello-world)

11、docker images 查看本地鏡像。

-a:顯示所有鏡像,包括中間鏡像。

-f:過濾顯示。

-q:只顯示ID。

12、docker import 導(dǎo)入鏡像。

docker import /path/to/exampleContainer.tgz

13、docker info命令,查看Docker信息。

14、docker inspect命令,查看各項(xiàng)詳細(xì)信息。

? ?docker inspect 2cb0d9787c4d(IMAGEID)

15、docker kill命令 殺死容器

16、docker stop命令 停止容器?docker stop b79222953c82(CONTAINERID)

stop和kill的區(qū)別在于docker stop命令給容器中的進(jìn)程發(fā)送SIGTERM信號(hào),默認(rèn)行為是會(huì)導(dǎo)致容器退出。

17、docker start命令,啟動(dòng)容器。docker start b79222953c82(CONTAINERID)

18、docker load命令,導(dǎo)入鏡像;docker load命令的作用是導(dǎo)入使用docker save導(dǎo)出的鏡像。

docker load < hello-world.tar

19、docker save命令,導(dǎo)出鏡像,后面可以接多個(gè)鏡像名稱。

?docker save -o hello-world.tar hello-world

20、docker login命令。登錄到Registry,Registry是Docker公司提供的鏡像倉(cāng)庫(kù)。

21、docker logout命令。使用該命令登出倉(cāng)庫(kù)。

22、docker logs命令。顯示容器日志。

docker logs b79222953c82(CONTAINERID)

23、docker network命令,管理網(wǎng)絡(luò)。

24、docker node命令 管理節(jié)點(diǎn)。

25、docker pause命令,暫停容器。docker pause b79222953c82(CONTAINERID)

26、docker port命令,查看容器端口

27、docker ps 命令,查看本地容器信息

-a:顯示全部容器,包括各種狀態(tài)的容器,只要存在就顯示。

-f:添加過濾條件。

-n:顯示最近創(chuàng)建的幾個(gè)容器

-l:顯示最近創(chuàng)建的一個(gè)

-q:只顯示ID

-s:顯示容器大小

28、docker pull命令 拉取鏡像。docker pull -a 會(huì)把所有標(biāo)簽拉取到本地。

docker pull ubuntu

29、docker push命令,把本地的鏡像推送到鏡像倉(cāng)庫(kù)。

30、docker rename命令,重命名容器,在不改變?nèi)萜鳡顟B(tài)的情況下重命名容器。

31、 docker restart命令,重啟容器(不是重啟Docker ,重啟Docker可以使用systemctl restart docker命令或者service docker restart命令重啟Docker)。

docker restart<Container1><Container2>命令可以重啟多個(gè)容器。

32、docker rm命令:刪除容器的命令,直接使用docker rm <Container Name/Container ID>

-f ?--force=false 強(qiáng)行終止并刪除一個(gè)運(yùn)行中的容器。

-l --link=false 刪除容器的連接,但保留容器。

-v --volumes=false 刪除容器掛載的數(shù)據(jù)卷。

33、docker rmi命令:刪除鏡像的命令,刪除鏡像時(shí),要確保沒有容器在使用該鏡像,也就沒有容器是使用該鏡像啟動(dòng)的,才可以刪除,否則會(huì)抱錯(cuò)。

34、docker run命令:運(yùn)行容器的命令,運(yùn)行命令會(huì)啟動(dòng)一個(gè)容器進(jìn)程,并為這個(gè)進(jìn)程分配器獨(dú)占的文件系統(tǒng)、網(wǎng)絡(luò)資源和以此進(jìn)程為根基的進(jìn)程組。




最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容