網(wǎng)絡(luò)維護:讓你快速入門Docker的30個命令行
2020-04-28 19:54 作者:admin
讓你快速入門Docker的30個命令行
本文我們列出了常見的docker命令,如果你已經(jīng)可以熟練的使用這些命令,則說明你docker技術(shù)已經(jīng)入門??梢越酉聛磉M一步深入學(xué)習(xí)了,比如容器編排K8S集群等。
容器和云是當(dāng)下最流行的技術(shù),這也是任何IT工作者都應(yīng)該掌握技能。如果你還沒有學(xué)過Docker,那么本文就是給你準(zhǔn)備的。本文中將拋開常見教程中的預(yù)先的一大堆理論說明,直接從上手操作開始。如果你學(xué)會了文中所列舉的命令,則證明已經(jīng)初步學(xué)會了docker入門技能,更多知識你可以在此基礎(chǔ)上再深入學(xué)習(xí)。
一、容器管理
容器,就是Linux被嚴(yán)格限制資源約束(cgroups),安全約束(Unix權(quán)限,capabilities,SELinux,AppArmor,seccomp等)和命名空間(PID,網(wǎng)絡(luò),mount,等等)限制出來的應(yīng)用。docker是最常見的一種容器技術(shù),Docker由Docker daemon(監(jiān)聽程序)、Docker鏡像(層)和Docker存儲(卷)和Docker網(wǎng)絡(luò)的構(gòu)成。一個容器就是指由docker運行時基于docker鏡像創(chuàng)建的一個docker實例
創(chuàng)建容器
要創(chuàng)建一個容器,使用create命令, [鏡像名]替換為需要運行的鏡像的名稱。
1. docker create [鏡像名]
當(dāng)按下enter按鍵時,Docker默認(rèn)會本地鏡像庫中搜索,如果沒有,會去訪問Docker Hub中搜索該鏡像,其下載本地系統(tǒng)并創(chuàng)建一個停止的容器。
比如,我們創(chuàng)建一個golang容器。
創(chuàng)建和運行容器
要創(chuàng)建和運行容器,請使用run命令,[鏡像名]替換為需要運行的鏡像的名稱將。該命令會從本地、Docker Hub中搜索指定的鏡像,并下載到本地,創(chuàng)建一個容器并啟動該容器。
1. docker run [鏡像名]
啟動停止的容器
要在啟動的一個容器(已停止),可以運行start命令。start命令后可以使用 [容器名]或容器ID替換??梢允褂胐ocker ps -a 查看本地容器列表(包括已停止的容器)。
1. docker start [容器名/ID]
停止容器
要停止一個運行中的容器,可以使用stop命令。容器停止后,可以用start命令將其啟動。
1. docker stop [容器名/ID]
重啟容器
要重啟一個容器,可以使用restart命令。命令可以將正在運行中的容器停止,然后再重新啟動。
1. docker restart [容器名/ID]
暫停容器
如果需要在正在運行的容器中臨時暫停該過程,可以使用pause命令。
1. docker pause [容器名/ID]
恢復(fù)暫停的容器
暫停容器后,可以使用unpause命令恢復(fù)已暫停的容器。
1. docker unpause [容器名/ID]
列出正在運行的容器
如果需要查看系統(tǒng)上正在運行的容器的列表,請運行以下命令。
1. docker ps 或者
2. docker container ls
上面的命令只會列出當(dāng)前正在運行的容器,如果要列出本機所有的容器,可以使用:
1. docker ps -a
2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3. fc6da76218aa golang "bash" 2 minutes ago Created kind_shirley
刪除容器
刪除一個容器,可以使用rm命令。要刪除容器,請確保容器已經(jīng)停止,否則會報錯。
1. docker rm [容器名/ID]
卸載容器
為了系統(tǒng)中刪除一個容器,可以運行以下命令。用要刪除的容器[容器名]的名稱或ID替換。
1. docker rm [容器名/ID]
容器操作
如果要對容器執(zhí)行操作,有兩種方法,分別是exec命令和attach命令。
exec命令,用來在運行的容器中執(zhí)行命令,比如:
1. docker exec -it [容器名/ID] /bin/bash
會打開一個偽終端,可以在終端中執(zhí)行命令。
attach命令,用來連接到正在運行中的容器:
1. docker attach --sig-proxy=false [容器名/ID]
attach到容器后,Ctrl+C可以退出,但是退出時,容器也會停止,為了退出時不影響容器運行,可以使用--sig-proxy=false參數(shù),這樣ctrl+C[D]后容器會繼續(xù)運行。
查看容器日志
要查看當(dāng)前容器的執(zhí)行情況,需要查看容器日志??梢杂胊ttach到容器,可直接查看。當(dāng)然更常用的方法是用logs命令:
1. docker logs [容器名/ID]
logs 可以附帶一些參數(shù):
· -f:表示實時打印容器日志,想象為tail -f
· --since 日期:表示打印制定日期以來的日志。
· --tail N數(shù)字:表示打印最后N條日志,想象為tail -n
查看容器的配置
容器的所有配置信息實際上是一個json文件,可以使用inspect命令,查看該容器的所有信息。
1. docker inspect [容器名/ID]
二、鏡像管理
容器鏡像是包含Docker容器的操作系統(tǒng),應(yīng)用程序和初始狀態(tài)的文件。可以從Dockerfiles構(gòu)建,也可以用已經(jīng)運行的容器創(chuàng)建。
在docker中,鏡像是一個標(biāo)準(zhǔn)的Tar包,包中包含了:
· Rootfs:容器上像操作系統(tǒng)的標(biāo)準(zhǔn)根(/)的目錄。例如,帶有/usr,/var,/home等的目錄。
· JSON文件:用來指定如何運行rootfs。例如,容器啟動時在rootfs中運行的命令或入口點;為容器設(shè)置的環(huán)境變量;容器的工作目錄;和其他一設(shè)置。
基于rootfs,其上面的json可以是互相依賴的,這樣就把docker鏡像分成了一個個的層:
以Dockerfile構(gòu)建鏡像
甲dockerfile是docker用來創(chuàng)建并建立一個容器的鏡像的命令的列表??梢酝ㄟ^運行以下命令從dockerfile構(gòu)建鏡像。
1. docker build -f [dockerfile路徑]
從容器構(gòu)建鏡像
還可以從正在運行的容器為基礎(chǔ)構(gòu)建鏡像。這也是快速備份正容器的快照的方法。
1. docker commit [容器名] [鏡像名]
從Docker Hub拉取鏡像
可使用以下命令將鏡像從Docker Hub下載到本地系統(tǒng)。
1. docker image pull [鏡像名]
將鏡像推送到Docker Hub
將容器鏡像推送到Docker Hub之前,必須在Docker Hub上創(chuàng)建一個帳戶,然后在終端登錄,在終端中運行docker login命令:
1. docker login
然后按要求輸入用戶名和密碼。認(rèn)證成功后,可以使用以下命令將鏡像推送到docker Hub。
1. docker image push [鏡像名]
列出容器鏡像
如果需要查看系統(tǒng)上的鏡像列表,請運行以下命令:
1. docker image ls
或者直接用
1. docker image
從系統(tǒng)中刪除鏡像
如果要從系統(tǒng)中刪除鏡像,請使用remove命令。
1. docker image remove [鏡像名]
三、卷管理
通過docker run或docker create命令可以將默認(rèn)的Docker Volumes附加到容器,這樣創(chuàng)建的數(shù)據(jù)在鏡像重建過程中保持不變。
創(chuàng)建Docker卷
要創(chuàng)建docker卷,可以對卷,使用create命令:
1. docker volume create [卷名]
刪除Docker卷
運行rm命令以刪除Docker卷。請記住,如果刪除一個卷,則將刪除該卷中存儲的所有數(shù)據(jù)。
1. docker volume rm [卷名]
查看卷信息
有時需要查看有關(guān)創(chuàng)建的卷的各種詳細(xì)信息,可以對卷使用inspect命令:
1. docker volume inspect [卷名]
列出所有Docker卷
如果需要查看系統(tǒng)上所有卷的列表,可以對卷使用ls命令:
1. docker volume ls
四、網(wǎng)絡(luò)管理
Docker網(wǎng)絡(luò)決定了容器之間如何相互連接以及如何與Internet連接??梢詾楦鞣N軟件應(yīng)用程序堆棧創(chuàng)建專用網(wǎng)絡(luò),以確保數(shù)據(jù)安全。
創(chuàng)建Docker網(wǎng)絡(luò)
docker network的create命令會在當(dāng)前系統(tǒng)上創(chuàng)建一個橋接網(wǎng)絡(luò),該橋接網(wǎng)絡(luò)將容器彼此連接并共享主機的網(wǎng)絡(luò)和Internet連接。
1. docker network create [網(wǎng)絡(luò)名]
將容器連接到網(wǎng)絡(luò)
為了將容器連接到新網(wǎng)絡(luò),請使用connect命令。
1. docker network connect [網(wǎng)絡(luò)名] [容器名]
斷開容器與網(wǎng)絡(luò)的連接
要斷開容器與網(wǎng)絡(luò)的連接,請使用disconnect命令。
1. docker network disconnect [網(wǎng)絡(luò)名] [容器名]
查看網(wǎng)絡(luò)信息
如果需要檢查網(wǎng)絡(luò)上的詳細(xì)信息,可以對網(wǎng)絡(luò)使用inspect命令
1. docker network inspect [網(wǎng)絡(luò)名]
列出所有網(wǎng)絡(luò)
可對網(wǎng)絡(luò)使用ls命令,會列出系統(tǒng)上的所有的docker網(wǎng)絡(luò)信息。
1. docker network ls
刪除網(wǎng)絡(luò)
從系統(tǒng)中刪除網(wǎng)絡(luò)。,可以對網(wǎng)絡(luò)使用rm命令。
1. docker network rm [網(wǎng)絡(luò)名]
五、總結(jié)
本文我們列出了常見的docker命令,如果你已經(jīng)可以熟練的使用這些命令,則說明你docker技術(shù)已經(jīng)入門。可以接下來進一步深入學(xué)習(xí)了,比如容器編排K8S集群等。
艾銻無限科技專業(yè):IT外包、企業(yè)外包、北京IT外包、桌面運維、弱電工程、網(wǎng)站開發(fā)、wifi覆蓋方案,網(wǎng)絡(luò)外包,網(wǎng)絡(luò)管理服務(wù),網(wǎng)管外包,綜合布線,服務(wù)器運維服務(wù),中小企業(yè)it外包服務(wù),服務(wù)器維保公司,硬件運維,網(wǎng)站運維服務(wù)
以上文章由北京艾銻無限科技發(fā)展有限公司整理