庫存狀況
「香港二樓書店」讓您 愛上二樓●愛上書
我的購物車 加入會員 會員中心 常見問題 首頁
「香港二樓書店」邁向第一華人書店
登入 客戶評價 whatsapp 常見問題 加入會員 會員專區 現貨書籍 現貨書籍 購物流程 運費計算 我的購物車 聯絡我們 返回首頁
香港二樓書店 > 今日好書推介
二樓書籍分類
 
Docker實戰6堂課:56個實驗動手做,掌握Linux容器核心技術(iThome鐵人賽系列書)【軟精裝】

Docker實戰6堂課:56個實驗動手做,掌握Linux容器核心技術(iThome鐵人賽系列書)【軟精裝】

沒有庫存
訂購需時10-14天
9786263335769
賴怡玲(小賴)
博碩
2023年9月11日
240.00  元
HK$ 216  






ISBN:9786263335769
  • 規格:軟精裝 / 336頁 / 17 x 23 x 2.44 cm / 普通級 / 單色印刷 / 初版
  • 出版地:台灣


  • 電腦資訊 > 網路/架站 > 雲端技術

















    掌握容器原理,除錯更快速!

    跟著實驗操作,帶你告別一知半解,深入了解 Container!

      

      本書內容改編自第 14 屆 iThome 鐵人賽 DevOps 組的冠軍系列文章《那些關於 Docker 你知道與不知道的事》。本書從啟動 Docker Container 開始,探索 Docker 的底層設計,進而學習 Linux 容器技術及其相關的 Linux 知識,包括 Namespace、Process 與網路等,同時也提供各種動手做實驗,讓你親手驗證讀到的理論與技術。



      書中將探討五大主題:

      1. Docker Container

      2. Docker Image

      3. Linux Namespace

      4. Linux Process 及其與 Docker Container 的關係

      5. Container 與 Linux 的網路世界



      全書提供 56 個動手做實驗,讓讀者能親自驗證學習到的理論,從「會用」進階到「知道」,讓 Docker 容器不再神秘,讓讀者不再心虛。讀者除了能熟悉 Docker,也能同時學習 Linux 相關知識,鞏固作業系統與網路的基本功,提升問題排查的能力,累積往下探索的基礎,讓未來的你也能自己動手挖掘底層技術。



      四大重點

      ? 打穩基礎

      層層介紹 Docker 元素,清楚掌握底層原理



      ? 由淺入深

      從環境建置到容器化,快速部署非難事



      ? 動手做範例

      每章範例動手玩,加深理論與實力



      ? 大量圖文解說

      白話文+圖解說明,讓你不再似懂非懂



      目標讀者

      ● 想學習 Docker 或容器化技術

      ● 會 Docker 的基本操作,但對於原理好像似懂非懂,想要深入學習

      ● 想學習更多 Linux,卻不知道該從哪裡開始

      ● 喜歡親自動手驗證的工程師

      ● 想從 Junior 晉升到 Senior 的工程師



      下載範例程式檔案

      本書提供範例程式檔案,以及安裝 Docker 教學說明:github.com/azole/docker-ironman-2022



    專業推薦



      「無論你是初學者,還是已有一定基礎的工程師,這本書都會是你最好的指南和夥伴。讓我們一起跟隨這位經驗豐富的導師,從「會用」進階到「知道」,探索技術的深邃海洋。」──── Shirney │ AppWorks School 校長



      「容器生態圈蓬勃發展,我們更需要小賴這本書,帶我們透過自己的雙手掌握那不變的容器技術核心。」──── 葉秉哲(William Yeh) │ 敏捷魔藥師



      「小賴以深入淺出的方式,帶領讀者進一步探討這些技術。她用生動的文字和清晰的例子,讓你不僅能操作 Docker,而是能夠洞悉其本質。這不僅能讓你在開發過程中更加得心應手,更讓讀者之後對 container 相關技術 debug 的過程變得更加順暢。」──── 顏永富(泳褲) │ Laravel 台灣 / DevOps Taiwan 社群老志工 / 全端工程師

    ?


     





    致謝

    推薦序 ── Shirney

    推薦序 ── 葉秉哲(William Yeh)

    推薦序 ── 顏永富(泳褲)

    作者序

    前言



    第 1 章 實驗環境準備

    1.1 實驗環境

    1.2 安裝步驟

    1.3 實驗環境說明

    觀察 Mac 中給 Docker 使用的虛擬機



    第 2 章 建立 Container

    2.1 建立 Container

    實驗 2-1:建立 alpine container

    2.2 查無此人的 process

    實驗 2-2:殺掉 Host 中的 ash process

    2.3 其他 Docker container 指令

    實驗清除



    第 3 章 Docker Image

    3.1 Docker Image 初探

    實驗 3-1:觀察 nginx image

    實驗清除

    3.2 什麼是 Image Layer?

    實驗 3-2:自己做出新的一層 layer

    實驗清除

    3.3 來玩一下 Docker Image Layer

    實驗 3-3:修改 UpperDir 中的檔案內容並觀察其變化

    實驗 3-4:修改 UpperDir 中的檔案內容並建立新的 image

    實驗 3-5:在 container 中增加新的檔案並建立新的 image

    實驗清除

    3.4 Docker Image 實驗解惑 - OverlayFS

    實驗 3-6:使用 OverlayFS 來 union mount 檔案夾

    3.5 什麼是 copy-on-write 跟 whiteout?

    實驗 3-7:測試聯合目錄中的檔案

    實驗 3-8:測試聯合目錄中的檔案 2

    實驗清除

    3.6 所以,到底什麼是 Docker Image 呢?



    第 4 章 命名空間(Namespaces)

    4.1 什麼是 Namespaces?

    4.2 PID Namespace

    實驗 4-1:手動建立出自己的 namespace

    實驗清除

    4.3 用 clone 來建立新的 PID namespace

    實驗 4-2:用 clone 來建立 PID namespace

    實驗清除

    4.4 Mount Namespace 的坑

    實驗 4-3:不使用 mount-proc 參數

    實驗 4-4:觀察 /proc

    實驗 4-5:建立 Mount namespace

    實驗 4-6:手動掛載 /proc

    4.5 Container 與 Namespaces

    實驗 4-7:從 Host 觀察 container 中的 processes

    實驗 4-8:container 的 namespaces 觀察

    實驗清除

    4.6 前景與背景

    實驗 4-9:以背景模式建立 container

    實驗清除

    4.7 要怎麼「進入」container 裡呢?

    實驗 4-10:驗證 docker container exec 指令

    實驗 4-11:setns 的操作

    實驗清除



    第 5 章 Linux 中的 Process

    5.1 認識 Process

    5.2 Process 的族譜

    實驗 5-1:測試 fork API

    5.3 殭屍(zombie)與孤兒(orphan)

    實驗 5-2:parent process 不呼叫 waitpid

    實驗 5-3:parent process 比 child process 先終止

    實驗清除

    5.4 Container 中 PID 1 process 的 parent 是誰呢?

    實驗 5-4:container 中 PID 1 process 的族譜

    5.5 Container 中的 PID 1 process 會負起 init process 的責任嗎?

    實驗 5-5:PR_SET_CHILD_SUBREAPER 的測試

    實驗 5-6:container 中的 PID 1 是否會負起責任?

    5.6 不負責任的 PID 1 process

    實驗 5-7:以 exec 模式建立 container

    實驗 5-8:以 shell 模式建立 container

    5.7 Linux 中的訊號(signal)

    5.8 signal & kill 指令

    實驗 5-9:捕捉訊號(catch signal)

    實驗清除

    5.9 Signal 與 container

    docker container stop

    實驗 5-10:驗證 docker container stop 指令的 signal

    實驗 5-11:PID 1 不正確處理 SIGTERM

    實驗 5-12:docker container stop 與 shell mode

    docker container kill

    實驗 5-13:docker container kill

    docker container rm -f

    5.10 Ubuntu 中的 /bin/sh 怎麼了?

    實驗 5-14:alpine image 的 shell mode

    實驗 5-15:驗證 dash shell

    實驗 5-16:init 參數

    5.11 PID 1 的 process 能被殺掉嗎?

    實驗 5-17:在 exec mode 下 kill container 中的 PID 1 process

    實驗 5-18:在 shell mode 下 kill container 中的 PID 1 process



    第 6 章 Container 的網路世界

    6.1 Container 怎麼跟別人溝通的?

    實驗 6-1:Docker network - none

    實驗 6-2:Docker network - host

    實驗 6-3:Docker network - bridge

    實驗 6-4:Docker network - container

    6.2 什麼是 veth pair?

    實驗 6-5:手動建立 veth pair

    實驗清除

    6.3 來過橋吧!

    實驗 6-6:透過 bridge 來連通兩個 network namespace

    實驗 6-7:設定 iptables 讓封包可以過橋

    6.4 能成功出海嗎?

    實驗 6-8:調整 routing table

    6.5 為什麼出不了國呢?

    實驗 6-9:從 ns1 ping 外部網路並錄製網路封包

    6.6 讓我們出國去!

    實驗 6-10:觀察 Host 對外部網路的通信

    實驗 6-11:為 ns1 建立 nat 規則

    實驗 6-12:關掉無條件轉發

    實驗 6-13:為 docker1 調整 FORWARD chain

    6.7 解封國境

    實驗 6-14:測試外部是否可以連進 ns1 中

    實驗 6-15:觀察 Docker 對 iptables 做了什麼

    從外部主機連線至 container

    實驗 6-16:讓 ns1 裡的 server 可以被外部主機連接

    在 Host 透過 private IP 連線至 container

    實驗 6-17:讓 ns1 裡的 server 可以從 Host 透過 private IP 連線

    Host 透過 loopback IP 位址連線至 container



    後記



    ?




    其 他 著 作
    1. Docker實戰6堂課:56個實驗動手做,掌握Linux容器核心技術(iThome鐵人賽系列書)【平裝】