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
