摘要:在官網(wǎng)查閱調(diào)用方式例如查詢正在運(yùn)行的容器列表,方式如下分析請求的過程在本機(jī)執(zhí)行如下命令模擬調(diào)用的代碼實(shí)現(xiàn)引入工具包測試代碼建立連接調(diào)用關(guān)閉,否則會導(dǎo)致下面的操作一直阻塞獲取返回結(jié)果相關(guān)文檔文檔
在 Docker 官網(wǎng)查閱 API 調(diào)用方式
例如:查詢正在運(yùn)行的容器列表,HTTP 方式如下:
$ curl --unix-socket /var/run/docker.sock http:/v1.24/containers/json [{ "Id":"ae63e8b89a26f01f6b4b2c9a7817c31a1b6196acf560f66586fbc8809ffcd772", "Names":["/tender_wing"], "Image":"bfirsh/reticulate-splines", ... }]分析 API 請求的過程
在本機(jī)執(zhí)行如下命令
curl -v --unix-socket /var/run/docker.sock http:/v1.24/containers/jsonJava 模擬調(diào)用 API 的代碼實(shí)現(xiàn)
1、引入 UnixSocket 工具包
com.github.jnr jnr-unixsocket 0.18
2、測試代碼
public static void main(String[] args) { // 建立 Unix Socket 連接 File sockFile = new File("/var/run/docker.sock"); UnixSocketAddress address = new UnixSocketAddress(sockFile); UnixSocketChannel channel = UnixSocketChannel.open(address); UnixSocket unixSocket = new UnixSocket(channel); // 調(diào)用 Docker API PrintWriter w = new PrintWriter(unixSocket.getOutputStream()); w.println("GET /v1.24/containers/json HTTP/1.1"); w.println("Host: http"); w.println("Accept: */*"); w.println(""); w.flush(); // 關(guān)閉 Output,否則會導(dǎo)致下面的 read 操作一直阻塞 unixSocket.shutdownOutput(); // 獲取返回結(jié)果 System.out.println("---- Docker Response ----"); BufferedReader br = new BufferedReader(new InputStreamReader(unixSocket.getInputStream())); String line; while ((line = br.readLine()) != null){ System.out.println(line); } unixSocket.close(); }相關(guān)文檔
Docker API 文檔
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/76140.html
摘要:與容器內(nèi)第一個進(jìn)程進(jìn)程看創(chuàng)建了這么多子進(jìn)程,然后到了我們期待的自己中的進(jìn)程就要被創(chuàng)建了,想想都有點(diǎn)小激動,然而。。。 Docker架構(gòu)分析 [root@docker-build-86-050 ~]# ls /usr/bin |grep docker docker docker-compose docker-containerd docker-containerd-ctr docker-...
摘要:我們知道,發(fā)起函數(shù)調(diào)用,需要構(gòu)造一個棧幀。構(gòu)造棧幀的具體實(shí)現(xiàn)細(xì)節(jié)的選擇,被稱為調(diào)用慣例。要想完成這個函數(shù)調(diào)用邏輯,就要運(yùn)行時構(gòu)造棧幀,生成參數(shù)壓棧和清理堆棧的工作。目前,幾乎支持全部常見的架構(gòu)。 原文:http://nullwy.me/2018/01/java...如果覺得我的文章對你有用,請隨意贊賞 遇到的問題 前段時間開發(fā)的時候,遇到一個問題,就是如何用 Java 實(shí)現(xiàn) chdir...
摘要:注冊器監(jiān)視每個守護(hù)進(jìn)程的事件,并在生命周期事件期間自動更新。條件可以包括親和規(guī)則否定至軟強(qiáng)制意味著盡可能地避免。當(dāng)使用通用標(biāo)記如或部署服務(wù)時,可能會出現(xiàn)意外的后果。月日,北京海航萬豪酒店,容器技術(shù)大會即將舉行。 在這篇文章中,我們將討論如何用Rancher實(shí)現(xiàn)consul的服務(wù)發(fā)現(xiàn)。 如果你還沒有準(zhǔn)備好,推薦你閱讀本系列中先前的文章:第一篇:CI /CD和Docker入門第二篇:使部署...
摘要:在這里,這個提供了一個風(fēng)格的接口訪問。準(zhǔn)備剛剛我們已經(jīng)成功地在中運(yùn)行了我們的微服務(wù)。對外暴露的端口需要跟服務(wù)的端口是一致的。運(yùn)行是發(fā)布一個容器的端口到運(yùn)行的主機(jī)上。 tags: Microservice Restful Docker Author: Andy AiWeibo: NinetyHGitHub: https://github.com/aiyanbo/do... 實(shí)現(xiàn)構(gòu)思 ...
摘要:運(yùn)行在上的微服務(wù)服務(wù)發(fā)現(xiàn)與注冊在上一節(jié)中,我們學(xué)習(xí)了如何在上構(gòu)建一個風(fēng)格的微服務(wù)。接下來,我們將學(xué)習(xí)如何把運(yùn)行在上的微服務(wù)暴露在服務(wù)中心上,以便客戶端的調(diào)用。資源服務(wù)在關(guān)閉時需要將服務(wù)實(shí)例在服務(wù)中心進(jìn)行注銷操作。響應(yīng)用戶的終止。 運(yùn)行在 Docker 上的微服務(wù) - 服務(wù)發(fā)現(xiàn)與注冊 tags: Docker Microservice RESTful etcd Author: And...
閱讀 2423·2021-08-18 10:21
閱讀 2531·2019-08-30 13:45
閱讀 2161·2019-08-30 13:16
閱讀 2126·2019-08-30 12:52
閱讀 1372·2019-08-30 11:20
閱讀 2632·2019-08-29 13:47
閱讀 1630·2019-08-29 11:22
閱讀 2769·2019-08-26 12:11