亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Web服務器 > 正文

Docker Machine深入學習

2024-09-01 13:52:13
字體:
來源:轉載
供稿:網友

筆者在《Docker Machine 簡介》一文中簡單介紹了 Docker Machine 及其基本用法,但是忽略的細節實在是太多了。比如 Docker 與 Docker Machine 的區別?又如當我們執行 docker-machine create 命令時,Docker Machine 都做了哪些重要的事情使得我們可以遠程操作 Docker daemon?這樣的遠程操作安全嗎?本文將試圖解讀這些問題。注:本文的演示環境為 Ubuntu16.04。

Docker 與 Docker Machine 的區別

Docker 是一個 Client-Server 架構的應用,人家是有官稱的:Docker Engine。Docker 只是大家對 Docker Engine 的昵稱,當然 Docker 還有其他的意思,比如一家公司的名稱。簡單起見,本文中的 Docker 等同于 Docker Engine。

提到 Docker 我們必須要知道它包含了三部分內容:

  • Docker daemon
  • 一套與 Docker daemon 交互的 REST API
  • 一個命令行客戶端

下圖很清晰的展示了它們之間的關系:

Docker,Machine

Docker Machine 則是一個安裝和管理 Docker 的工具。它有自己的命令行工具:docker-machine。

Docker daemon socket

既然 Docker 客戶端要和 Docker daemon 通過 REST API 通信,那就讓我們看看它們可以采用的方法有哪些:

  • Unix socket
  • Systemd socket activation
  • Tcp

我們可以簡單的把 1 和 2 理解成一種方式,就是同一臺主機上的進程間通信。至于 3 則很好理解:通過 tcp 協議進行跨網絡的通信。

既然 1 和 2 用于同一臺機器上的進程間通信,那么我們可以猜想:安裝在同一主機上的 Docker 客戶端和 Docker daemon 就是通過這種方式來通信的。事實也正是如此,我們可以查看安裝 Docker 時默認添加的 Docker daemon 啟動配置,打開文件 /etc/systemd/system/multi-user.target.wants/docker.service:

Docker,Machine

圖中的 -H 用來指定 Docker Daemon 監聽的 socket,此處指定的類型為 system socket activation。使用類型 1 和 2 進行通信需要進程具有 root 權限。這也是 Docker 安裝過程中會自動創建一個具有 root 權限的用戶和用戶組的主要原因。新創建的用戶和用戶組名稱為 docker,建議大家把需要操作 Docker 的用戶都加入到這個組中,否則當你執行命令時就會碰到下圖顯示的問題:

Docker,Machine

我們還可以同時指定多個 -H 參數讓 Docker daemon 同時監聽不同的 socket 類型。比如要添加對 TCP 端口 2376 的監聽就可以使用下面的命令行參數:

$ sudo dockerd -H fd:// -H tcp://0.0.0.0:2376

運行上面的命令,然后查看本機監聽的端口:

Docker,Machine

此時我們就可以從遠程主機上的 Docker 客戶端訪問這部主機的 2376 端口了。

DOCKER_HOST 環境變量

Docker 客戶端默認的配置是訪問本機的 Docker daemon,當你指定了 DOCKER_HOST 變量后,Docker 客戶端會訪問這個變量中指定的 Docker daemon。讓我們回顧一下 docker-machine env 命令:

Docker,Machine

原來我們在前文中執行的 $ eval $(docker-machine env krdevdb) 命令就是在設置 DOCKER_HOST 環境變量。

解決安全問題

我們的 Docker daemon 監聽了 tcp 端口,糟糕的是此時我們沒有做任何的保護措施。因此任何 Docker 客戶端都可以通過 tcp 端口與我們的 Docker daemon 交互,這顯然是無法接受的。解決方案是同時啟用 Docker daemon 和 Docker 客戶端的 TLS 證書認證機制。這樣 Docker daemon 和 Docker 客戶端之間的通信會被加密,并且只有安裝了特定證書的客戶端才能夠與對應的 Docker daemon 交互。

至此本文的鋪墊部分終于結束了,接下來我們將討論 Docker Machine 相關的內容。

Docker Machine create 命令

根據 Docker Machine 驅動的不同,create 命令執行的操作也不太一樣,但其中有兩步是我們在這里比較關心的:

docker-machine 會在您指定的主機上執行下面的操作:

  • 安裝 Docker,并進行配置。
  • 生成證書保護 Docker 服務的安全。

配置 Docker daemon

Docker 的安裝過程并沒有什么秘密,這里不再贅述。我們重點關注 Docker daemon 的配置。仔細觀察我們會發現,通過 docker-machine 安裝的 Docker 在 /etc/systemd/system 目錄下多出了一個 Docker 相關的目錄:docker.service.d。這個目錄中只有一個文件 10-machine.conf:

Docker,Machine

好吧,-H tcp://0.0.0.0:2376 出現在這里并沒有讓我們太吃驚。在我們做了巨多的鋪墊之后,你應該覺得這是理所當然才是。--tls 開頭的幾個參數主要和證書相關,我們會在后面的安全設置中詳細的介紹它們。讓人多少有些疑惑的地方是上圖中的 /usr/bin/docker。當前最新版本的 Docker Machine 還在使用舊的方式設置 Docker daemon,希望在接下來的版本中會有所更新。

這個配置文件至關重要,因為它會覆蓋 Docker 默認安裝時的配置文件,從而以 Docker Machine 指定的方式啟動 Docker daemon。至此我們有了一個可以被遠程訪問的 Docker daemon。

生成證書

我們在 Docker daemon 的配置文件中看到四個以 --tls 開頭的參數,分別是 --tlsverify、--tlscacert、--tlscert和 –tlskey。其中的 --tlsverify 告訴 Docker daemon 需要通過 TLS 來驗證遠程客戶端。其它三個參數分別指定了一個 pem 格式文件的路徑,按照它們指定的文件路徑去查看一下:

Docker,Machine

對比一下手動安裝的 Docker,會發現 /etc/docker 目錄下并沒有這三個文件。毫無疑問它們是 Docker Machine 生成的,主要是為了啟用 Docker daemon 的 TLS 驗證功能。關于 TLS,筆者在《局域網內部署 Docker Registry》一文中略有涉及,當時是手動配置的證書,感興趣的朋友可以參考一下。

現在讓我們回到安裝了 Docker Machine 的主機上。

查看 /home/nick/.docker/machines/krdevdb 目錄,發現了一些同名的文件(ca.pem、server-key.pem 和 server.pem),和主機 drdevdb 上的文件對比一下,發現它們是一樣的!

讓我們再來觀察一下這幅圖:

Docker,Machine

除了我們關注過的 DOCKER_HOST,還有另外三個環境變量。其中的 DOCKER_TLS_VERIFY 告訴 Docker 客戶端需要啟用 TLS 驗證。DOCKER_CERT_PATH 則指定了 TLS 驗證所依賴文件的目錄,這個目錄正是我們前面查看的 /home/nick/.docker/machines/krdevdb 目錄。

行文至此,困擾我們的安全問題終于得到了解釋:Docker Machine 在執行 create 命令的過程中,生成了一系列保證安全性的秘鑰和數字證書(*.pem)文件。這些文件在本地和遠程 Docker 主機上各存一份,本地的用于配置 Docker 客戶端,遠程主機上的用于配置 Docker daemon,讓兩邊都設置 TLS 驗證的標記,依此實現安全的通信。

總結

從本文的前一部分可以看到,Docker 其實把該提供的都提供了,只是配置起來比較麻煩!但是對用戶來說,需要的總是更簡單,更容易的配置。因此從使用者的角度來看,Docker Machine 確實很酷,一個命令下去不僅能夠安裝虛機和 Docker,還完成了很多手動搞起來令人生畏的配置。然后帶來幾個清晰、簡單的命令。再然后,同學們就可以開心愉快的玩耍了!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美一区二粉嫩精品国产一线天| 欧美裸身视频免费观看| 久久久精品2019中文字幕神马| 九九热精品视频在线播放| 欧美电影免费观看大全| 成人免费自拍视频| 国产日韩欧美在线播放| 91精品国产91久久久| 欧美电影在线观看网站| 欧美电影免费观看网站| 日韩精品极品在线观看| 久久露脸国产精品| 国产精品99久久久久久久久| 综合网日日天干夜夜久久| 久久人人爽人人爽人人片av高请| 成人免费网站在线看| 亚洲人成电影网站色…| 91夜夜未满十八勿入爽爽影院| 亚洲一区二区三区视频| xvideos国产精品| 97久久精品在线| 国内精品久久久久久| 色噜噜亚洲精品中文字幕| 国产97在线视频| 欧美午夜激情视频| 欧美性xxxx极品hd满灌| 欧美激情中文字幕乱码免费| 国产精品影院在线观看| 国产成人高潮免费观看精品| 日本一区二区三区在线播放| 欧美激情欧美激情在线五月| 最新国产成人av网站网址麻豆| 精品亚洲夜色av98在线观看| 亚洲视频电影图片偷拍一区| 国产自产女人91一区在线观看| 亚洲欧美日本伦理| 911国产网站尤物在线观看| 欧美裸体男粗大视频在线观看| 中文字幕一区电影| 91精品国产综合久久香蕉| 亚洲美女av电影| 亚洲区免费影片| 久久久久国产一区二区三区| 亚洲最大中文字幕| 国产精品久久久久久久久久小说| 欧美精品18videos性欧| 久久国产精品99国产精| 国产精品一区二区久久精品| 国产又爽又黄的激情精品视频| 日韩av免费一区| 国产精品嫩草影院一区二区| 欧美极品在线播放| 97精品国产97久久久久久免费| 91丝袜美腿美女视频网站| 亚洲免费视频网站| 国产91成人video| 亚洲高清色综合| 亚洲自拍偷拍第一页| 国产性色av一区二区| 91黑丝高跟在线| 欧美在线观看网站| 国产精品扒开腿做爽爽爽的视频| 亚洲最大成人网色| 国产成人小视频在线观看| 国产精品三级在线| 欧美中文字幕在线观看| 黄色成人av网| 亚洲精品理论电影| 国产福利视频一区二区| 国产精品影院在线观看| 麻豆国产精品va在线观看不卡| 国产亚洲欧美日韩精品| 久久亚洲精品国产亚洲老地址| 日本中文字幕不卡免费| 91av在线免费观看| 九九热精品视频在线播放| 91亚洲国产成人久久精品网站| 91精品国产高清自在线| 川上优av一区二区线观看| 日韩av在线网站| 欧美激情xxxxx| 久久中文字幕在线| 日韩成人在线免费观看| 国产在线视频2019最新视频| 亚洲精品一区久久久久久| 日韩欧美在线国产| 日本久久久久久久久| 黑人极品videos精品欧美裸| 欧美色道久久88综合亚洲精品| 国产精品中文字幕在线观看| 中文字幕亚洲欧美日韩在线不卡| 亚洲成人999| 成人免费视频xnxx.com| 国产999在线观看| 欧美最猛性xxxx| 国产精品永久免费观看| 日韩综合中文字幕| 亚洲曰本av电影| 精品久久久香蕉免费精品视频| 亚洲欧洲自拍偷拍| 欧美日韩视频免费播放| 亚洲深夜福利视频| 亚洲午夜国产成人av电影男同| 亚洲综合中文字幕在线观看| 福利一区福利二区微拍刺激| 97视频免费在线看| 久久福利视频导航| 国产成人jvid在线播放| 亚洲男子天堂网| 国产欧美日韩综合精品| 欧美日韩免费一区| 韩国19禁主播vip福利视频| 欧美在线xxx| 国产一区二区三区在线观看视频| 狠狠色狠色综合曰曰| 亚洲欧美一区二区三区久久| 国产美女久久精品香蕉69| 欧美日韩亚洲网| 视频一区视频二区国产精品| 中文字幕在线日韩| 伊人伊成久久人综合网站| 亚洲精品一区av在线播放| 亚洲欧美日韩一区二区三区在线| 九九精品视频在线观看| 欧美另类69精品久久久久9999| 韩剧1988在线观看免费完整版| 国产精品高潮呻吟久久av野狼| 国产亚洲精品一区二区| 国产精品一区av| 欧美视频在线视频| 久久夜色精品国产亚洲aⅴ| 欧美激情精品久久久久久| 97久久久免费福利网址| 96sao精品视频在线观看| 欧美一级淫片播放口| 日韩精品免费在线视频| 91久久国产精品91久久性色| 欧洲精品久久久| 日韩视频永久免费观看| 久久久91精品| 亚洲自拍偷拍区| 成人精品在线视频| 国产成人福利夜色影视| 精品久久久一区二区| 久久人人爽人人爽人人片亚洲| 黄色精品在线看| 九九视频直播综合网| 97视频免费观看| 亚洲欧美制服综合另类| 91av视频在线| 668精品在线视频| 久久久精品久久久久| 人妖精品videosex性欧美| 日日骚av一区| 日韩电影中文 亚洲精品乱码| 日韩一二三在线视频播| 欧美日韩成人在线观看| 欧美高清理论片| 亚洲毛片在线观看.| 日本一区二区三区在线播放| 69av视频在线播放| 北条麻妃99精品青青久久| 国产日韩av在线| 欧美激情一二区|