0916~0919_開學季語言展

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

  • 79 514
    650
  • 分類:
    中文書電腦資訊網路/架站雲端技術
    追蹤
    ? 追蹤分類後,您會在第一時間收到分類新品通知。
  • 作者: 賴怡玲 追蹤 ? 追蹤作者後,您會在第一時間收到作者新書通知。
  • 出版社: 博碩文化 追蹤 ? 追蹤出版社後,您會在第一時間收到出版社新書通知。
  • 出版日:2023/10/18

活動訊息

想找書的時候,特別想偷看網友的書櫃... 原來大家都在看這本 ↓↓↓

用閱讀開啟視野,讓書成為照亮你人生的光
【金石堂選書】本月推薦您這些好書👉 快來看看

內容簡介

▃ ▅ ▆ ▇ 佳評如潮!火速再版(平裝版) ▇ ▆ ▅ ▃

★☆★ 榮登銷售排行榜冠軍 TOP 1 ★☆★


掌握容器原理,除錯更快速!
▍跟著實驗操作,帶你告別一知半解,深入掌握 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 社群老志工 / 全端工程師

 

作者

賴怡玲(小賴)

工作經驗約 20 年, 從工程師當到技術主管, 待過大、小公司,從金融業到各種新創,台商、外商都有經驗,也自己設立公司過。略懂前端,主要在後端與維運部署,接案時從業務、專案管理、技術團隊管理、前後端開發、部署維運到售後客服無所不包,業界俗稱的一條龍工程師。擅長從兵荒馬亂、資源有限的團隊中做出一些東西,喜歡容器技術、AWS。

擔任過 Laravel Conf、WebConf Taiwan 等議程講者,分享 Serverless 與 Docker 等主題。目前在 AppWorks School 擔任後端班導師,陪伴想要加入軟體開發領域的學員們成長。

【iThome 鐵人賽獲獎】
2022 DevOps 組冠軍:《那些關於 Docker 你知道與不知道的事》

 

目錄

致謝
推薦序 ── 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

後記

配送方式

  • 台灣
    • 國內宅配:本島、離島
    • 到店取貨:
      金石堂門市 不限金額免運費
      7-11便利商店 ok便利商店 萊爾富便利商店 全家便利商店
  • 海外
    • 國際快遞:全球
    • 港澳店取:
      ok便利商店 順豐 7-11便利商店

詳細資料

詳細資料

    • 語言
    • 中文繁體
    • 裝訂
    • 紙本平裝
    • ISBN
    • 9786263336131
    • 分級
    • 普通級
    • 頁數
    • 336
    • 商品規格
    • 23*17*2.3
    • 出版地
    • 台灣
    • 適讀年齡
    • 全齡適讀
    • 注音
    • 級別

商品評價

訂購/退換貨須知

加入金石堂 LINE 官方帳號『完成綁定』,隨時掌握出貨動態:

加入金石堂LINE官方帳號『完成綁定』,隨時掌握出貨動態
金石堂LINE官方帳號綁定教學

提醒您!!
金石堂及銀行均不會請您操作ATM! 如接獲電話要求您前往ATM提款機,請不要聽從指示,以免受騙上當!

退換貨須知:

**提醒您,鑑賞期不等於試用期,退回商品須為全新狀態**

  • 依據「消費者保護法」第19條及行政院消費者保護處公告之「通訊交易解除權合理例外情事適用準則」,以下商品購買後,除商品本身有瑕疵外,將不提供7天的猶豫期:
    1. 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮食品)
    2. 依消費者要求所為之客製化給付。(客製化商品)
    3. 報紙、期刊或雜誌。(含MOOK、外文雜誌)
    4. 經消費者拆封之影音商品或電腦軟體。
    5. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書、電子雜誌、下載版軟體、虛擬商品…等)
    6. 已拆封之個人衛生用品。(如:內衣褲、刮鬍刀、除毛刀…等)
  • 若非上列種類商品,均享有到貨7天的猶豫期(含例假日)。
  • 辦理退換貨時,商品(組合商品恕無法接受單獨退貨)必須是您收到商品時的原始狀態(包含商品本體、配件、贈品、保證書、所有附隨資料文件及原廠內外包裝…等),請勿直接使用原廠包裝寄送,或於原廠包裝上黏貼紙張或書寫文字。
  • 退回商品若無法回復原狀,將請您負擔回復原狀所需費用,嚴重時將影響您的退貨權益。
※ 網友掛保證,絕不踩雷書單如下 ↓↓↓
預計 2025/09/30 出貨 購買後進貨 
金石堂門市 全家便利商店 ok便利商店 萊爾富便利商店 7-11便利商店
World wide
活動ing