Docker基礎(chǔ)

docker 命令詳解官方地址
https://docs.docker.com/engine/reference/
基本命令
docker version      ##查看docker版本信息
docker info         ##顯示docker的系統(tǒng)信息题画,包括鏡像和容器數(shù)量
docker --help       ##docker 幫助命令##
docker inspect -f "{{ .RestartCount }}"   容器    ##查看容器啟動(dòng)次數(shù)命令
docker inspect -f "{{ .State.StartedAt }}"  容器  ##查看容器最后一次啟動(dòng)時(shí)間
docker inspect -f "{{ .Config.Env }}" 容器        ##查看容器環(huán)境配置
鏡像命令
docker images                                      ##查看所有本機(jī)上的鏡像
docker search                                      ##搜索
docker search XXX --filter=stars=3000              ##搜索星大于3000的鏡像
docker pull XXX:TAG                                ##獲取鏡像
docker rmi XXX                                     ##刪除XXX鏡像,可以通過(guò)ID或者名稱刪除
docker rmi -f $(docker images -aq)                 ##刪除所有鏡像
容器命令
docker run --help
docker run [可選參數(shù)] images
#參數(shù)說(shuō)明
--name =“Name” 容器名字 XXX ,用來(lái)區(qū)分容器
-d                后臺(tái)方式運(yùn)行
-it               使用交互方式運(yùn)行母谎,進(jìn)入容器查看內(nèi)容
-p                指定容器的端口 -p 8080:8080
           -p ip:主機(jī)端口:容器端口 
           -p 主機(jī)端口:容器端口 (常用)
           -p  容器端口
-p                             隨機(jī)指定端口
docker stats      ##查看cpu的狀態(tài)
列出所有運(yùn)行的容器
docker ps 
                列出當(dāng)前正在運(yùn)行的容器
-a              ##列出所有運(yùn)行過(guò)的容器(包括曾經(jīng)運(yùn)行過(guò)的)
-n =急但?          ##顯示最近創(chuàng)建的容器
-q              ##只顯示容器的編號(hào)
退出容器
exit              ##直接容器停止并退出
ctrl + p + Q      ##容器不停止退出
刪除容器
docker rm   容器id                    ##刪除指定容器 
docker rm -f $(docker ps -aq)        ##刪除所有容器
docker ps  -a -q | xargs docker rm   ##刪除所有容器
啟動(dòng)和停止容器的操作
docker start 容器id/name      #啟動(dòng)指定容器
docker stop 容器id/name       #停止指定的容器
docker restart 容器id/name    #重啟指定容器
docker kill 容器id/name       #強(qiáng)制停止當(dāng)前容器
常用的其他命令
  • 后臺(tái)啟動(dòng)
docker run
-d         后臺(tái)啟動(dòng)容器(常見的坑,docker 容器使用后臺(tái)運(yùn)行篱昔,就必須要一個(gè)前臺(tái)進(jìn)程,docker發(fā)現(xiàn)沒(méi)有應(yīng)用,就會(huì)自動(dòng)停止)
  • 查看日志命令
docker logs --help
docker logs -f 容器id
docker logs -tf --tail 10 容器id  ##顯示最新10條命令
  • 查看容器中的進(jìn)程信息ps
  docker top 容器id
  • 查看鏡像原數(shù)據(jù)
docker inspect --help
docker inspect 容器id/name
  • 進(jìn)入當(dāng)前正在運(yùn)行的容器
#我們通常容器都是使用后臺(tái)方式運(yùn)行的膨桥,需要進(jìn)入容器蛮浑,修改一些配置
#命令
docker exec -it 容器id/name /bin/bash
docker exec -it 容器id/name /bin/sh
#exec 進(jìn)入容器后開啟一個(gè)新的終端,可以在里面操作(常用)

docker attach  容器id/name  
#進(jìn)入容器正在執(zhí)行的終端只嚣,不會(huì)啟動(dòng)新的進(jìn)程
  • 從容器內(nèi)拷貝文件到主機(jī)上
docker cp 容器id:容器內(nèi)路徑 目的主機(jī)的路徑
docker commit
  • docker commit
docker commit 提交容器成為一個(gè)新的副本
##命令和git原理類似
docker commit -m ="提交的描述信息 " -a="作者" 容器id/name 目標(biāo)鏡像名:[TAG]

docker容器數(shù)據(jù)卷
##方式一:直接使用命令掛載 -v
docker run -it -v  主機(jī)目錄:容器內(nèi)目錄
啟動(dòng)成功之后可以通過(guò) docker inspect 容器id/name 查掛載是否成功

##具名和匿名掛載
-v 容器內(nèi)路徑   ##匿名掛載
-v 卷名:容器內(nèi)路徑    #具名掛載
-v  /宿主機(jī)路徑:容器內(nèi)路徑 #指定路徑掛載
docker File
docker build --help
docker build -f 目錄地址 -t 文件名 .     #注意后邊的點(diǎn)不要漏掉了
#注意腳本指令都是大寫的
docker run -it --name docker02 --vlumes-from docker01 XXX/centos:latest(卷共享)
##容器卷的生命周期是一直持續(xù)到?jīng)]有人使用為止陵吸,但是一旦持久化到了本地,這個(gè)時(shí)候介牙,本地的數(shù)據(jù) 是不會(huì)刪除的
##指令
FROM                     #格式:FROM image或FROM image:tag 【Dockerfile中第一條指令必須是FROM指令壮虫,且在同一個(gè)Dockerfile中創(chuàng)建多個(gè)鏡像時(shí),可以使用多個(gè)FROM指令】

MAINTAINER               #格式為MAINTAINER user_name user_email 【指定維護(hù)者信息RUN】

RUN                      #格式為RUN command或 RUN["EXECUTABLE","PARAM1","PARAM2".....]【前者在shell終端中運(yùn)行命令环础,/bin/sh -c command囚似,例如:/bin/sh -c "echo hello";后者使用exec執(zhí)行线得,指定其他運(yùn)行終端使用RUN["/bin/bash","-c","echo hello"] 饶唤,每條RUN指令將當(dāng)前的鏡像基礎(chǔ)上執(zhí)行指令,并提交為新的鏡像贯钩,命令較長(zhǎng)的時(shí)候可以使用\來(lái)?yè)Q行 】
                   
ADD                      #格式:ADD src dest 【該命令將復(fù)制指定本地目錄中的文件到容器中的dest中募狂,src可以是是一個(gè)絕對(duì)路徑,也可以是一個(gè)URL或一個(gè)tar文件角雷,tar文件會(huì)自動(dòng)解壓為目錄】

WORKDIR                  #格式: WORKDIR /path 【為后續(xù)的RUN CMD ENTRYPOINT指定配置工作目錄祸穷,可以使用多個(gè)WORKDIR指令,若后續(xù)指令用的是相對(duì)路徑勺三,則會(huì)基于之前的命令指定路徑】

VOLUME                   #格式: VOLUME ["/data"] 【作用是創(chuàng)建在本地主機(jī)或其他容器可以掛載的數(shù)據(jù)卷雷滚,用來(lái)存放數(shù)據(jù)】

EXPOSE                   #格式: EXPOSE port [port2,port3,...] 【例如EXPOSE 80這條指令告訴Docker服務(wù)器暴露80端口,供容器外部連接使用吗坚。在啟動(dòng)容器的使用使用-P祈远,Docker會(huì)自動(dòng)分配一個(gè)端口和轉(zhuǎn)發(fā)指定的端口,使用-p可以具體指定使用哪個(gè)本地的端口來(lái)映射對(duì)外開放的端口】

CMD                      #支持三種格式:
                                  # CMD ["executable","param1","param2"]商源,使exec執(zhí)行车份,這是推薦的方。
                                  # CMD command param1 param2 在/bin/sh中執(zhí)行
                                  # CMD ["param1","param2"] 提供給ENTERYPOINT的默認(rèn)參數(shù)
                         #CMD用于指定容器啟動(dòng)時(shí)執(zhí)行的命令牡彻,每個(gè)Dockerfile只能有一個(gè)CMD命令扫沼,多個(gè)CMD命令只執(zhí)行最后一個(gè)。若容器啟動(dòng)時(shí)指定了運(yùn)行的命令讨便,則會(huì)覆蓋掉CMD中指定的命令

ENTRYPOINT               #格式有兩種:
                                 #ENTRYPOINT ["executable","param1","param2"]
                                 #ENTRYPOINT command param1,param2 會(huì)在shell中執(zhí)行浴井。
                         #用于配置容器啟動(dòng)后執(zhí)行的命令命锄,這些命令不能被docker run提供的參數(shù)覆蓋项郊。和CMD一樣芒粹,每個(gè)Dockerfile中只能有一個(gè)ENTRYPOINT,當(dāng)有多個(gè)時(shí)最后一個(gè)生效(我們運(yùn)行容器時(shí)追加的命令废菱,是直接拼接在ENTRYPOINT 命令后面的)
USER                     #格式:USER username 【指定容器運(yùn)行時(shí)的用戶名或UID技矮,后續(xù)的RUN也會(huì)使用指定的用戶抖誉。要臨時(shí)使用管理員權(quán)限可以使用sudo。在USER命令之前可以使用RUN命令創(chuàng)建需要的用戶衰倦。例如:RUN groupadd -r docker && useradd -r -g docker docker】
ONBUILD                  #格式:ONBUILD [INSTRUCTION] 【該配置指定當(dāng)所創(chuàng)建的鏡像作為其他新建鏡像的基礎(chǔ)鏡像時(shí)所執(zhí)行的指令】
COPY                     #格式:COPY src desc 【復(fù)制本地主機(jī)src目錄或文件到容器的desc目錄袒炉,desc不存在時(shí)會(huì)自動(dòng)創(chuàng)建】
ENV                      #格式:EVN key value 【用于指定環(huán)境變量,這些環(huán)境變量樊零,后續(xù)可以被RUN指令使用我磁,容器運(yùn)行起來(lái)之后,也可以在容器中獲取這些環(huán)境變量】

docker build             
#創(chuàng)建好Dockerfile之后驻襟,通過(guò)docker build命令來(lái)創(chuàng)建鏡像夺艰,該命令首先會(huì)上傳Dockerfile文件給Docker服務(wù)器端,服務(wù)器端將逐行執(zhí)行Dockerfile中定義的指令沉衣。
#通常建議放置Dockerfile的目錄為空目錄郁副。另外可以在目錄下創(chuàng)建.dockerignore文件,讓Docker忽略路徑下的文件和目錄豌习,這一點(diǎn)與Git中的配置很相似存谎。

#通過(guò) -t 指定鏡像的標(biāo)簽信息,例如:docker build -t regenzm/first_image . 【"."指定的是Dockerfile所在的路徑】

docker 網(wǎng)絡(luò)
查看所有的docker網(wǎng)絡(luò)
docker network ls

##網(wǎng)絡(luò)模式
bridge         #橋接docker(默認(rèn))
none           #不配置網(wǎng)絡(luò)
host           #和宿主機(jī)共享網(wǎng)絡(luò)
container      #容器網(wǎng)絡(luò)聯(lián)通(用的少肥隆,局限很大)
自定義docker網(wǎng)絡(luò)
好處:不同的集群使用不同的網(wǎng)絡(luò)既荚,保證集群是安全和健康的
docker network --help
docker network create --help


docker網(wǎng)絡(luò)聯(lián)通
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市巷屿,隨后出現(xiàn)的幾起案子固以,更是在濱河造成了極大的恐慌,老刑警劉巖嘱巾,帶你破解...
    沈念sama閱讀 211,348評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異诫钓,居然都是意外死亡旬昭,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門菌湃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)问拘,“玉大人,你說(shuō)我怎么就攤上這事惧所≈枳” “怎么了?”我有些...
    開封第一講書人閱讀 156,936評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵下愈,是天一觀的道長(zhǎng)纽绍。 經(jīng)常有香客問(wèn)我,道長(zhǎng)势似,這世上最難降的妖魔是什么拌夏? 我笑而不...
    開封第一講書人閱讀 56,427評(píng)論 1 283
  • 正文 為了忘掉前任僧著,我火速辦了婚禮,結(jié)果婚禮上障簿,老公的妹妹穿的比我還像新娘盹愚。我一直安慰自己,他們只是感情好站故,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,467評(píng)論 6 385
  • 文/花漫 我一把揭開白布皆怕。 她就那樣靜靜地躺著,像睡著了一般西篓。 火紅的嫁衣襯著肌膚如雪端逼。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,785評(píng)論 1 290
  • 那天污淋,我揣著相機(jī)與錄音顶滩,去河邊找鬼。 笑死寸爆,一個(gè)胖子當(dāng)著我的面吹牛礁鲁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播赁豆,決...
    沈念sama閱讀 38,931評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼仅醇,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了魔种?” 一聲冷哼從身側(cè)響起析二,我...
    開封第一講書人閱讀 37,696評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎节预,沒(méi)想到半個(gè)月后叶摄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,141評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡安拟,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,483評(píng)論 2 327
  • 正文 我和宋清朗相戀三年蛤吓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片糠赦。...
    茶點(diǎn)故事閱讀 38,625評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡会傲,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拙泽,到底是詐尸還是另有隱情淌山,我是刑警寧澤,帶...
    沈念sama閱讀 34,291評(píng)論 4 329
  • 正文 年R本政府宣布顾瞻,位于F島的核電站泼疑,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏朋其。R本人自食惡果不足惜王浴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,892評(píng)論 3 312
  • 文/蒙蒙 一脆炎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧氓辣,春花似錦秒裕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至体斩,卻和暖如春梭稚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背絮吵。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工弧烤, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蹬敲。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓暇昂,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親伴嗡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子急波,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,492評(píng)論 2 348

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

  • 本文主要轉(zhuǎn)載自:docker常用命令詳解本文只記錄docker命令在大部分情境下的使用,如果想了解每一個(gè)選項(xiàng)的細(xì)節(jié)...
    YDDMAX_Y閱讀 192評(píng)論 1 0
  • 本文介紹Docker基本的操作命令,包括對(duì)鏡像容器的獲取瘪校,查看澄暮,保存,啟停等操作阱扬。 1. 檢查docker的版本:...
    木木與呆呆閱讀 416評(píng)論 0 6
  • attach: 將標(biāo)準(zhǔn)輸入(stdin)與標(biāo)準(zhǔn)輸出(stdout)連接到正在運(yùn)行的容器 build: ...
    信仰與初衷閱讀 819評(píng)論 1 1
  • 鏡和容器的對(duì)應(yīng)關(guān)系:鏡——類容器——對(duì)象 一泣懊、鏡像操作 1、查看有哪些鏡像下載下來(lái)的 2价认、搜索某一個(gè)鏡像 3嗅定、下載...
    小月半會(huì)飛閱讀 1,152評(píng)論 0 0
  • docker pull命令 如果docker pull命令沒(méi)有攜帶地址,會(huì)從docker hub的網(wǎng)站上下載用踩。 d...
    ShootHzj閱讀 1,182評(píng)論 0 1