筆者在《Docker Machine 簡介》一文中簡單介紹了 Docker Machine 及其基本用法,但是忽略的細節(jié)實在是太多了。比如 Docker 與 Docker Machine 的區(qū)別?又如當我們執(zhí)行 docker-machine create 命令時,Docker Machine 都做了哪些重要的事情使得我們可以遠程操作 Docker daemon?這樣的遠程操作安全嗎?本文將試圖解讀這些問題。注:本文的演示環(huán)境為 Ubuntu16.04。
Docker 與 Docker Machine 的區(qū)別
Docker 是一個 Client-Server 架構的應用,人家是有官稱的:Docker Engine。Docker 只是大家對 Docker Engine 的昵稱,當然 Docker 還有其他的意思,比如一家公司的名稱。簡單起見,本文中的 Docker 等同于 Docker Engine。
提到 Docker 我們必須要知道它包含了三部分內(nèi)容:
Docker daemon
一套與 Docker daemon 交互的 REST API
一個命令行客戶端
下圖很清晰的展示了它們之間的關系:
Docker Machine 則是一個安裝和管理 Docker 的工具。它有自己的命令行工具:docker-machine。