Docker常用的客戶端就是Docker命令行,因此掌握常用的命令也是非常必要的羔砾。但也不是要求我們對所有命令都爛熟于心望艺,那樣的時間成本也比較高,可以大致有個印象唯笙,需要的時候可以看看筆記文檔螟蒸、或者查查操作手冊。
通常情況下崩掘,可以通過以下兩種方式來查詢想要使用的命令詳情:
- 客戶端輸入
docker
或者docker --help
就能查看簡易版的命令行列表七嫌; - 訪問官方命令行文檔查閱詳盡版的命令行介紹;
如下是平時常用的命令及狀態(tài)關(guān)系圖:
一苞慢、管理命令
-
docker version
诵原,查看docker客戶端及服務(wù)端的版本信息; -
docker info
挽放,查看docker容器的詳細信息绍赛,除了如上版本信息,還有鏡像辑畦、容器數(shù)據(jù)卷吗蚌、容器網(wǎng)絡(luò)、Registry地址纯出、物理配置等信息蚯妇; -
docker --help
,查看命令幫助暂筝;
二箩言、鏡像命令
-
docker images
,查看本地所有頂層鏡像(top level)信息的命令乖杠,按照創(chuàng)建時間倒序展示 分扎;-
docker images -a
,查看本地所有鏡像信息的命令胧洒,包含中間層畏吓; -
docker images -q
,只顯示鏡像ID卫漫; -
docker images name:tag
菲饼,根據(jù)鏡像name:tag來查看詳細信息,不支持模糊搜索列赎;
-
-
docker history
宏悦,查看鏡像的歷史信息;-
docker history name:tag
,查看name:tag對應(yīng)鏡像的歷史信息饼煞;
-
-
docker search
源葫,鏡像搜索命令;-
docker search name
砖瞧,根據(jù)鏡像name進行搜索息堂; -
docker search --filter=stars=1000 name
,增加篩選條件块促,只查詢stars數(shù)量在1000以上的荣堰;
-
-
docker pull
,拉取鏡像竭翠;-
docker pull name:tag
振坚,根據(jù)name和tag拉取鏡像;
-
-
docker rmi
斋扰,移除鏡像渡八;-
docker rmi name:tag
,根據(jù)name和tag刪除鏡像传货,該鏡像如果已經(jīng)生成容器則不能刪除呀狼;如果同一個鏡像有多個tag,則只有當最后一個tag刪除時才會刪除鏡像损离; -
docker rmi -f name:tag
,強制刪除鏡像绝编,如論是否創(chuàng)建容器僻澎; -
docker rmi -f ${docker images -q}
,強制刪除本地所有鏡像十饥; -
docker rmi id
,根據(jù)鏡像ID刪除鏡像,會先刪除所有tag指攒,然后刪除鏡像刽漂;
-
-
docker build
,構(gòu)建鏡像蜒秤;-
docker build -f container_path/dockerfile -t name:tag .
汁咏,指定dockerfile構(gòu)建name:tag鏡像,注意最后有一個.符號作媚;
-
-
docker save
攘滩,導出鏡像,適用于需要將鏡像安裝到?jīng)]有網(wǎng)絡(luò)條件的服務(wù)器上的場景纸泡;-
docker save -o E:\httpd.zip httpd:latest
漂问,將本地倉庫中的httpd鏡像導入到指定目錄的指定文件中;
-
-
docker load
,從指定文件中加載鏡像蚤假,適用于在無網(wǎng)絡(luò)條件的服務(wù)器上使用栏饮;-
docker load -i E:\httpd.zip
,從指定目錄的指定文件中加載鏡像到本地倉庫中磷仰;
-
-
docker tag
袍嬉,給指定的鏡像打tag,常用于指定別名芒划,用于上傳到遠程鏡像倉庫場景冬竟;-
docker tag httpd:latest zhangxun/httd:latest
,一個鏡像兩個tag民逼,刪除任意一個都不會刪除鏡像泵殴,只有當所有tag都刪除了才會真正刪除鏡像;但是如果刪除鏡像ID拼苍,則會先刪除所有tag笑诅,再刪除鏡像; -
docker tag id zhangxun/httpd:latest
疮鲫,對指定ID的鏡像打tag吆你; -
docker tag id test.tecentcloudcr.com/project/httpd:latest
,在新tag前面加上registry地址俊犯,表示后續(xù)將該鏡像推送到指定的遠程倉庫妇多,而非官方的Docker Hub;
-
-
docker push
燕侠,將鏡像推送到遠程鏡像倉庫者祖;-
docker push zhangxun/httpd:latest
,默認是推送到Docker Hub的遠程倉庫绢彤,一定要加上用戶名前綴七问,否則無法推送,沒有用戶名前綴的都是官方鏡像茫舶; -
docker push test.tecentcloudcr.com/project/httpd:latest
械巡,推送到指定的遠程倉庫;
-
三饶氏、容器命令
-
docker run
讥耗,新建并啟動容器命令;-
docker run -it name
嚷往,以交互方式新建啟動容器葛账,此處name為image的,非容器的皮仁,此時容器name隨機籍琳; -
docker run --name newname name
菲宴,新啟動的容器指定名稱為newname; -
docker run -d name
趋急,以守護方式啟動容器喝峦; -
docker run -it -v local_path:container_path name
,-v是指掛載數(shù)據(jù)卷呜达,使得主機和容器地址掛載谣蠢; -
docker run --name name02 --volumes-from name01 name:tag
,啟動name02容器查近,共享name01數(shù)據(jù)卷眉踱,name01稱為數(shù)據(jù)卷容器; -
docker run -it --network=bridge name
霜威,啟動容器使用某個指定的網(wǎng)絡(luò)谈喳;
-
-
docker start
,啟動容器命令戈泼;-
docker start name
婿禽,這里的name是容器的name;
-
-
docker restart
大猛,重啟容器命令扭倾;-
docker restart name
,這里的name是容器的name挽绩;
-
-
docker stop
膛壹,停止容器命令; -
docker kill
唉堪,殺掉正在運行中的某個容器恢筝; -
docker rm
,移除容器巨坊; -
docker ps
,查看容器命令此改;-
docker ps -q
趾撵,只顯示容器ID; -
docker ps -a
共啃,顯示正在運行和歷史運行過的容器信息占调; -
docker ps -l -n num
,顯示最近創(chuàng)建的num個容器信息移剪;
-docker container ps
和docker container ls
的效果和docker ps
完全一樣究珊;
-
-
docker top
,查看容器中的進程信息纵苛;-
docker top name
剿涮,查看name容器中的進程信息言津; -
docker container top name
效果完全一樣。
-
-
docker stats
取试,查看容器的運行情況資源占用情況悬槽;-
docker stats name
,查看某個容器的運行情況瞬浓; -
docker container stats
初婆,效果完全一樣;
-
-
docker logs
猿棉, 查看容器中的日志磅叛;-
docker logs -f -t --tail=20 name
,查看name容器中的日志萨赁,-f表示跟蹤日志輸出弊琴,-t顯示時間戳,--tail n位迂,只顯示最新的n條日志信息访雪;
-
-
docker inspect
,查看docker容器的詳細信息掂林;-
docker inspect name
臣缀,查看某個容器的詳細信息;
-
-
docker attach
泻帮,進入容器精置;-
docker attach name
,進入正在運行的容器name的命令行锣杂,顯示該容器的運行信息脂倦;
-
-
docker exec
,進入容器并執(zhí)行命令元莫;-
docker exec -it name cmd
赖阻,以交互方式進入容器name,同時執(zhí)行cmd命令踱蠢;
-
-
docker commit
火欧,打包生成鏡像;-
docker commit -a="author" -m="commit info" name newname:tag
茎截,寫上作者苇侵、提交信息,并將當前容器打包為newname:tag的容器企锌;
-
-
docker cp
榆浓,容器與宿主機之間的數(shù)據(jù)拷貝;推薦使用數(shù)據(jù)卷的功能撕攒,所以這個命令實際中不常用陡鹃;-
docker cp name:/container_path local_path
烘浦,將name容器中container_path路徑下內(nèi)容cp到宿主機的local_path路徑下; -
docker cp local_path name:/container_path
杉适,將宿主機的local_path路徑下內(nèi)容cp到name容器中container_path路徑下
-
-
docker volume
谎倔,查看數(shù)據(jù)卷的信息;-
docker volume ls
猿推,查看所有存在的數(shù)據(jù)卷信息片习; -
docker volume inspect name
,查看數(shù)據(jù)卷的詳細信息蹬叭,比如對應(yīng)主機的路徑藕咏; -
docker volume create name
,創(chuàng)建一個name名稱的數(shù)據(jù)卷秽五;
-
-
docker network
孽查,網(wǎng)絡(luò)設(shè)置相關(guān);-
docker network ls
坦喘,查看宿主機上docker的網(wǎng)絡(luò)列表盲再; -
docker network inspect name
,根據(jù)name查看某個具體網(wǎng)絡(luò)的信息瓣铣; -
docker network create --driver bridge --subnet 172.17.0.0/16 --gateway 172.17.0.1 yourNetName
答朋,創(chuàng)建自定義網(wǎng)絡(luò),指定網(wǎng)絡(luò)類型棠笑、子網(wǎng)范圍以及網(wǎng)關(guān)地址梦碗;
-
-
docker export
,導出容器蓖救;-
docker export -o /root/docker/httpd-01.tar container-id
洪规,將某個容器(無論是否正在運行)導出到指定路徑的指定文件;
-
-
docker import
循捺,導入容器斩例;-
docker import /root/docker/httpd-01.tar - test/imagename:tag
,從指定路徑導入容器从橘,同時創(chuàng)建一個基于容器快照的鏡像樱拴;
-