1. 程式人生 > >(四)Docker 容器

(四)Docker 容器

p地址 ted names 主機配置 pre 裏的 需要 nta sym

簡單的說,容器是獨立運行的一個或一組應用,以及它們的運行態環境。 如果把鏡像看成面向對象中的 類 的話,那麽容器就是 類 的實例化 對象。

容器


啟動容器

啟動容器有兩種方式,一種是基於鏡像新建一個容器並啟動, 另外一個是將在終止狀態(stopped)的容器重新啟動。

通過docker run 命令來啟動容器。

查看運行幫助:

$ sudo docker run --help

下面的命令輸出一個 “Hello World”,之後終止容器。

$ sudo docker run ubuntu /bin/echo "hello world"
hello world

這跟在本地直接執行 /bin/echo ‘hello world‘

幾乎感覺不出任何區別。只不過,這裏的輸入是由通過 ubuntu 容器執行。

下面進入到ubuntu容器中。

$ sudo docker run -t -i ubuntu /bin/bash
root@543a324ea841:/#
  • -t 選項讓Docker分配一個偽終端(pseudo-tty)並綁定到容器的標準輸入上。

  • -i 則讓容器的標準輸入保持打開。

此時,你已經在ubuntu容器中了。這是一個獨立的ubuntu 系統。通過 root@543a324ea841 標識可以看出。

當利用docker run 來創建容器時,Docker在後臺運行的標準操作包括:

  • 檢查本地是否存在指定的鏡像,不存在就從公有倉庫下載
  • 利用鏡像創建並啟動一個容器
  • 分配一個文件系統,並在只讀的鏡像層外面掛載一層可讀寫層
  • 從宿主主機配置的網橋接口中橋接一個虛擬接口到容器中去
  • 從地址池配置一個IP地址給容器
  • 執行用戶指定的應用程序
  • 執行完畢後容器被終止

退出容器,可以使用exit命令。

root@543a324ea841:/# exit  
exit
fnngj@ubuntu:~$
守護狀態運行

更多的時候,需要讓 Docker容器在後臺以守護態(Daemonized)形式運行。

$ sudo docker run -d ubuntu /bin/echo "hello docker"
839fee657bfe893b9b2c76aebbb2b620efefc091a04fd90b1c5eda82b9e36730
  • -d 表示容器以守護態(Daemonized)形式運行。
查看容器

通過 docker ps 命令查看當前運行的所有容器。

$ sudo docker ps -a

CONTAINER ID    IMAGE         COMMAND                  CREATED         STATUS                         PORTS    NAMES
839fee657bfe    ubuntu        "/bin/echo ‘hello do…"   About a minute ago Exited (0) About a minute ago        musing_golick
543a324ea841    ubuntu        "/bin/bash"              6 minutes ago   Exited (0) About a minute ago           relaxed_shannon
578639b30db9    ubuntu        "/bin/bash"              7 minutes ago   Exited (0) 7 minutes ago                sad_ritchie
9797d4bcb1f6    ubuntu        "/bin/echo ‘hello wo…"   9 minutes ago   Exited (0) 9 minutes ago                cranky_keller
4d2cd63632c7    hello-world   "/hello"                 20 minutes ago  Exited (0) 20 minutes ago               keen_stallman

獲取容器的輸出信息

通過docker logs命令。

$ sudo docker logs musing_golick
hello docker

$ sudo docker logs 839fee657bfe
hello docker

musing_golick 為容器的 NAMES , 839fee657bfe 為容器的ID。通過 docker ps -a 命令查看。

停止容器

可以使用docker stop來終止一個運行中的容器。

$ sudo docker stop 0fc49a885fc2
重動容器

可以使用docker start 重動容器。

$ sudo docker start 0fc49a885fc2
刪除容器

通過 docker rm 刪除指定的容器。

sudo docker rm 0fc49a885fc2

0fc49a885fc2 為容器有 ID 。

(四)Docker 容器