Docker常用命令

一、幫助命令

查看docker版本信息命令

docker version

查看docker相關(guān)信息命令

docker info

docker幫助命令

docker --help

二、鏡像命令

一個(gè)鏡像可以生成多個(gè)容器

1屯换、列出本地主機(jī)上的鏡像

docker images

同一個(gè)倉庫源可以有多個(gè)TAG政敢,代表這個(gè)倉庫源的不同的版本,我們使用REPOSITORY:TAG來定義不同的鏡像唯灵。如果不指定一個(gè)鏡像的版本標(biāo)簽,默認(rèn)使用最新版本的鏡像隙轻。例如使用ubuntu埠帕,docker會(huì)默認(rèn)使用ubuntu:lastest鏡像。

該命令后面可以加參數(shù)玖绿,例如

(1)列出本地所有的鏡像(包含中間映像層)

docker images -a

(2)只顯示正在運(yùn)行的鏡像ID

docker images -q

(3)顯示鏡像的摘要信息

docker images --digests

(4)顯示完整的鏡像信息

docker images --no-trunc

以上參數(shù)可組合使用

2敛瓷、查找鏡像

命令如下:

docker search xxx

其中“xxx”代表鏡像名稱

執(zhí)行該命令,docker會(huì)從https://hub.docker.com上面查找你搜索的鏡像


該命令后面可以加一些參數(shù)

docker search --no-trunc

上圖命令會(huì)顯示更多的鏡像信息斑匪。

(2)列出收藏?cái)?shù)(STARS)不小于指定值的鏡像

docker search -s

上圖該命令表示查找STARS數(shù)不小于30的鏡像

(3)只列出automated build類型的鏡像

docker search --automated

3呐籽、下載鏡像

docker pull xxx

其中“xxx”代表鏡像名字,默認(rèn)拉取的是最新版本的鏡像

若想拉取某個(gè)版本的鏡像蚀瘸,可以用下面的命令

docker pull [IMAGES_NAME]:[TAG]

比如拉取tomcat7.0版本的鏡像狡蝶,可以用這個(gè)命令

docker pull tomcat:7.0

4、刪除鏡像

docker rmi [IMAGES_NAME]

(1)刪除單個(gè)鏡像

docker rmi -f [IMAGE_ID]

(2)刪除多個(gè)鏡像

docker rmi -f 鏡像名1:TAG 鏡像名2:TAG

(3)刪除全部鏡像

docker rmi -f $(docker images -qa)

注:參數(shù)“-f”代表強(qiáng)制

5贮勃、提交鏡像

提交容器副本使之成為一個(gè)新的鏡像

docker commit -m="提交的描述信息" -a="作者" 容器ID 目標(biāo)鏡像名:[標(biāo)簽名]

案例:

(1)從hub上下載tomcat鏡像到本地并成功運(yùn)行

docker run -it -p 8080:8080 tomcat

其中“-p”代表主機(jī)端口:docker容器端口

-P:隨機(jī)分配端口
-i:交互
-t:終端

(2)故意刪除上一步鏡像生產(chǎn)tomcat容器的文檔

(3)即當(dāng)前的tomcat運(yùn)行實(shí)例是一個(gè)沒有文檔內(nèi)容的容器贪惹,以它為模板commit一個(gè)沒有doc的tomcat新鏡像“atguigu/mytomcat”



此時(shí)新commit的鏡像沒有doc文件

三、容器命令

1寂嘉、新建并啟動(dòng)容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

其中OPTIONS說明如下:

--name:“容器新名字”:為容器指定一個(gè)名稱(別稱)奏瞬;
-d:后臺(tái)運(yùn)行容器,并返回容器ID泉孩,即啟動(dòng)守護(hù)式容器硼端;
-i:以交互模式運(yùn)行容器,通常與-t同時(shí)使用寓搬;
-t:為容器重新分配一個(gè)偽輸入終端显蝌,通常與-i同時(shí)使用;
-P:隨機(jī)端口映射;
-p:指定端口映射曼尊,有以下四種格式:
? ip:hostPort:containerPort
? ip::containerPort
? hostPort:containerPort
? containerPort

(1)啟動(dòng)交互式容器

docker run -it IMAGE_NAME /bin/bash

可通過echo $SHELL查看系統(tǒng)當(dāng)前使用的shell

(2)啟動(dòng)守護(hù)式容器

docker run -d IMAGE_NAME /bin/bash

運(yùn)行該命令后酬诀,再執(zhí)行docker ps -a進(jìn)行查看,會(huì)發(fā)現(xiàn)容器已經(jīng)退出骆撇。

這就涉及到docker的運(yùn)行機(jī)制了瞒御,docker容器后臺(tái)運(yùn)行,就必須有一個(gè)前臺(tái)進(jìn)程神郊。

容器運(yùn)行的命令如果不是通過一直掛起的命令(如top肴裙,tail命令)執(zhí)行,則容器就會(huì)自動(dòng)退出涌乳。

比如web容器蜻懦,以nginx為例,正常情況下夕晓,我們配置啟動(dòng)服務(wù)只需要啟動(dòng)響應(yīng)的service即可(service nginx start)宛乃,但這樣做,nginx為后臺(tái)進(jìn)程模式運(yùn)行蒸辆,就導(dǎo)致docker前臺(tái)沒有運(yùn)行的應(yīng)用征炼,這樣容器后臺(tái)啟動(dòng)后,會(huì)立即自殺躬贡。所以最佳的解決方案是谆奥,將你要運(yùn)行的程序以前臺(tái)進(jìn)程的形式運(yùn)行。

2拂玻、列出當(dāng)前所有正在運(yùn)行的容器

docker ps [OPTIONS]

OPTIONS參數(shù)說明:

-a:列出當(dāng)前所有正在運(yùn)行的容器 + 歷史上運(yùn)行過的容器
-l:顯示最近創(chuàng)建的容器
-n:顯示最近n個(gè)創(chuàng)建的容器
-q:靜默模式酸些,只顯示容器編號(hào)
--no-trunc:不截?cái)噍敵?/p>

3、退出容器

退出容器有兩種方式

(1)容器停止退出

exit

(2)容器不停止退出

ctrl + P + Q

4檐蚜、啟動(dòng)容器

docker start 容器ID或容器名

5魄懂、重啟容器

docker restart 容器ID或容器名

6、停止容器

docker stop 容器ID或容器名

7熬甚、強(qiáng)制停止容器

docker kill 容器ID或容器名

8逢渔、刪除已停止的容器

docker rm 容器ID或容器名

一次性刪除多個(gè)容器(下面兩條命令都可以肋坚,隨便選一條執(zhí)行就行)

docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm

9、查看容器日志

docker logs -f -t --tail 5 容器ID

其中參數(shù)-t代表加入時(shí)間戳,-f代表跟隨最新的日志打印缀程,--tail代表數(shù)字顯示最后幾條

10妻坝、查看容器內(nèi)運(yùn)行的進(jìn)程

docker top 容器ID

11、查看容器內(nèi)部的細(xì)節(jié)

docker inspect 容器ID

12铣鹏、進(jìn)入正在運(yùn)行的容器并以命令行交互

(1)exec進(jìn)入

docker exec -it 容器ID bashShell

(2)attach進(jìn)入

docker attach 容器ID

(3)上述兩者的區(qū)別

attach:直接進(jìn)入容器啟動(dòng)命令的終端敷扫,不會(huì)啟動(dòng)新的進(jìn)程

exec:是在容器中打開新的終端,并且可以啟動(dòng)新的進(jìn)程

13、從容器內(nèi)拷貝文件到主機(jī)上

docker cp 容器ID:容器內(nèi)路徑 目的主機(jī)路徑

四葵第、容器數(shù)據(jù)卷

1绘迁、概念

docker容器產(chǎn)生的數(shù)據(jù),如果不通過docker commit生成新的鏡像卒密,使得數(shù)據(jù)作為鏡像的一部分保存下來缀台,那么當(dāng)容器刪除后,數(shù)據(jù)自然也就沒了哮奇。為了在docker中能保存數(shù)據(jù)膛腐,我們使用卷。

容器數(shù)據(jù)卷可以讓容器中的數(shù)據(jù)持久化鼎俘,容器間繼承并共享數(shù)據(jù)哲身。

卷就是目錄或文件,存在于一個(gè)或多個(gè)容器中贸伐,由docker掛載到容器勘天,但不屬于聯(lián)合文件系統(tǒng),因此能夠繞過Union File System提供一些用于持久存儲(chǔ)或共享數(shù)據(jù)的特性棍丐。

卷的設(shè)計(jì)目的就是數(shù)據(jù)的持久化误辑,完全獨(dú)立于容器的生存周期,因此docker不會(huì)在容器刪除時(shí)刪除其掛載的數(shù)據(jù)卷歌逢。

2巾钉、數(shù)據(jù)卷的特點(diǎn):

(1)數(shù)據(jù)卷可在容器之間共享或重用數(shù)據(jù)

(2)卷中的更改可以直接生效

(3)數(shù)據(jù)卷中的更改不會(huì)包含在鏡像的更新中

(4)數(shù)據(jù)卷的生命周期一直持續(xù)到?jīng)]有容器使用它為止

3、容器內(nèi)添加數(shù)據(jù)卷

直接命令添加

docker run -it -v /宿主機(jī)絕對路徑目錄:/容器內(nèi)目錄 鏡像名

若想加讀寫權(quán)限限制秘案,可以用下面命令執(zhí)行

docker run -it -v /宿主機(jī)絕對路徑目錄:/容器內(nèi)目錄:ro 鏡像名

其中“ro”代表只讀模式

4砰苍、容器與宿主機(jī)之間數(shù)據(jù)共享

5、容器停止退出后阱高,主機(jī)修改數(shù)據(jù)會(huì)同步到容器中

五赚导、本地鏡像發(fā)布到阿里云

1、本地鏡像發(fā)布到阿里云流程

2赤惊、鏡像生成的方法

從容器創(chuàng)建一個(gè)新的鏡像(docker commit命令)


3吼旧、將本地鏡像推送到阿里云

(1)準(zhǔn)備好本地鏡像



(2)創(chuàng)建阿里云鏡像倉庫

訪問阿里云容器鏡像服務(wù),地址:https://cr.console.aliyun.com/cn-shanghai/instances/repositories

在默認(rèn)實(shí)例中選擇鏡像倉庫未舟,點(diǎn)擊創(chuàng)建鏡像倉庫圈暗,在彈出的窗口中,填寫相關(guān)信息

然后選擇下一步裕膀,選擇本地倉庫员串,最后點(diǎn)擊創(chuàng)建鏡像倉庫

4、將鏡像推送到阿里云registry

sudo docker login --username="阿里云賬號(hào)" registry.cn-hangzhou.aliyuncs.com
sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/"命名空間"/"倉庫名稱":[鏡像版本號(hào)]
sudo docker push registry.cn-hangzhou.aliyuncs.com/"命名空間"/"倉庫名稱":[鏡像版本號(hào)]

根據(jù)實(shí)際鏡像信息替換示例中的[ImageId]和[鏡像版本號(hào)]參數(shù)昼扛。

5寸齐、從阿里云Registry中拉取鏡像

sudo docker pull registry.cn-hangzhou.aliyuncs.com/"命名空間"/"倉庫名稱":[鏡像版本號(hào)]

注:以上命令中的"命名空間"和"倉庫名稱"根據(jù)自己的賬號(hào)填寫。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市渺鹦,隨后出現(xiàn)的幾起案子扰法,更是在濱河造成了極大的恐慌,老刑警劉巖毅厚,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件迹恐,死亡現(xiàn)場離奇詭異,居然都是意外死亡卧斟,警方通過查閱死者的電腦和手機(jī)殴边,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來珍语,“玉大人锤岸,你說我怎么就攤上這事“逡遥” “怎么了是偷?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長募逞。 經(jīng)常有香客問我蛋铆,道長,這世上最難降的妖魔是什么放接? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任刺啦,我火速辦了婚禮,結(jié)果婚禮上纠脾,老公的妹妹穿的比我還像新娘玛瘸。我一直安慰自己,他們只是感情好苟蹈,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布糊渊。 她就那樣靜靜地躺著,像睡著了一般慧脱。 火紅的嫁衣襯著肌膚如雪渺绒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天菱鸥,我揣著相機(jī)與錄音宗兼,去河邊找鬼。 笑死采缚,一個(gè)胖子當(dāng)著我的面吹牛针炉,可吹牛的內(nèi)容都是我干的挠他。 我是一名探鬼主播扳抽,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了贸呢?” 一聲冷哼從身側(cè)響起镰烧,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎楞陷,沒想到半個(gè)月后怔鳖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡固蛾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年结执,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片艾凯。...
    茶點(diǎn)故事閱讀 38,716評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡献幔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出趾诗,到底是詐尸還是另有隱情蜡感,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布恃泪,位于F島的核電站郑兴,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏贝乎。R本人自食惡果不足惜情连,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望览效。 院中可真熱鬧蒙具,春花似錦、人聲如沸朽肥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽衡招。三九已至篱昔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間始腾,已是汗流浹背州刽。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留浪箭,地道東北人穗椅。 一個(gè)月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像奶栖,于是被迫代替她去往敵國和親匹表。 傳聞我的和親對象是個(gè)殘疾皇子门坷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容