Understand images & containers of Docker

在使用 Docker 之前我們通常會使用 Vagrantbuild & share 開發(fā)環(huán)境。每個 Vagrant package 都是一個完整的虛擬主機(jī)诀艰,一個 package 通常有幾個 G雳锋。共享和更新幾個 G 的 package 是很一件昂貴的事情黄绩。

在 Docker 世界中將 Vagrant 中的 package 拆成 containers & images,這兩個概念支撐這整個 Docker 世界玷过。

  • container:一個剝掉殼的最小化 Linux爽丹。
  • image:一個 software,它將會被加載到container中辛蚊。

當(dāng)運行 docker run helloworld 時粤蝎,docker 會做如下三件事情:

  1. 在本地查找 hello-world software image
  2. 如果找不到,從 Docker Hub 上下載 image
  3. image 加載到 container 中并 run

通常我們使用 docker-machine 管理 container袋马,使用 docker 來運行image初澎。images 通過 Docker Hub 來共享。

(如果你是 Github 的使用者虑凛,你將會很輕松的上手 Docker Hub碑宴。關(guān)于 Docker Hub 本文暫不做介紹)

Docker 中的 container 在哪?

container 是一個剝了殼的桑谍,最基礎(chǔ)的 Linux延柠。在 Mac OS 中我們使用 docker-machine 來管理 container

創(chuàng)建 container

創(chuàng)建一個名為 devcontainerdocker-machine create --driver virtualbox dev

查看本地的 containers

?  mydockerbuild  docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM
default            virtualbox   Running   tcp://192.168.99.101:2376
dev                virtualbox   Running   tcp://192.168.99.100:2376

查看 container 狀態(tài)

?  mydockerbuild  docker-machine active
dev
?  mydockerbuild  docker-machine status dev
Running

連接到 container

?  mydockerbuild  docker-machine ssh dev
                        ##         .
                  ## ## ##        ==
               ## ## ## ## ##    ===
           /"""""""""""""""""\___/ ===
      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~~ ~ /  ===- ~~~
           \______ o           __/
             \    \         __/
              \____\_______/
 _                 _   ____     _            _
| |__   ___   ___ | |_|___ \ __| | ___   ___| | _____ _ __
| '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
| |_) | (_) | (_) | |_ / __/ (_| | (_) | (__|   <  __/ |
|_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
Boot2Docker version 1.8.2, build master : aba6192 - Thu Sep 10 20:58:17 UTC 2015
Docker version 1.8.2, build 0a8c2e3
er@dev:~$ uname -a
Linux dev 4.0.9-boot2docker #1 SMP Thu Sep 10 20:39:20 UTC 2015 x86_64 GNU/Linux

Docker 中的 image 是什么?

docker run helloworld 運行一個image

此時 docker 正在 run 一個名為 hello-world 的應(yīng)用程序锣披,它將會打印如下結(jié)果:

?  sts  docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world

535020c3e8ad: Pull complete
af340544ed62: Pull complete
Digest: sha256:a68868bfe696c00866942e8f5ca39e3e31b79c1e50feaee4ce5e28df2f051d5c
Status: Downloaded newer image for hello-world:latest

Hello from Docker.
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:

此時的 hello-world 程序在 docker 中成為一個 image贞间,它被 docker 放在 container 上面運行贿条。

docker images 查看本地的 images

?  mydockerbuild  docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
docker-whale        latest              1935900e3705        5 hours ago         274 MB
ubuntu              latest              91e54dfb1179        6 weeks ago         188.4 MB
hello-world         latest              af340544ed62        8 weeks ago         960 B
docker/whalesay     latest              fb434121fc77        4 months ago        247 MB

總結(jié)

images & containers 是 Docker 世界中最基本的概念。image 即 software增热,container 即運行 software 用的操作系統(tǒng)整以。
在 Docker 世界中,我們大部分時間都在和 Docker 中的 images 打交道钓葫。docker 采用類似 git 的機(jī)制來管理和分享 images悄蕾,當(dāng)我們使用 docker 創(chuàng)建分享 images 時票顾,如同使用 git 一樣础浮。
Docker Hub 的存在,如同 Githubgit 的存在一樣奠骄,讓 docker images 分享變得非常容易豆同。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市含鳞,隨后出現(xiàn)的幾起案子影锈,更是在濱河造成了極大的恐慌,老刑警劉巖蝉绷,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸭廷,死亡現(xiàn)場離奇詭異,居然都是意外死亡熔吗,警方通過查閱死者的電腦和手機(jī)辆床,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來桅狠,“玉大人讼载,你說我怎么就攤上這事≈械” “怎么了咨堤?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長漩符。 經(jīng)常有香客問我一喘,道長,這世上最難降的妖魔是什么嗜暴? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任津滞,我火速辦了婚禮,結(jié)果婚禮上灼伤,老公的妹妹穿的比我還像新娘触徐。我一直安慰自己,他們只是感情好狐赡,可當(dāng)我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布撞鹉。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鸟雏。 梳的紋絲不亂的頭發(fā)上享郊,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機(jī)與錄音孝鹊,去河邊找鬼炊琉。 笑死,一個胖子當(dāng)著我的面吹牛又活,可吹牛的內(nèi)容都是我干的苔咪。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼柳骄,長吁一口氣:“原來是場噩夢啊……” “哼团赏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起耐薯,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤舔清,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后曲初,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體体谒,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年臼婆,在試婚紗的時候發(fā)現(xiàn)自己被綠了抒痒。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡目锭,死狀恐怖评汰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情痢虹,我是刑警寧澤被去,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站奖唯,受9級特大地震影響惨缆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜丰捷,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一坯墨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧病往,春花似錦捣染、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽榕栏。三九已至,卻和暖如春蕾各,著一層夾襖步出監(jiān)牢的瞬間扒磁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工式曲, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留妨托,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓吝羞,卻偏偏與公主長得像兰伤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子脆贵,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,779評論 2 354

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