Binaries
這個指令集是爲駭客們準備的,方便他們在各種環境中快速的體驗Docker。
在繼續下面的話題前,你應該檢查一下,你的系統上是否已經擁有一個可用的打包版本。我們給很多的系統提供相應的打包文件,並且持續更新它們。
檢查運行時依賴
要正常運行,docker需要安裝如下軟件:
- iptables 1.4(或更高)
- Git 1.7(或更高)
- procps (或 可以提供類似 “ps” 的軟件)
- XZ Utils 4.9(或更高)
- 一個properly mounted cgroupfs 層次機構(having a single, all-encompassing “cgroup” mount point is not sufficient)
檢測內核依賴
Docker 的 daemon 模式需要特定的內核特性。詳情,檢測你的系統參考安裝指南。
一個 3.10 Linux 內核是Docker正常運行的最小要求。低於3.10版本的內核缺少一些運行容器特性。這些老版本中惡名昭昭的bug會導致數據的丟失和在特定的條件下頻繁出現“恐慌”。
最小版本 3.10 (或更新被維護的版本)Linux 內核是被推薦的。保持內容在最新的小版本,可以規避很多來自內核bug。
警告:安裝定製性的內核時,需要考慮你的系統供應商是否支持它。所以,在你安裝定製化的之前,請先諮詢一下你的系統供應商。
警告:安裝一個新的內核可能還不夠,一些系統供應商提供的包太老或這個跟新的內核不兼容。
注意,Docker還有一個客戶端模式,它幾乎可以在任何Linux內核中(甚至可以在OS X 上構建)。
儘量啓用AppArmor 和 SELinux
請使用 AppArmor 或 SELinux,如果你的Linux系統支持這兩種功能。這將幫助我們提升系統的安全性和規避一些漏洞。你的系統文檔會提供詳細的設置,關於如何有效的運用安全的原理。
有些Linux系統默認開啓 AppArmor 或 SELinux。但是,內核滿足不了最小的需求(3.10或更高)。升級內核到 3.10 或更高,在這樣的一個系統上,可能還不能夠啓動Docker和運行容器。系統提供用戶空間工具與AppArmor/SELinux的版本不兼容,內核可能會阻止Docker 運行或啓動容器,這樣會導致容器出現一些詭異的行爲。
警告:如果啓用其中任何一個安全機制,不應該爲了啓動Docker或它(docker)的容器而關閉它。這樣會降系統環境的安全性,失去系統供應商的支持,並且可能打破在嚴格的監管環境法規和安全政策。
獲取Docker 二進制執行包
你可以下載任何一個最新的發行包或一個指定版本。下載完二級制文件後,你必須更改問價的執行權限。
在Linux和OS X上設置文件的可執行權限:
$ chmod +x docker
從GitHub上獲取可用版本的列表,查看 docker/docker
發行頁面。
注意:
1) 通過分別在URL上追加.md5 和 .sha256,你可以獲得MD5 和 SHA256散列
2) 通過分別在URL上追加.tgz,你可以獲得壓縮過的二進制文件
獲取 Linux 二進制文件
使用下面的URL可以下載Linux對應的最新版本:
https://get.docker.com/builds/Linux/i386/docker-latest
https://get.docker.com/builds/Linux/x86_64/docker-latest
使用下面的URL模式可以下載特定版本:
https://get.docker.com/builds/Linux/i386/docker-<version>
https://get.docker.com/builds/Linux/x86_64/docker-<version>
例如:
https://get.docker.com/builds/Linux/i386/docker-1.6.0
https://get.docker.com/builds/Linux/x86_64/docker-1.6.0
獲取Mac OS X 二進制文件
Mac OS X 二進制只是一個客戶端。你不能使用它去啓動 docker
daemon。使用如下URL可以獲得最新版本:
https://get.docker.com/builds/Darwin/i386/docker-latest
https://get.docker.com/builds/Darwin/x86_64/docker-latest
使用下面的URL模式,可以獲得特定版本:
https://get.docker.com/builds/Darwin/i386/docker-<version>
https://get.docker.com/builds/Darwin/x86_64/docker-<version>
例如:
https://get.docker.com/builds/Darwin/i386/docker-1.6.0
https://get.docker.com/builds/Darwin/x86_64/docker-1.6.0
獲取Windows二進制文件
你也可以下載 1.6.0
(或以上)的Windows客戶端。此外,它只是一個客戶端,你不能使用它啓動 docker
daemon.。使用如下URL,可以獲得最新的版本:
https://get.docker.com/builds/Windows/i386/docker-latest.exe
https://get.docker.com/builds/Windows/x86_64/docker-latest.exe
使用如下的URL模式,可以下載特定的版本:
https://get.docker.com/builds/Windows/i386/docker-<version>.exe
https://get.docker.com/builds/Windows/x86_64/docker-<version>.exe
例如:
https://get.docker.com/builds/Windows/i386/docker-1.6.0.exe
https://get.docker.com/builds/Windows/x86_64/docker-1.6.0.exe
啓動 Docker daemon
# start the docker in daemon mode from the directory you unpacked
$ sudo ./docker daemon &
提供非根訪問
docker
daemon 總是被根用戶啓動,並且 docker
daemon
綁定到一個Unix socket 替代一個TCP端口。默認情況下,Unix socket屬於根用戶,所以,你需呀使用 sudo
才能訪問它。
如果你(或你的Docker安裝者)創建一個命名爲docker的 Unix組,並添往裏添加用戶,之後,當啓動daemon時,docker
daemon
將Unix Socket的讀/寫權限分配給docker組。docker
daemon 必須且總是被根用戶啓動,但是,如果你以一個被添加進docker組用戶去啓動 docker
客戶端,之後,所有的客戶端命令你都不需要再追加 sudo
。
警告:docker組(或使用
-G
指定組)等同root;查看Docker Daemon 攻擊面瞭解更多 。
升級
手動升級你的Docker,先殺死docker daemon:
$ killall docker
然後,按照常規的步驟進行安裝。
運行你的第一個容器!
# check your docker version
$ sudo ./docker version
# run a container and open an interactive shell in the container
$ sudo ./docker run -i -t ubuntu /bin/bash
通過用戶指南繼續學習。