Docker常用操作命令

Docker 三大組件

倉(cāng)庫(kù):存放各種各樣已經(jīng)打包好的Docker應(yīng)用
鏡像:按照Docker的規(guī)則制作的應(yīng)用。類似操作系統(tǒng)iso前计,通過(guò)其完成各種應(yīng)用的部署
容器:兑徘;利用鏡像創(chuàng)建容器:?jiǎn)?dòng)預(yù)先定義好的進(jìn)程與用戶交互同廉,對(duì)提 供服務(wù)。類似虛擬機(jī)本身(可以啟動(dòng)指郁,停止忙上,刪除),一個(gè)鏡像可以創(chuàng)建多個(gè)名字不同的容器闲坎。

容器

create

docker create 創(chuàng)建一個(gè)新容器..
docker create ubuntu:latest
用docker create 容器處于停止?fàn)顟B(tài)疫粥,需docker start +容器ID 啟動(dòng)

run

Docker run :創(chuàng)建一個(gè)新的容器并運(yùn)行一個(gè)命令
是docker create 和 docker start 組合

-name 指定容器名字
-i讓容器標(biāo)準(zhǔn)輸入打開,通常與 -t 同時(shí)使用腰懂;
-t為容器重新分配一個(gè)偽輸入終端
-it以交互式進(jìn)入容器
-d 指定容器運(yùn)行于前臺(tái)還是后臺(tái)
-p 指定容器暴露的端口
-e 指定環(huán)境變量
--env 從指定文件讀入環(huán)境變量
--link添加鏈接到另一個(gè)容器

#啟動(dòng)centos里面的bash并且進(jìn)行交互式操作
docker run -it centos /bin/bash

 #進(jìn)入該容器
docker exec -it ID /bin/bash

#進(jìn)入該容器梗逮,退出,容器會(huì)停止運(yùn)行
docker attach +ID /bin/bash 


 #沒(méi)有直接進(jìn)入該界面绣溜,其在后臺(tái)運(yùn)行
docker run -itd centos /bin/bash

#-name給容器自定義名字
docker run -itd --name web centos:latest bash 

#--rm讓容器退出后直接刪除,(不能和-d使用)
docker run --rm -it centos bash -c "sleep 30" 

#鏡像nginx:latest以后臺(tái)模式啟動(dòng)一個(gè)容器,將容器的80端口映射到主機(jī)的80端口,主機(jī)的目錄/data1映射到容器的/data
docker run -p 80:80 -v /data1:/data -d nginx:latest

attach/ exec

docker exec :進(jìn)入容器內(nèi)運(yùn)行命令
-d :分離模式: 在后臺(tái)運(yùn)行
-i :即使沒(méi)有附加也保持STDIN 打開
-t :分配一個(gè)偽終端

以root身份進(jìn)入該容器慷彤,并啟動(dòng)一個(gè)bash,可以連續(xù)執(zhí)行命令
docker exec -it 容器名/ID /bin/bash
exit 退出

docker attach進(jìn)入后臺(tái)運(yùn)行容器
docker attach 容器名/ID
Ctrl + q退出怖喻,容器也會(huì)停止

attach與exec主要區(qū)別
attach直接進(jìn)入容器啟動(dòng)命令的終端底哗,不會(huì)啟動(dòng)新的進(jìn)程.T退出容器會(huì)停止而exec不會(huì)
exec 在容器中打開新的終端,并且可以啟動(dòng)新的進(jìn)程

rm

docker rm :刪除一個(gè)或多少容器
-f :通過(guò)SIGKILL信號(hào)強(qiáng)制刪除一個(gè)運(yùn)行中的容器
-v :-v 刪除與容器關(guān)聯(lián)的卷

# 刪除所有已經(jīng)停止的容器
docker rm $(docker ps -qa)  

#批量刪除所有退出容器
docker rm  $(docker -qa -f status=exited)   

#殺死所有正在運(yùn)行的容器
docker kill $(docker ps -qa)   

ps

docker ps 列出容器正在運(yùn)行顯 = docker container ls
-a 顯示所有的容器罢防,包括未運(yùn)行的
-q 顯示容器 ID
--no-trunc:顯示完整id號(hào)(128位)默認(rèn)顯示16位
-s 顯示容器文件大小
-l 最近創(chuàng)建容器
通常使用
docker ps -qa

pause/unpause

讓容器暫停工作且不占用CPU
暫停
docker pause +names
恢復(fù)
docker unpause +names

start/stop/restart/kill

docker start +names
docker stop +names
docker kill +names #快速終止
docker restart +names

#無(wú)論容器因何種原因退出艘虎,都立即重啟  --restart=always
docker run -d -restart=always httpd

#如果啟動(dòng)進(jìn)程退出代碼非0唉侄,則重啟容器咒吐,最多重啟3次
docker run -d  --restart=on-failure:3  httpd

rename

docker rename 原容器名 新容器名

export/import

docker export導(dǎo)出容器,可以遷移到其他機(jī)器
docker import 將導(dǎo)入的文件属划。成為鏡像

將容器生成文件
docker export container_id>file.tar
cat file.tar|docker import – wu #生成wu鏡像

docker基本信息

顯示 容器 詳細(xì)信息
docker inspect 容器

獲取容器的運(yùn)行歷史信息
docker logs +容器
-f 跟蹤守護(hù)式容器的日志
-s 最新日志

eg:
docker run -d centos bash -c "while:;do ehco "123";sleep 1;done"
docker logs +ID #會(huì)顯示123
可用docker stop ID 終止掉

docker top 容器進(jìn)程
docker top + 容器
docker stats 容器占用系統(tǒng)資源情況
docker diff containerID
列出改動(dòng)了容器的存儲(chǔ)層
顯示一個(gè)鏡像的歷史
docker version #查看版本
docker info //查看docker系統(tǒng)的信息

鏡像

images

docker images : 列出本地鏡像 或 docker image ls (--help)
-a 顯示所有鏡像
-q 只顯示鏡像ID
--no-trunc :顯示完整的鏡像信息

#列出鏡像
docker images 

#顯示具體鏡像信息
docker images hello-world

#直接列出鏡像包含鏡像ID和倉(cāng)庫(kù)名
docker images --format "{{.ID}}: {{.Repository}}"

pull

docker pull : 從鏡像倉(cāng)庫(kù)中拉忍裉尽(下載)或者更新指定鏡像
格式:docker pull [選項(xiàng)] [Docker Registry地址]<倉(cāng)庫(kù)名>:<標(biāo)簽>

#從docker hub拉取ubuntu鏡像
docker pull ubuntu \\默認(rèn)下載最新
docker pull Ubuntu:14.04 \\指定下載版本

#從私有庫(kù)拉取ubuntu鏡像
docker pull 192.168.200.11:5000/ubuntu/14.04.3.tar:latest

#3 從hub.c.163.com倉(cāng)庫(kù)拉取鏡像
docker pull hub.c.163.com/library/mysql:latest
:latest 標(biāo)記最新版本
本地鏡像都保存在docker宿主機(jī)的/var/lib/docker目錄下

push

docker push + name 上傳鏡像到倉(cāng)庫(kù)(默認(rèn)上傳到DockerHub官方倉(cāng)庫(kù))

# 將本地鏡像test:latest 添加新的標(biāo)簽user/test:latest
docker tag  test:latest  user/test:latest 
docker push user/test:latest

save/load

docker save:把現(xiàn)有鏡像,導(dǎo)出一個(gè)文件
docker load:將該文件恢復(fù)本地鏡像

#把現(xiàn)有鏡像同眯,導(dǎo)出一個(gè)文件
docker save -o aming-centos.tar aming/centos(現(xiàn)有鏡像或ID都行)

#使用該文件恢復(fù)本地鏡像
docker load < aming-centos.tar

commit

運(yùn)行容器時(shí)绽昼,做的任何文件修改都會(huì)被記錄于容器存儲(chǔ)層里。且docker commit 须蜗,可以將容器的存儲(chǔ)層保存下來(lái)成為鏡像

增量的生成一個(gè)鏡像硅确。將容器保存為一個(gè)鏡像(可標(biāo)注鏡像名和作者信息)當(dāng)沒(méi)有鏡像名也成懸掛鏡像

docker commit :從容器創(chuàng)建一個(gè)新的鏡像。
格式:docker commit [選項(xiàng)] <容器ID或容器名> [<倉(cāng)庫(kù)名>[:<標(biāo)簽>]]
-a :提交的鏡像作者明肮;
-c :使用Dockerfile指令來(lái)創(chuàng)建鏡像菱农;
-m :提交時(shí)的說(shuō)明文字;
-p :在commit時(shí)柿估,將容器暫停循未。
-q 顯示Image ID
--no-trunc 顯示完整長(zhǎng)度Image ID

步驟

  1. 運(yùn)行容器
  2. 修改容器
  3. 將容器保存為新的鏡像

運(yùn)行ubuntu鏡像,并進(jìn)入交互模式
docker run –it centos –name wzs
yum –y install vim #在centos鏡像中添加vim工具
docker ps #查看容器名
docker commit +容器名 +自定義名
docker images #查看鏡像

#將容器保存為鏡像
docker commit \
    --author "Tao Wang <twang2218@gmail.com>" \
    --message "修改了默認(rèn)網(wǎng)頁(yè)" \
    webserver \
nginx:v2
#或者
docker commit -a “wzs” -m “install httpd” +ID(寫前幾位就行) +新容器名字
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末秫舌,一起剝皮案震驚了整個(gè)濱河市的妖,隨后出現(xiàn)的幾起案子绣檬,更是在濱河造成了極大的恐慌,老刑警劉巖嫂粟,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件娇未,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡赋元,警方通過(guò)查閱死者的電腦和手機(jī)忘蟹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)搁凸,“玉大人媚值,你說(shuō)我怎么就攤上這事』ぬ牵” “怎么了褥芒?”我有些...
    開封第一講書人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)嫡良。 經(jīng)常有香客問(wèn)我锰扶,道長(zhǎng),這世上最難降的妖魔是什么寝受? 我笑而不...
    開封第一講書人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任坷牛,我火速辦了婚禮,結(jié)果婚禮上很澄,老公的妹妹穿的比我還像新娘京闰。我一直安慰自己,他們只是感情好甩苛,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開白布蹂楣。 她就那樣靜靜地躺著,像睡著了一般讯蒲。 火紅的嫁衣襯著肌膚如雪痊土。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,696評(píng)論 1 312
  • 那天墨林,我揣著相機(jī)與錄音赁酝,去河邊找鬼。 笑死旭等,一個(gè)胖子當(dāng)著我的面吹牛酌呆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播辆雾,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼肪笋,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起藤乙,我...
    開封第一講書人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤猜揪,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后坛梁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體而姐,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年划咐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拴念。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡褐缠,死狀恐怖政鼠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情队魏,我是刑警寧澤公般,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站胡桨,受9級(jí)特大地震影響官帘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜昧谊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一刽虹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧呢诬,春花似錦涌哲、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)草姻。三九已至钓猬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間撩独,已是汗流浹背敞曹。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留综膀,地道東北人澳迫。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像剧劝,于是被迫代替她去往敵國(guó)和親橄登。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

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

  • 獲取Docker鏡像的命令 docker pull 命令格式如下: 選項(xiàng)可以通過(guò) docker pull --he...
    georgeguo閱讀 389評(píng)論 1 1
  • 想要改進(jìn)這個(gè)備忘單嗎?參見(jiàn)[貢獻(xiàn)](#貢獻(xiàn))部分拢锹! 目錄 [為何選擇Docker](#why-docker) [先...
    iOSDevLog閱讀 2,101評(píng)論 0 3
  • 0x01 核心概念 Docker鏡像類似于虛擬機(jī)鏡像谣妻,可以理解為一個(gè)面向Docker引擎的只讀模板,包含了文件系統(tǒng)...
    閑云逸心閱讀 4,734評(píng)論 0 9
  • 第四章 第二講 論基本的普世智慧及其與投資管理和商業(yè)的關(guān)系 1)基本的普世智慧規(guī)則是哪些卒稳? 1蹋半、如果你們只是記得一...
    木木me閱讀 302評(píng)論 0 1
  • 小編始終相信,積德雖無(wú)人見(jiàn)充坑,行善自有天知减江。所以,每天晚上捻爷,小編會(huì)推送一篇關(guān)于向善的文章辈灼,希望這個(gè)社會(huì)因?yàn)橛袗?ài)而更加...
    一個(gè)喜歡深夜讀書的女子閱讀 941評(píng)論 1 15