簡單明了搭建 Docker over TLS

因為 centos 即將停止官方支持, 從此的工作和學習將轉(zhuǎn)移到 Debian 上進行

注:若圖片無法加載可訪問個人站的原文 https://lookoutldz.top/archives/jian-dan-ming-le-da-jian-dockerovertls

前置介紹

docker 默認運行在無網(wǎng)絡(luò)環(huán)境的 unix socket 下, 所以是不能對外提供服務(wù)的, 只能本地自己玩

如果想寫個程序調(diào)用 docker, 或者用 portainer 等工具管理 docker, 那就需要 docker 暴露 API 才行了

docker 支持通過 TCP 來暴露服務(wù), 可以選擇 SSH/HTTP/HTTPS 的方式進行, 此處我選擇泛用且安全性較高的 HTTPS 來暴露 docker 服務(wù)

禁止在公網(wǎng)暴露任何未做安全措施的端口!

所以禁止使用 HTTP 的方式來暴露 docker 服務(wù), 所以看到現(xiàn)在大量博客在灌水寫HTTP, 暴露 2375 端口這種過時又坑小白的方法, 我很生氣

HTTPS 其實就是在傳輸層(TCP)與應(yīng)用層(HTTP)間加了一層(SSL/TLS 層), 安全原理不在此贅述, 只需要知道使用它比直接用 HTTP 麻煩一點, 但安全系數(shù)大大提升, 做好心理準備即可(然而本篇是簡單明了系列, 自然不會麻煩到哪去)

因為是直接公網(wǎng)環(huán)境, 所以必須要有的幾個東西:

  • 任意有公網(wǎng) IP 的服務(wù)器(不解釋)
  • 域名(綁定了上述公網(wǎng) IP, 因為證書要基于域名使用, 所以必須要有域名), 沒有的直接找云服務(wù)商買, 很簡單
  • SSL 證書(為上述域名申請的證書一套, 分別為根證書, 域名證書, 服務(wù)器私鑰), 可以自己創(chuàng)建, 也可以在云服務(wù)商那申請證書, 或者找證書簽發(fā)機構(gòu)申請, 有免費也有付費的. 我選擇申請一個, 幾分鐘搞定, 很簡單

安裝 docker

懶人五合一長命令一條搞定

sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release -y
    
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  
sudo apt-get update -y

apt-get install docker-ce docker-ce-cli containerd.io -y

其它系統(tǒng)參考:

認清證書

以騰訊云處申請的證書為例, 其它同理

[圖片上傳失敗...(image-6c736-1651717108281)]

下載上圖兩個文件, 全部解壓后一共會得到幾個文件:

  • xxx.key: 服務(wù)器私鑰文件
  • xxx_bundle.pem: 一個捆綁包文件, 里面打包了服務(wù)器證書與公鑰
  • xxx_bundle.crt: 同上, 只是后綴不同
  • xxx.csr: 給服務(wù)器認證簽名的申請文件(Certificate Signing Request), 暫時沒用
  • xxx_root.crt: CA 機構(gòu)的根證書, 信任鏈的起點, 你的證書之所以可信是因為它

如果是阿里云下載的, 則簡單點:

  • xxx.key: 服務(wù)器私鑰文件
  • xxx.pem: 一個捆綁包文件, 里面打包了服務(wù)器證書與公鑰
  • xxx-root.crt: CA 機構(gòu)的根證書, 根據(jù)簽發(fā)機構(gòu)和證書類型, 文件名會有不同, 但只要認準 root 和 crt 關(guān)鍵字就行

在其它云服務(wù)商申請的或者在簽發(fā)機構(gòu)直接申請的也大同小異, 這里只要認準三個文件: 私鑰, 服務(wù)器證書捆綁包與根證書

分清這三個后就簡單了, 將私鑰重命名為 key.pem, 服務(wù)器證書捆綁包重命名為 cert.pem, 根證書重命名為 ca.pem, 然后:

mkdir /root/.docker

將三個文件丟進去, 準備工作就 ok 了

修改配置

此處以 DebianDocker version 20.10.14, build a224086 版本的配置進行操作

編輯配置

vim /usr/lib/systemd/system/docker.service

找到 ExecStart... 那行并注釋, 一坨命令貼下去:

ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/root/.docker/ca.pem --tlscert=/root/.docker/cert.pem --tlskey=/root/.docker/key.pem -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2376

保存并退出, 重啟容器:

systemctl daemon-reload && systemctl restart docker

然后開放防火墻 2376 端口就完成了!

注意:

  • ExecStart命令指定證書時要用絕對路徑, 不能用帶~的路徑
  • Docker version 20.10.5+dfsg1, build 55c4c88 版本下 usr/bin/dockerd 要換成 usr/sbin/dockerd
  • 如果啟動失敗了, 多觀察與原命令的區(qū)別, 試錯幾次總能成功

測試

使用 portainer 來添加這個服務(wù)器看看

[圖片上傳失敗...(image-ce8d4e-1648979802209)]

添加成功或失敗都會有提示, 成功后切到 Home:

[圖片上傳失敗...(image-3b372a-1648979802209)]

輕松愉快~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市碗殷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌衰齐,老刑警劉巖歪泳,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件萝勤,死亡現(xiàn)場離奇詭異,居然都是意外死亡呐伞,警方通過查閱死者的電腦和手機敌卓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來荸哟,“玉大人假哎,你說我怎么就攤上這事“袄” “怎么了?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵肪虎,是天一觀的道長劣砍。 經(jīng)常有香客問我,道長扇救,這世上最難降的妖魔是什么刑枝? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮迅腔,結(jié)果婚禮上装畅,老公的妹妹穿的比我還像新娘。我一直安慰自己沧烈,他們只是感情好掠兄,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般蚂夕。 火紅的嫁衣襯著肌膚如雪迅诬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天婿牍,我揣著相機與錄音侈贷,去河邊找鬼。 笑死等脂,一個胖子當著我的面吹牛俏蛮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播上遥,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼嫁蛇,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了露该?” 一聲冷哼從身側(cè)響起睬棚,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎解幼,沒想到半個月后抑党,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡撵摆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年底靠,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片特铝。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡暑中,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鲫剿,到底是詐尸還是另有隱情鳄逾,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布灵莲,位于F島的核電站雕凹,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏政冻。R本人自食惡果不足惜枚抵,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望明场。 院中可真熱鬧汽摹,春花似錦、人聲如沸苦锨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至圾旨,卻和暖如春踱讨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背砍的。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工痹筛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人廓鞠。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓帚稠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親床佳。 傳聞我的和親對象是個殘疾皇子滋早,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容