Introduction to Docker Context

這篇文章介紹最新版本 Docker EE 3.0 的一個新功能命令:Docker Context,有了這個功能,便可以用 Docker CLI 輕鬆地在多個容器叢集之間切換,並進行多個容器叢集的管理。這裏指的容器叢集,可以是在地端也可以是在雲端的環境,可以是 Swarm 叢集也可以是 Kubernetes 叢集。

在早期的 Docker EE 版本,Docker Context 這個概念最早出現在 UCP bundle 的配置, 但那時不是很完整成熟。docker client 預設的Docker Context就是自己主機本身的 daemon。 UCP bundle 是一個包含着指向 UCP 叢集管理節點的 Docker Daemon 配置腳本集合體,可用來配置 docker client 以及 kubectl , 變更 client 端的 Docker Context 到叢集管理節點的 Docker Daemon ,利於從 CLI 方式管理叢集或是佈署應用程式到叢集上,UCP manager 會把這些配置腳本一整包做成 ZIP 壓縮包的形式提供下載。以上述舊版本而言,在切換Docker Context的時候,是以作業系統的層級,將腳本文件的變數內容進行估值,來達到環境變數變更的目的。可是這種做法,對單一叢集的切換是可以,但多個叢集的情況就不好用了;另外就是安全上可能有風險,設想如果其中一個環境變數被其他人以其他系統命令有意或無意的修改,Docker Context很容易就被破壞掉,client 端也就無法正常下命令對叢集操作。

最新版本的  Docker EE 3.0 推出 Docker Context,將相關物件進行了封裝,使得Docker Context能夠透過CLI的方式有效進行管理。

Docker Context 可以使單個 Docker CLI 輕鬆管理多個Swarm叢集或是多個 Kubernetes叢集以及多個單機版Docker節點。

單個Docker CLI可以具有多個Docker Context 。每個Docker Context都包含管理不同叢集或節點所需的所有端點和TLS安全資料。 使用 docker context 子命令可輕鬆配置這些Docker Context並在它們之間切換。

一個 Docker Context 是數種系統屬性的組合。它包含了

  • Context 名
  • 端點配置資訊
  • TLS 資訊
  • 編配類型

注意:要使用 docker context 子命令群,必須要先確認所使用的是 Docker EE 3.0 系列的 docker engine 引擎版本必須是 19.03 以上 (API Version: 1.40+)。

docker ee 19.03.1


docker context 常見的子命令有:

docker context


請繼續參考下一篇

留言

這個網誌中的熱門文章

Docker 環境下的 Proxy 配置