docker 基本命令

docker 筆記(部分)

  • 查看docker的基本信息

docker version

docker info

docker image ls //查看鏡像

docker image rm imageName//刪除imageName

docker container run imageName //run imageName(如果image imageName不存在會去拉取)

docker container ls -a//查看所有container和其狀態(tài)

docker container stop containerName or ID //stop container

docker container rm ID //刪除container

docker container start ID//運行一個創(chuàng)建了但是停掉了的container

docker container ps -aq //列出所有container id

docker container stop $(docker container ps -aq) //停止所有的container

不能直接刪除一個run 的container磨取,但是可以-f 強制刪除

容器的兩種模式attached(前臺) detached(后臺)

docker image run -d -p 80:80 nginx //后臺運行detach

docker attach id //detach -->attach

docker container logs id 查看detach的 id的 logs

docker container logs -f id// 動態(tài)跟蹤

  • 交互:

docker exec -it ID sh(經(jīng)常用)//進入一個正在運行的容器內(nèi)部shell

docker container run -it containerName sh // 創(chuàng)建一個容器并且進入交互式模式

docker container top id

  • docker container run -d --p 80:80 --name 容器別名 nginx

上面命令執(zhí)行的細(xì)節(jié):

1.在本地查找是否有nginx這個image鏡像遗增,但是沒有發(fā)現(xiàn)去遠程的image registry查找nginx鏡像(默認(rèn)的registry是Docker Hub)袄秩,而且下載最新版本的nginx鏡像 (nginx:latest 默認(rèn))

2.基于nginx鏡像來創(chuàng)建一個新的容器,并且準(zhǔn)備運行

3.docker engine分配給這個容器一個虛擬IP地址

4.在宿主機上打開80端口并把容器的80端口轉(zhuǎn)發(fā)到宿主機上

5.啟動容器,運行指定的命令(這里是一個shell腳本去啟動nginx)

  • image獲取:

1.docker hub

docker image pull imageName:版本號//拉取image,版本號默認(rèn)為lasted

docker image inspect imageId // 查看image詳細(xì)信息.

docker image rm id(只有coantainer里面也rm 了才可以刪除,stop也不行,或者強制刪除)

2.離線導(dǎo)入導(dǎo)出

docker image save imagename -o filename//將image導(dǎo)出為一個文件

docker image load -i filename

3.dockerfile

docker image build -f dockerfilename -t imageName:tag .(.表示當(dāng)前目錄)

docekr image push userID/imageName:tag //push自己的image到docker hub.

docker image pull userID/imageName:tage//拉取user的版本為tag的image到本地.

  • docker commit

docker container commint containerID imageName:tag //將一個container 打包成一個image(用的少)

  • scratch

是一個空的鏡像亚享,什么都沒有

dockerfile

鏡像選擇原則

官方鏡像優(yōu)于非官方的鏡像,如果沒有官方鏡像绘面,則盡量選擇Dockerfile開源的

固定版本tag而不是每次都使用latest

盡量選擇體積小的鏡像

docker image build -f dockerFileNmae -t imageName .//將dockerFileName 構(gòu)建為名字為imageName的鏡像 .表示當(dāng)前路徑

  • FROM 選擇基礎(chǔ)鏡像

  • RUN 主要用于在Image里執(zhí)行指令欺税,比如安裝軟件侈沪,下載文件等。盡量把語句寫一個run里面

  • 文件復(fù)制和目錄操作,COPY ADD

把本地的一個文件復(fù)制到鏡像里晚凿,如果鏡像沒有目標(biāo)文件亭罪,則會自動創(chuàng)建。比如把本地的 hello.py 復(fù)制到 /app 目錄下歼秽。 /app這個鏡像不存在应役,則會自動創(chuàng)建。

ADD和COPY區(qū)別就是復(fù)制的是一個gzip等壓縮文件時燥筷,ADD會幫助我們自動去解壓縮文件箩祥。需要自動解壓縮的場合使用 ADD。

  • WORKDIR: 切換當(dāng)前鏡像的目錄肆氓,如果不存在就創(chuàng)建目錄
  • ENV ARG 環(huán)境變量

ENV 設(shè)置的變量可以在Image中保持袍祖,并在容器中的環(huán)境變量里

ARG 可以在鏡像build的時候動態(tài)修改value, 通過 --build-arg

  • 容器啟動命令CMD ENTRYPOINT:CMD可以用來設(shè)置容器啟動時默認(rèn)會執(zhí)行的命令。

注意:如果docker container run啟動容器時指定了其它命令做院,則CMD命令會被忽略并且如果定義了多個CMD盲泛,只有最后一個會被執(zhí)行。但是ENTRYPOINT一定會執(zhí)行**

  • DockerFile 技巧

1.合理使用緩存键耕,把改變的盡量放到后面。

2.合理使用 .dockerignore

3.鏡像的多階段構(gòu)建

4.盡量使用非root用戶

docker的存儲

Docker主要提供了兩種方式做數(shù)據(jù)的持久化

  • Data Volume, 由Docker管理, 持久化數(shù)據(jù)的最好方式
  • Bind Mount柑营,由用戶指定存儲的數(shù)據(jù)具體mount在系統(tǒng)什么位置

docker volume ls //查看volume DIRVER 和 VOLUMENAME

docker volume inspect VOLUMENAME //查看volume詳細(xì)信息

dcoker volume prune //一次性刪除所有volume

docekr container run -v localDir:containerDir imageName //把本地文件作為volume映射到容器屈雄。(如果兩個不同的容器映射同一個本地的文件,在A容器里面修改volume對B容器可見)

Bind Mount

用戶自己指定host機器的目錄mount到container中官套。但是bind mount在不同的宿主機系統(tǒng)時不可移植的酒奶,比如Windows和Linux的目錄結(jié)構(gòu)是不一樣的,bind mount所指向的host目錄也不能一樣奶赔。所以bind mount不能出現(xiàn)在Dockerfile中的原因惋嚎,因為這樣Dockerfile就不可移植了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末站刑,一起剝皮案震驚了整個濱河市另伍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绞旅,老刑警劉巖摆尝,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異因悲,居然都是意外死亡堕汞,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門晃琳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來讯检,“玉大人琐鲁,你說我怎么就攤上這事∪俗疲” “怎么了围段?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長挡毅。 經(jīng)常有香客問我蒜撮,道長,這世上最難降的妖魔是什么跪呈? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任段磨,我火速辦了婚禮,結(jié)果婚禮上耗绿,老公的妹妹穿的比我還像新娘苹支。我一直安慰自己,他們只是感情好误阻,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布债蜜。 她就那樣靜靜地躺著,像睡著了一般究反。 火紅的嫁衣襯著肌膚如雪寻定。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天精耐,我揣著相機與錄音狼速,去河邊找鬼。 笑死卦停,一個胖子當(dāng)著我的面吹牛向胡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播惊完,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼僵芹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了小槐?” 一聲冷哼從身側(cè)響起拇派,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎本股,沒想到半個月后攀痊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡拄显,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年苟径,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片躬审。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡棘街,死狀恐怖蟆盐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情遭殉,我是刑警寧澤石挂,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站险污,受9級特大地震影響痹愚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蛔糯,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一拯腮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蚁飒,春花似錦动壤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至爬早,卻和暖如春哼丈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背筛严。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工削祈, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人脑漫。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像咙崎,于是被迫代替她去往敵國和親优幸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

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

  • 課程鏈接:https://www.imooc.com/video/15640 Linux安裝docker命令 wg...
    三忌閱讀 244評論 0 0
  • Docker 筆記來源:https://docs.docker.com/ 和 《docker 容器和容器云》 此筆...
    WunHwan閱讀 425評論 0 2
  • 摘自《Docker 容器與容器云(第2版)》點擊查看我的博客原文 1. 從容器到容器云 1.1 云計算平臺 經(jīng)典云...
    蘇易北閱讀 2,169評論 0 6
  • 1褪猛、Docker簡介 開源的應(yīng)用容器引擎 打包環(huán)境和應(yīng)用到一個輕量級网杆,可移植的容器中,發(fā)布到任何 Linux 機器...
    Assassin007閱讀 285評論 0 0
  • docker概念 鏡像與容器 docker鏡像是一個統(tǒng)一文件系統(tǒng)伊滋,由一系列只讀層堆疊而成碳却。容器則是在只讀層堆頂加上...
    羽色云煙閱讀 738評論 0 0