啟動(dòng)Docker容器

2018-09-23 18:21 更新

啟動(dòng)容器有兩種方式,一種是基于鏡像新建一個(gè)容器并啟動(dòng),另外一個(gè)是將在終止?fàn)顟B(tài)(stopped)的容器重新啟動(dòng)。

因?yàn)?Docker 的容器實(shí)在太輕量級(jí)了,很多時(shí)候用戶(hù)都是隨時(shí)刪除和新創(chuàng)建容器。

新建并啟動(dòng)

所需要的命令主要為 docker run。

例如,下面的命令輸出一個(gè) “Hello World”,之后終止容器。

$ sudo docker run ubuntu:14.04 /bin/echo 'Hello world'
Hello world

這跟在本地直接執(zhí)行 /bin/echo 'hello world' 幾乎感覺(jué)不出任何區(qū)別。

下面的命令則啟動(dòng)一個(gè) bash 終端,允許用戶(hù)進(jìn)行交互。

$ sudo docker run -t -i ubuntu:14.04 /bin/bash
root@af8bae53bdd3:/#

其中,-t 選項(xiàng)讓Docker分配一個(gè)偽終端(pseudo-tty)并綁定到容器的標(biāo)準(zhǔn)輸入上, -i 則讓容器的標(biāo)準(zhǔn)輸入保持打開(kāi)。

在交互模式下,用戶(hù)可以通過(guò)所創(chuàng)建的終端來(lái)輸入命令,例如

root@af8bae53bdd3:/# pwd
/
root@af8bae53bdd3:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

當(dāng)利用 docker run 來(lái)創(chuàng)建容器時(shí),Docker 在后臺(tái)運(yùn)行的標(biāo)準(zhǔn)操作包括:

  • 檢查本地是否存在指定的鏡像,不存在就從公有倉(cāng)庫(kù)下載
  • 利用鏡像創(chuàng)建并啟動(dòng)一個(gè)容器
  • 分配一個(gè)文件系統(tǒng),并在只讀的鏡像層外面掛載一層可讀寫(xiě)層
  • 從宿主主機(jī)配置的網(wǎng)橋接口中橋接一個(gè)虛擬接口到容器中去
  • 從地址池配置一個(gè) ip 地址給容器
  • 執(zhí)行用戶(hù)指定的應(yīng)用程序
  • 執(zhí)行完畢后容器被終止

啟動(dòng)已終止容器

可以利用 docker start 命令,直接將一個(gè)已經(jīng)終止的容器啟動(dòng)運(yùn)行。

容器的核心為所執(zhí)行的應(yīng)用程序,所需要的資源都是應(yīng)用程序運(yùn)行所必需的。除此之外,并沒(méi)有其它的資源??梢栽趥谓K端中利用 pstop 來(lái)查看進(jìn)程信息。

root@ba267838cc1b:/# ps
  PID TTY          TIME CMD
    1 ?        00:00:00 bash
   11 ?        00:00:00 ps

可見(jiàn),容器中僅運(yùn)行了指定的 bash 應(yīng)用。這種特點(diǎn)使得 Docker 對(duì)資源的利用率極高,是貨真價(jià)實(shí)的輕量級(jí)虛擬化。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)