最佳化 Dockerfile - 調整 build context
寫 Dockerfile 並不困難,但好用的 Dockerfile 就需要利用許多技巧,加上不斷嘗試,才有辦法寫出來。
寫 Dockerfile 並不困難,但好用的 Dockerfile 就需要利用許多技巧,加上不斷嘗試,才有辦法寫出來。
前十天,我們使用 Docker 官方的 image 作為執行指令或開服務的環境,以這個角度來介紹 Docker 可以如何使用。接下來十天,將介紹如何建置自定義 image。
第一階段的最後一天,來看看這個方便的工具--Docker Compose。Docker Compose 是用來組合多個 container 成為一個完整服務的工具。先前在說明如何連結 container 時,已經有示範過連結 container 的基本方法。雖然可行,但要執行非常多指令才能把 container 串起來。Docker Compose 不只可以做到一樣的事,而且它使用 YAML 描述檔定義 container 的關係,簡化定義的過程,同時也實現了 IaC,讓 container 的關係可以簽入版本控制。
到目前為止,已經說明了 docker run
幾個常用的選項和參數,也做了一些簡單的範例。今天將以情境的方式,介紹如何應用 docker run
指令完成任務。
在說明 Port forwarding 時,有個範例是同個 image 開啟多個 container。實務上通常是更複雜的情境,比方說同個 image 開多個 container 且要使用不同的 DB 連線設定,當然這可以透過 volume 解決,但如果今天要管理上百個 container 與上百份設定,volume 的做法反而很難管理。
Volume 也是 Docker 的元件,它提供 container 保存資料或共享資料的機制。
今天將會使用 Docker 啟動 HTTP server,並讓瀏覽器能看得到 HTTP server 所提供的 hello world。
昨天從執行 Hello Docker 的過程中,了解 Docker 的三個基本元件。今天會更進一步地說明 docker run
更多細節。