replace '操作系統' as '作業系統'

pull/25/head
a504082002 2014-11-20 00:09:22 +08:00
parent 6b168bced1
commit 3741994aef
8 changed files with 10 additions and 10 deletions

View File

@ -1,7 +1,7 @@
## Docker 鏡像 ## Docker 鏡像
Docker 鏡像就是一個只讀的模板。 Docker 鏡像就是一個只讀的模板。
例如:一個鏡像可以包含一個完整的 ubuntu 作系統環境,裏面僅安裝了 Apache 或用戶需要的其它應用程序。 例如:一個鏡像可以包含一個完整的 ubuntu 作系統環境,裏面僅安裝了 Apache 或用戶需要的其它應用程序。
鏡像可以用來創建 Docker 容器。 鏡像可以用來創建 Docker 容器。

View File

@ -1,6 +1,6 @@
# Docker 容器 # Docker 容器
容器是 Docker 又一核心概念。 容器是 Docker 又一核心概念。
簡單的說,容器是獨立運行的一個或一組應用,以及它們的運行態環境。對應的,虛擬機可以理解為模擬運行的一整套作系統(提供了運行態環境和其他系統環境)和跑在上面的應用。 簡單的說,容器是獨立運行的一個或一組應用,以及它們的運行態環境。對應的,虛擬機可以理解為模擬運行的一整套作系統(提供了運行態環境和其他系統環境)和跑在上面的應用。
本章將具體介紹如何來管理一個容器,包括創建、啟動和停止等。 本章將具體介紹如何來管理一個容器,包括創建、啟動和停止等。

View File

@ -25,7 +25,7 @@ $ sudo docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp py
上面的命令加載主機的 `/src/webapp` 目錄到容器的 `/opt/webapp` 上面的命令加載主機的 `/src/webapp` 目錄到容器的 `/opt/webapp`
目錄。這個功能在進行測試的時候十分方便,比如用戶可以放置一些程序到本地目錄中,來查看容器是否正常工作。本地目錄的路徑必須是絕對路徑,如果目錄不存在 Docker 會自動為你創建它。 目錄。這個功能在進行測試的時候十分方便,比如用戶可以放置一些程序到本地目錄中,來查看容器是否正常工作。本地目錄的路徑必須是絕對路徑,如果目錄不存在 Docker 會自動為你創建它。
*註意Dockerfile 中不支持這種用法,這是因為 Dockerfile 是為了移植和分享用的。然而,不同作系統的路徑格式不一樣,所以目前還不能支持。 *註意Dockerfile 中不支持這種用法,這是因為 Dockerfile 是為了移植和分享用的。然而,不同作系統的路徑格式不一樣,所以目前還不能支持。
Docker 掛載數據卷的默認權限是讀寫,用戶也可以通過 `:ro` 指定為只讀。 Docker 掛載數據卷的默認權限是讀寫,用戶也可以通過 `:ro` 指定為只讀。
``` ```

View File

@ -2,7 +2,7 @@
可以使用 `docker pull` 命令來從倉庫獲取所需要的鏡像。 可以使用 `docker pull` 命令來從倉庫獲取所需要的鏡像。
下面的例子將從 Docker Hub 倉庫下載一個 Ubuntu 12.04 作系統的鏡像。 下面的例子將從 Docker Hub 倉庫下載一個 Ubuntu 12.04 作系統的鏡像。
``` ```
$ sudo docker pull ubuntu:12.04 $ sudo docker pull ubuntu:12.04
Pulling repository ubuntu Pulling repository ubuntu

View File

@ -9,7 +9,7 @@ $ sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
$ sudo sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io $ sudo sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io
``` ```
如果使用作系統自帶包安裝 Docker目前安裝的版本是比較舊的 0.9.1。 要安裝更新的版本,可以通過使用 Docker 源的方式。 如果使用作系統自帶包安裝 Docker目前安裝的版本是比較舊的 0.9.1。 要安裝更新的版本,可以通過使用 Docker 源的方式。
### 通過Docker源安裝最新版本 ### 通過Docker源安裝最新版本
要安裝最新的 Docker 版本,首先需要安裝 apt-transport-https 支持,之後通過添加源來安裝。 要安裝最新的 Docker 版本,首先需要安裝 apt-transport-https 支持,之後通過添加源來安裝。

View File

@ -4,12 +4,12 @@ Docker 是一個開源項目,誕生於 2013 年初,最初是 dotCloud 公司
Docker 自開源後受到廣泛的關注和討論,以至於 dotCloud 公司後來都改名為 Docker Inc。Redhat 已經在其 RHEL6.5 中集中支持 DockerGoogle 也在其 PaaS 產品中廣泛應用。 Docker 自開源後受到廣泛的關注和討論,以至於 dotCloud 公司後來都改名為 Docker Inc。Redhat 已經在其 RHEL6.5 中集中支持 DockerGoogle 也在其 PaaS 產品中廣泛應用。
Docker 項目的目標是實現輕量級的作系統虛擬化解決方案。 Docker 項目的目標是實現輕量級的作系統虛擬化解決方案。
Docker 的基礎是 Linux 容器LXC等技術。 Docker 的基礎是 Linux 容器LXC等技術。
在 LXC 的基礎上 Docker 進行了進一步的封裝,讓用戶不需要去關心容器的管理,使得操作更為簡便。用戶操作 Docker 的容器就像操作一個快速輕量級的虛擬機一樣簡單。 在 LXC 的基礎上 Docker 進行了進一步的封裝,讓用戶不需要去關心容器的管理,使得操作更為簡便。用戶操作 Docker 的容器就像操作一個快速輕量級的虛擬機一樣簡單。
下面的圖片比較了 Docker 和傳統虛擬化方式的不同之處,可見容器是在作系統層面上實現虛擬化,直接使用本地主機的作系統,而傳統方式則是在硬體層面實現。 下面的圖片比較了 Docker 和傳統虛擬化方式的不同之處,可見容器是在作系統層面上實現虛擬化,直接使用本地主機的作系統,而傳統方式則是在硬體層面實現。
![傳統虛擬化](../_images/virtualization.png) ![傳統虛擬化](../_images/virtualization.png)

View File

@ -2,11 +2,11 @@
Docker 底層的核心技術包括 Linux 上的名字空間Namespaces、控制組Control groups、Union 文件系統Union file systems和容器格式Container format Docker 底層的核心技術包括 Linux 上的名字空間Namespaces、控制組Control groups、Union 文件系統Union file systems和容器格式Container format
我們知道,傳統的虛擬機通過在宿主主機中運行 hypervisor 來模擬一整套完整的硬件環境提供給虛擬機的作系統。虛擬機系統看到的環境是可限制的,也是彼此隔離的。 我們知道,傳統的虛擬機通過在宿主主機中運行 hypervisor 來模擬一整套完整的硬件環境提供給虛擬機的作系統。虛擬機系統看到的環境是可限制的,也是彼此隔離的。
這種直接的做法實現了對資源最完整的封裝,但很多時候往往意味著系統資源的浪費。 這種直接的做法實現了對資源最完整的封裝,但很多時候往往意味著系統資源的浪費。
例如,以宿主機和虛擬機系統都為 Linux 系統為例,虛擬機中運行的應用其實可以利用宿主機系統中的運行環境。 例如,以宿主機和虛擬機系統都為 Linux 系統為例,虛擬機中運行的應用其實可以利用宿主機系統中的運行環境。
我們知道,在作系統中包括內核、文件系統、網絡、PID、UID、IPC、內存、硬盤、CPU 等等,所有的資源都是應用進程直接共享的。 我們知道,在作系統中包括內核、文件系統、網絡、PID、UID、IPC、內存、硬盤、CPU 等等,所有的資源都是應用進程直接共享的。
要想實現虛擬化除了要實現對內存、CPU、網絡IO、硬盤IO、存儲空間等的限制外還要實現文件系統、網絡、PID、UID、IPC等等的相互隔離。 要想實現虛擬化除了要實現對內存、CPU、網絡IO、硬盤IO、存儲空間等的限制外還要實現文件系統、網絡、PID、UID、IPC等等的相互隔離。
前者相對容易實現一些,後者則需要宿主機系統的深入支持。 前者相對容易實現一些,後者則需要宿主機系統的深入支持。

View File

@ -1,5 +1,5 @@
## 名字空間 ## 名字空間
名字空間是 Linux 內核一個強大的特性。每個容器都有自己單獨的名字空間,運行在其中的應用都像是在獨立的作系統中運行一樣。名字空間保證了容器之間彼此互不影響。 名字空間是 Linux 內核一個強大的特性。每個容器都有自己單獨的名字空間,運行在其中的應用都像是在獨立的作系統中運行一樣。名字空間保證了容器之間彼此互不影響。
### pid 名字空間 ### pid 名字空間
不同用戶的進程就是通過 pid 名字空間隔離開的,且不同名字空間中可以有相同 pid。所有的 LXC 進程在 Docker 中的父進程為Docker進程每個 LXC 進程具有不同的名字空間。同時由於允許嵌套,因此可以很方便的實現嵌套的 Docker 容器。 不同用戶的進程就是通過 pid 名字空間隔離開的,且不同名字空間中可以有相同 pid。所有的 LXC 進程在 Docker 中的父進程為Docker進程每個 LXC 進程具有不同的名字空間。同時由於允許嵌套,因此可以很方便的實現嵌套的 Docker 容器。