Docker 在今日算是 DevOps 不可以或缺的基礎知識。
Docker 剛開始問世是為了開發、測試、維運的各環節環境不一致,所造成的各種靈異現像,而不可歸結於程式系統的問題。
但在今天隨著微服務架構的流行,將各個系統,切成各個 docker container ,在籍由 k8s 串接和運行已成為主流。
而本書雖然已經出了一段時日,不過在 docker 本身的改版都是以支援為主,不像 react 這一類,直接整個程式邏緝精神的大改,所以本書依舊還是一本入手 docker 很棒的參考書。
第一部份:介紹 docker 與虛擬化技術的基本概念。
第二部份:介紹 docker 的應用方法。
第三部份:進階議題:目前已經進化為 k8s 的範籌了。
新建並啟動容器
啟動容器有兩種方式,一種是基於映像檔新建一個容器並啟動,另外一種是將處在停止狀態(stopped)的容器重新啟動。所需要的指令主要為 docker run 相當於先執行 docker create 指令,再執行 docker start 指令。
例如,以下的命令輸出一個「Hello World」,之後容器自動停止:
$ sudo docker run ubuntu /bin/echo 'Hello world'
Hello world
這跟在本機直接執行/bin/echo 'hello world' 幾乎感覺不出任何區別。
當利用docker run 來建立並啟動容器時, Docker 在後臺運行的標準操作包括:
檢查本機是否存在指定的映像檔,不存在就從公開倉庫上下載。
利用映像檔建立並啟動一個容器。
分配一個檔案系統,並在唯讀的映像檔層外面掛載一層可讀寫層。
從HOST主機設置的橋接器介面(docker0)中橋接一個虛擬介面到容器中去。
從位址區段上(172.17.0.0/24)賦予一個IP位址給容器。
執行使用者指定的應用程式。
執行完畢後容器便停止。
以下的命令為啟動一個 bash shell,允許使用者進行輸入:
$ sudo docker run -t-i ubuntu: 14.04 /bin/bash
root#af8baes3bdd3:/#
⭐⭐⭐
軟體操作經驗
入門
就算不會寫程式也沒關係,應該很多維運或測試人員很熟捻 docker & k8s 。