Mac OSX系統(tǒng) Docker啟用Docker遠(yuǎn)程API功能
在Mac OSX系統(tǒng)的Docker機(jī)上啟用Docker遠(yuǎn)程API功能
Docker守護(hù)進(jìn)程提供了一套遠(yuǎn)程REST API,具體可以參考文檔:
https://docs.docker.com/engine/reference/api/docker_remote_api/
這套API是提供給客戶端與Docker引擎通信時(shí)使用,這套API也可以由其他工具調(diào)用,比如curl或Chrome瀏覽器的Postman REST客戶端工具。
如果是在Mac OSX Mavericks系統(tǒng)上使用Docker機(jī)創(chuàng)建Docker守護(hù)進(jìn)程,那么要啟用Docker遠(yuǎn)程API功能需要一定的技巧。下面一一道來(lái)。
可以使用curl工具連接到安全的Docker端口,命令如下:
$ curl https://$HOST:2376/images/json --cert ~/.docker/cert.pem --key ~/.docker/key.pem --cacert ~/.docker/ca.pem
此命令存在一定的問(wèn)題。主要有:
1)命令可能不工作,因?yàn)槊恳粋€(gè)Docker機(jī)的證書(shū)存儲(chǔ)在.docker/machine/machines/目錄。
2)即使命令根據(jù)路徑做了修改,比如:
curl https://192.168.99.100:2376/images/json --cert $DOCKER_CERT_PATH/cert.pem --key $DOCKER_CERT_PATH/key.pem --cacert $DOCKER_CERT_PATH/ca.pem
執(zhí)行命令仍然會(huì)得到錯(cuò)誤信息:
curl: (58) SSL: Can't load the certificate "/Users/arungupta/.docker/machine/machines/couchbase/cert.pem" and its private key: OSStatus -25299
解決方法是需要更新curl工具??偟膩?lái)說(shuō),最新版的curl工具使用了Apple的安全傳輸層API(Secure Transport API),取代了原先的OpenSSL API。這意味著證書(shū)必須是p12格式。
下面可以這樣修復(fù)命令:
1)進(jìn)入Docker機(jī)存放證書(shū)的目錄,比如.docker/machine/machines/couchbase目錄
2)生成*.p12格式的證書(shū)
openssl pkcs12 -export -inkey key.pem -in cert.pem -CAfile ca.pem -chain -name client-side -out cert.p12 -password pass:mypass
現(xiàn)在可以調(diào)用REST API了:
curl https://192.168.99.100:2376/images/json --cert $DOCKER_CERT_PATH/cert.p12 --pass mypass --key $DOCKER_CERT_PATH/key.pem --cacert $DOCKER_CERT_PATH/ca.pem
注意,–cert參數(shù)現(xiàn)在指向了生成的p12證書(shū),證書(shū)的密碼使用–pass參數(shù)進(jìn)行指定。
然后會(huì)得到如下結(jié)果:
[{"Id":"sha256:d38beda529d3274636d6cb1c9000afe4f00fbdcfa544140d6cc0f5d7f5b8434a","ParentId":"", "RepoTags":["arungupta/couchbase:latest"],"RepoDigests":null,"Created":1450330075,"Size":374824677, "VirtualSize":374824677,"Labels":{}}]
現(xiàn)在可以嘗試啟動(dòng)CouchBase服務(wù)器:
~ > docker run -d -p 8091-8093:8091-8093 -p 11210:11210 arungupta/couchbase 42d1414883affd0fbb272cb1378c2f6b5118acf3ed5cb60cbecdc42f95602e3e
再調(diào)用另一個(gè)REST API來(lái)查看容器的細(xì)節(jié)內(nèi)容:
~ > curl https://192.168.99.100:2376/containers/json --cert $DOCKER_CERT_PATH/cert2.p12 --pass mypass --key $DOCKER_CERT_PATH/key.pem --cacert $DOCKER_CERT_PATH/ca.pem [{"Id":"42d1414883affd0fbb272cb1378c2f6b5118acf3ed5cb60cbecdc42f95602e3e","Names":["/admiring_pike"],"Image":"arungupta/couchbase","ImageID":"sha256:d38beda529d3274636d6cb1c9000afe4f00fbdcfa544140d6cc0f5d7f5b8434a","Command":"/entrypoint.sh /opt/couchbase/configure-cluster.sh","Created":1454850194,"Ports":[{"IP":"0.0.0.0","PrivatePort":8092,"PublicPort":8092,"Type":"tcp"},{"PrivatePort":11207,"Type":"tcp"},{"IP":"0.0.0.0","PrivatePort":11210,"PublicPort":11210,"Type":"tcp"},{"PrivatePort":18092,"Type":"tcp"},{"PrivatePort":18091,"Type":"tcp"},{"IP":"0.0.0.0","PrivatePort":8093,"PublicPort":8093,"Type":"tcp"},{"IP":"0.0.0.0","PrivatePort":8091,"PublicPort":8091,"Type":"tcp"},{"PrivatePort":11211,"Type":"tcp"}],"Labels":{},"Status":"Up 2 seconds","HostConfig":{"NetworkMode":"default"},"NetworkSettings":{"Networks":{"bridge":{"IPAMConfig":null,"Links":null,"Aliases":null,"NetworkID":"","EndpointID":"6feaf4c1c70feaf0ba240ce55fb58ce83ebb84c8098bef9171998e84f607fa0b","Gateway":"172.17.0.1","IPAddress":"172.17.0.2","IPPrefixLen":16,"IPv6Gateway":"","GlobalIPv6Address":"","GlobalIPv6PrefixLen":0,"MacAddress":"02:42:ac:11:00:02"}}}}]
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的 支持!
相關(guān)文章
docker搭建mongodb單節(jié)點(diǎn)副本集的實(shí)現(xiàn)
本文主要介紹了docker搭建mongodb單節(jié)點(diǎn)副本集的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05CentOS 7下設(shè)置Docker代理(Linux下Systemd服務(wù)的環(huán)境變量配置)
本文給大家分享Linux下Systemd服務(wù)的環(huán)境變量配置方法,此示例將覆蓋默認(rèn)docker.service文件,對(duì)CentOS 7下設(shè)置Docker代理的相關(guān)知識(shí)感興趣的朋友跟隨小編一起看看吧2021-05-05docker 查看進(jìn)程, 內(nèi)存, cup消耗的情況
這篇文章主要介紹了docker 查看進(jìn)程, 內(nèi)存, cup消耗的情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03在Docker中安裝Elasticsearch7.6.2的教程
這篇文章主要介紹了在Docker中安裝Elasticsearch7.6.2的教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11Docker 查詢、停止、刪除和重啟容器的詳細(xì)過(guò)程
這篇文章主要介紹了Docker 查詢、停止、刪除和重啟容器,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02關(guān)于Jenkins + Docker + ASP.NET Core自動(dòng)化部署的問(wèn)題(避免踩坑)
這篇文章主要介紹了關(guān)于Jenkins + Docker + ASP.NET Core自動(dòng)化部署的問(wèn)題,本文給大家?guī)?lái)了docker安裝方法及一些注意事項(xiàng),內(nèi)容有點(diǎn)小長(zhǎng),希望朋友們耐心看完,一定有收獲2021-05-05