Docker 學(xué)習(xí)8.1 Docker API 8.2初始RemoteAPI 8.3 Docker Remote API 進(jìn)行認(rèn)證

8.1Docker?API

docker生態(tài)有3種RESTful風(fēng)格的API:

Register?API:提供了與來(lái)存儲(chǔ)Docker鏡像的Docker?Register集成功能。

Docker?Hub?API:提供了與Docker?Hub集成的API。自建鏡像倉(cāng)如Harbor,使用自己的API。

Docker?Remote?API:提供了與Docker守護(hù)進(jìn)程進(jìn)行集成的功能。

8.2初始Remote?API

在本地查詢Docker?api

echo -e "GET /info HTTP/1.0\r\n" | sudo nc -U /var/run/docker.sock

對(duì)于Ubuntu和Debian,通過(guò)編輯/etc/default/docker文件,將docker的守護(hù)進(jìn)程綁定到指定網(wǎng)絡(luò)接口。

配置方法:
https://blog.csdn.net/weixin_43730279/article/details/103479693

測(cè)試方法:

使用Info?API接入點(diǎn)

curl http://0.0.0.0:2375/info


使用POSTMAN測(cè)試


Docker Remote API?官方文檔
https://docs.docker.com/engine/api/v1.40/#section/Authentication


8.3Docker Remote API?進(jìn)行認(rèn)證

8.3.1?建立證書(shū)授權(quán)中心

使用PKI密鑰認(rèn)證體系

檢查是否安裝openssl


創(chuàng)建CA目錄

mkdir /etc/docker

生成私鑰

echo 01 |?sudo tee ca.srl

openssl genrsa -des3 -out ca-key.pem


密碼123123

創(chuàng)建CA證書(shū)

openssl req -new -x509 -days 365 -key ca-key.pem -out ca.pem


輸入上述密碼,其他默認(rèn)為空回車

8.3.2?創(chuàng)建服務(wù)器的? 證書(shū)簽名請(qǐng)求CSR 和密鑰

創(chuàng)建服務(wù)器密鑰

openssl genrsa -des3 -out server-key.pem

密鑰123123


創(chuàng)建服務(wù)器CSR

openssl req -new -key server-key.pem -out server.csr

注:Common?Name?不能為空,為docker服務(wù)器域名,或者? *?為任何服務(wù)器都可以使用該證書(shū)?

對(duì)CSR進(jìn)行簽名

openssl x509 -req -days 365 -in server.csr -CA ca.pem \

-CAkey ca-key.pem -out server-cert.pem

輸入CA密鑰文件密碼123123

移除服務(wù)端密鑰密碼 ----不想在啟動(dòng)docker守護(hù)進(jìn)程時(shí)啟動(dòng)時(shí)候在輸入一遍密碼

openssl rsa -in server-key.pem -out server-key.pem


設(shè)置docker服務(wù)器端密鑰和證書(shū)的安全屬性

chmod 0600 /etc/docker/server-key.pem /etc/docker/server-cert.pem \

/etc/docker/ca-key.pem /etc/docker/ca.pem

8.3.3配置Docker守護(hù)進(jìn)程

Ubuntu在 /lib/systemd/system/docker.service?

ExecStart

-H tcp tcp://0.0.0.0:2376 --tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/server-cert.pem --tlskey=/etc/docker/server-key.pem

重新加載docker守護(hù)進(jìn)程

systemctl --system daemon-reload

8.3.4創(chuàng)建客戶端證書(shū)和密鑰

openssl genrsa -des3 -out client-key.pem

密碼123123

創(chuàng)建客戶端CSR

openssl req -new -key client-key.pem -out client.csr


添加客戶端認(rèn)證屬性

echo extendedKeyUsage = clientAuth > extfile.cnf

對(duì)客戶端CSR進(jìn)行簽名

openssl x509 -req -days 365 -in client.csr -CA ca.pem \

-CAkey ca-key.pem -out client-cert.pem -extfile extfile.cnf


移除客戶端密碼的密鑰

openssl rsa -in client-key.pem -out client-key.pem


8.3.5?配置docker客戶端開(kāi)啟認(rèn)證功能

mkdir -p ~/.docker/

cp ca.pem?~/.docker/ca.pem

cp client-key.pem?~/.docker/key.pem

cp client-cert.pem?~/.docker/cert.pem

chmod 0600?~/.docker/key.pem?~/.docker/cert.pem

測(cè)試TLS認(rèn)證過(guò)程連接

docker -H=0.0.0.0:2376 --tlsverify info

TLS的連接方式會(huì)?docker會(huì)在我們~/.docker/目錄下查找剛剛配置的文件

上述方法不行

https://www.cnblogs.com/zooqkl/p/10345083.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容