亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Java 使用 UnixSocket 調(diào)用 Docker API

derek_334892 / 993人閱讀

摘要:在官網(wǎng)查閱調(diào)用方式例如查詢正在運行的容器列表,方式如下分析請求的過程在本機執(zhí)行如下命令模擬調(diào)用的代碼實現(xiàn)引入工具包測試代碼建立連接調(diào)用關(guān)閉,否則會導致下面的操作一直阻塞獲取返回結(jié)果相關(guān)文檔文檔

在 Docker 官網(wǎng)查閱 API 調(diào)用方式

例如:查詢正在運行的容器列表,HTTP 方式如下:

$ curl --unix-socket /var/run/docker.sock http:/v1.24/containers/json
[{
  "Id":"ae63e8b89a26f01f6b4b2c9a7817c31a1b6196acf560f66586fbc8809ffcd772",
  "Names":["/tender_wing"],
  "Image":"bfirsh/reticulate-splines",
  ...
}]
分析 API 請求的過程

在本機執(zhí)行如下命令

curl -v --unix-socket /var/run/docker.sock http:/v1.24/containers/json

Java 模擬調(diào)用 API 的代碼實現(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,否則會導致下面的 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://www.ezyhdfw.cn/yun/76140.html

相關(guān)文章

  • docker進程模型,架構(gòu)分析

    摘要:與容器內(nèi)第一個進程進程看創(chuàng)建了這么多子進程,然后到了我們期待的自己中的進程就要被創(chuàng)建了,想想都有點小激動,然而。。。 Docker架構(gòu)分析 [root@docker-build-86-050 ~]# ls /usr/bin |grep docker docker docker-compose docker-containerd docker-containerd-ctr docker-...

    mingzhong 評論0 收藏0
  • Java 外部函數(shù)接口:JNI, JNA, JNR

    摘要:我們知道,發(fā)起函數(shù)調(diào)用,需要構(gòu)造一個棧幀。構(gòu)造棧幀的具體實現(xiàn)細節(jié)的選擇,被稱為調(diào)用慣例。要想完成這個函數(shù)調(diào)用邏輯,就要運行時構(gòu)造棧幀,生成參數(shù)壓棧和清理堆棧的工作。目前,幾乎支持全部常見的架構(gòu)。 原文:http://nullwy.me/2018/01/java...如果覺得我的文章對你有用,請隨意贊賞 遇到的問題 前段時間開發(fā)的時候,遇到一個問題,就是如何用 Java 實現(xiàn) chdir...

    pubdreamcc 評論0 收藏0
  • 如何使用Docker、Docker-Compose和Rancher搭建部署Pipeline(四)

    摘要:注冊器監(jiān)視每個守護進程的事件,并在生命周期事件期間自動更新。條件可以包括親和規(guī)則否定至軟強制意味著盡可能地避免。當使用通用標記如或部署服務時,可能會出現(xiàn)意外的后果。月日,北京海航萬豪酒店,容器技術(shù)大會即將舉行。 在這篇文章中,我們將討論如何用Rancher實現(xiàn)consul的服務發(fā)現(xiàn)。 如果你還沒有準備好,推薦你閱讀本系列中先前的文章:第一篇:CI /CD和Docker入門第二篇:使部署...

    13651657101 評論0 收藏0
  • Docker 上運行一個 RESTful 風格的微服務

    摘要:在這里,這個提供了一個風格的接口訪問。準備剛剛我們已經(jīng)成功地在中運行了我們的微服務。對外暴露的端口需要跟服務的端口是一致的。運行是發(fā)布一個容器的端口到運行的主機上。 tags: Microservice Restful Docker Author: Andy AiWeibo: NinetyHGitHub: https://github.com/aiyanbo/do... 實現(xiàn)構(gòu)思 ...

    NotFound 評論0 收藏0
  • 運行在 Docker 上的微服務 - 服務發(fā)現(xiàn)與注冊

    摘要:運行在上的微服務服務發(fā)現(xiàn)與注冊在上一節(jié)中,我們學習了如何在上構(gòu)建一個風格的微服務。接下來,我們將學習如何把運行在上的微服務暴露在服務中心上,以便客戶端的調(diào)用。資源服務在關(guān)閉時需要將服務實例在服務中心進行注銷操作。響應用戶的終止。 運行在 Docker 上的微服務 - 服務發(fā)現(xiàn)與注冊 tags: Docker Microservice RESTful etcd Author: And...

    陳偉 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<