01-Docker入門篇章

Step1:了解Docker

開源的容器平臺:Golang https://github.com/docker/docker
Docker Hub: 用于分享观蓄、管理 Docker 容器的 Docker SaaS 平臺 -- Docker Hub Docker 使用客戶端-服務(wù)器 (C/S) 架構(gòu)模式厢呵。Docker 客戶端會與 Docker 守護(hù)進(jìn)程進(jìn)行通信。Docker 守護(hù)進(jìn)程會處理復(fù)雜繁重的任務(wù),例如建立燎窘、運行轧坎、發(fā)布你的 Docker 容器。Docker 客戶端和守護(hù)進(jìn)程可以運行在同一個系統(tǒng)上颜曾,當(dāng)然你也可以使用 Docker 客戶端去連接一個遠(yuǎn)程的 Docker 守護(hù)進(jìn)程纠拔。Docker 客戶端和守護(hù)進(jìn)程之間通過 socket 或者 > RESTful API 進(jìn)行通信。

安裝

我的是centos7.2安裝請參考官方的Install的文字文檔

Step2:Docker基本命令

查看
$docker search centos
下載
$docker pull centos
使用阿里云的鏡像 阿里云鏡像

- 打開管理界面
- 我的加速器
  $sudo cp -n /lib/systemd/system/docker.service /etc/systemd/system/docker.service
  $sudo sed -i "s|ExecStart=/usr/bin/docker daemon|ExecStart=/usr/bin/$docker daemon --registry-> mirror=https://***.mirror.aliyuncs.com|g" /etc/systemd/system/docker.service
  $sudo systemctl daemon-reload
  $sudo service docker restart

Step3:創(chuàng)建容器

  #docker run centos
  #docker run 鏡像(如果沒有這個鏡像泛豪,就回去自動下載它)
  創(chuàng)建容器并執(zhí)行一個命令
  #docker run centos ls
  查看正在運行的容器
  #docker ps
  查看所有得容器
  #docker ps -a(-all)

Step4:管理容器

  *基于一個鏡像可以創(chuàng)建很多容器
  創(chuàng)建容器加名字
  #docker run --name demo-server centos /bin/echo 'demo'
  查看容器
  #docker ps -a
  移除容器
  #docker rm (容器ID|name)
  查看日志
  #docker logs demo-server(容器名字)

官方的命令文檔:Doc

Step5:帶互動的容器

  Docker Run
  使用方法:  docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  創(chuàng)建一個新的容器

  #參數(shù)optios:
  
   帶互動的容器吼渡,可以進(jìn)入容器運行內(nèi)部:
   -i, --interactive                 Keep STDIN open even if not attached
    大家都知道tty是什么東西了吧
   -t, --tty                         Allocate a pseudo-TTY
  
  官方一個互動案例:

我的


官方案例:

Step6:后臺運行一個容器

  運行后臺:
  -d, --detach                      Run container in background and print container ID    
  停止運行
  #docker stop (id|name)
  刪除所有已經(jīng)停止的容器
  #docker rm $(docker ps -a -q)

Step7:退出容器后滓侍,重新進(jìn)入可交互的容器

退出容器
#exit
退出后重新進(jìn)入可以交互的container
#docker attach (id|name)

Step8:基于當(dāng)前centos的nodejs環(huán)境進(jìn)行提交容器

##添加
[官方文檔](https://docs.docker.com/engine/reference/commandline/commit/)
當(dāng)我們修改了容器后,我們想把這個作為一個新的鏡像進(jìn)行發(fā)布
這里我把centos安裝了nodejs環(huán)境的作為一個images進(jìn)行提交

#!當(dāng)然如果你想學(xué)習(xí)Nodejs懂更,那么在我的博客中請轉(zhuǎn)移到Nodejs分類目錄;

#docker commit -a zhaojunlike -m 'test-commit nodejs' nodejs-test zhaojunlike/nodejs-test:latest
#

移除

官方文檔

#docker rmi [id|name]

文檔部分提交鏡像說明

Usage:  docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

Create a new image from a container's changes

Options:
 -a, --author string    Author (e.g., "John Hannibal Smith <hannibal@a-team.com>")
 -c, --change value     Apply Dockerfile instruction to the created image (default [])
     --help             Print usage
 -m, --message string   Commit message
 -p, --pause            Pause container during commit (default true)

查看鏡像

#docker images
接下來我們使用自己的鏡像
#docker run zhaojunlike/nodejs-test node -e 'console.log(1)'
輸出結(jié)果:1
#

Step9:如何使用Dockerfile 創(chuàng)建鏡像

官方文檔

Dockerfile中刹帕,我們使用指令去指定一些操作的配置闯狱,建議對比官方文檔,沒毛病

指令說明:

  • FROM:
- FROM <image>
- FROM <image>:<tag>
- FROM <image>@<digest>
  • MAINTAINER
作者
  • RUN
-  RUN <command> (shell form, the command is run in a shell, which by default is /bin/sh -c on Linux or cmd /S /C on Windows)
-  RUN ["executable", "param1", "param2"] (exec form)
  • CMD

指令太多了慎璧,官方文檔每一個解釋都相當(dāng)完善

現(xiàn)在我寫好了一個Dockerfile文件我們?nèi)?gòu)建他
官方文檔

由于個人愚昧床嫌,我貼了一端安裝nginx的代碼

#FROM 基于餒個鏡像進(jìn)行創(chuàng)建跨释,這里我們基于我們已經(jīng)安裝好的centos
 FROM centos
 MAINTAINER zhaojunlike
 #當(dāng)然這里肯定不是這么寫的,我只是測試一下
 RUN yum install zlib-devel pcre-devel gcc wget make -y
 RUN wget http://nginx.org/download/nginx-1.10.2.tar.gz
 RUN mkdir /home/tmp
 RUN tar -zxf /nginx-1.10.2.tar.gz -C /home/tmp
 RUN cd /home/tmp/nginx-1.10.2 && ./configure --prefix=/usr/local/nginx1.10.2/
 RUN cd /home/tmp/nginx-1.10.2 &&  make && make install
 RUN /usr/local/nginx1.10.2/sbin/nginx

然后進(jìn)行鏡像構(gòu)建

#[root@localhost myDocker]# docker build --tag zhaojunlike:centos-nginx-install .
之所以是. docker會自動去當(dāng)前目錄找Dockerfile這個文件

當(dāng)中的過程就是把sh全部丟進(jìn)去了厌处。



在build成功后我們可以

#docker images 就可以看到我們的鏡像了

but這些是什么鬼鳖谈,可能是我在build很多次都不成功產(chǎn)生的cache
我要去rmi掉

# docker rm $(docker ps -a -q)

然后我們看看餒
docker真心爽



媽媽再也不容擔(dān)心,環(huán)境安裝麻煩啦阔涉。
不過接下來得問題缆娃,是讓我自己去訪問這個鏡像里面得nginx web,那么下一篇應(yīng)該是如何守護(hù)進(jìn)程跑容器,如何進(jìn)行網(wǎng)絡(luò)管理了吧

附頁

docker hub 成千上萬的容器洒敏,大部分都是其他開發(fā)者上傳的龄恋,我們也去上傳一個。

官方文檔

具體工作請看完文檔吧

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末凶伙,一起剝皮案震驚了整個濱河市郭毕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌函荣,老刑警劉巖显押,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異傻挂,居然都是意外死亡乘碑,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進(jìn)店門金拒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來兽肤,“玉大人,你說我怎么就攤上這事绪抛∽收。” “怎么了?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵幢码,是天一觀的道長笤休。 經(jīng)常有香客問我,道長症副,這世上最難降的妖魔是什么店雅? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮贞铣,結(jié)果婚禮上闹啦,老公的妹妹穿的比我還像新娘。我一直安慰自己辕坝,他們只是感情好窍奋,可當(dāng)我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般费变。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上圣贸,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天挚歧,我揣著相機與錄音,去河邊找鬼吁峻。 笑死滑负,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的用含。 我是一名探鬼主播矮慕,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼啄骇!你這毒婦竟也來了痴鳄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤缸夹,失蹤者是張志新(化名)和其女友劉穎痪寻,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體虽惭,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡橡类,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了芽唇。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片顾画。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖匆笤,靈堂內(nèi)的尸體忽然破棺而出研侣,到底是詐尸還是另有隱情,我是刑警寧澤疚膊,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布义辕,位于F島的核電站,受9級特大地震影響寓盗,放射性物質(zhì)發(fā)生泄漏灌砖。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一傀蚌、第九天 我趴在偏房一處隱蔽的房頂上張望基显。 院中可真熱鬧,春花似錦善炫、人聲如沸撩幽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽窜醉。三九已至宪萄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間榨惰,已是汗流浹背拜英。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留琅催,地道東北人居凶。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像藤抡,于是被迫代替她去往敵國和親侠碧。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,860評論 2 361

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

  • 轉(zhuǎn)載自 http://blog.opskumu.com/docker.html 一缠黍、Docker 簡介 Docke...
    極客圈閱讀 10,510評論 0 120
  • 一弄兜、Docker 簡介 Docker 兩個主要部件:Docker: 開源的容器虛擬化平臺Docker Hub: 用...
    R_X閱讀 4,393評論 0 27
  • 0. 前言 docker是什么?docker是用GO語言開發(fā)的應(yīng)用容器引擎嫁佳,基于容器化挨队,沙箱機制的應(yīng)用部署技術(shù)≥锿可...
    sessionboy閱讀 3,862評論 2 49
  • Docker — 云時代的程序分發(fā)方式 要說最近一年云計算業(yè)界有什么大事件盛垦?Google Compute Engi...
    ahohoho閱讀 15,548評論 15 147
  • 今天說到跑步蔬充,我都沒臉看了蝶俱,之前懷孕時,天天晚飯后堅持散步半個鐘饥漫,結(jié)果產(chǎn)后就像一堆爛泥一樣癱瘓在那里一動不動榨呆,腹部...
    咿呀作語閱讀 264評論 2 3