1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      關(guān)于/var/run/docker.sock

      譯者按:這篇博客介紹了什么是/var/run/docker.sock,以及如何使用/var/run/docker.sock與Docker守護(hù)進(jìn)程通信,并且提供了兩個(gè)簡單的示例。理解這些,我們就可以運(yùn)行一些能夠管理Docker的Docker容器,比如Portainer、Kubernetes,是不是很神奇呢?

      創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供詔安網(wǎng)站建設(shè)、詔安做網(wǎng)站、詔安網(wǎng)站設(shè)計(jì)、詔安網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、詔安企業(yè)網(wǎng)站模板建站服務(wù),十余年詔安做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

      • 原文: About /var/run/docker.sock

      • 譯者: Fundebug

      為了保證可讀性,本文采用意譯而非直譯。

      運(yùn)行過Docker Hub的Docker鏡像的話,會(huì)發(fā)現(xiàn)其中一些容器時(shí)需要掛載/var/run/docker.sock文件。這個(gè)文件是什么呢?為什么有些容器需要使用它?簡單地說,它是Docker守護(hù)進(jìn)程(Docker daemon)默認(rèn)監(jiān)聽的Unix域套接字(Unix domain socket),容器中的進(jìn)程可以通過它與Docker守護(hù)進(jìn)程進(jìn)行通信。

      關(guān)于/var/run/docker.sock

      舉例

      不妨看一下 Portainer,它提供了圖形化界面用于管理Docker主機(jī)和Swarm集群。如果使用Portainer管理本地Docker主機(jī)的話,需要綁定/var/run/docker.sock:

      docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

      訪問9000端口可以查看圖形化界面,可以管理容器(container),鏡像(image),數(shù)據(jù)卷(volume)...

      關(guān)于/var/run/docker.sock
      Portainer通過綁定的/var/run/docker.sock文件與Docker守護(hù)進(jìn)程通信,執(zhí)行各種管理操作。

      Docker守護(hù)進(jìn)程的API

      安裝Docker之后,Docker守護(hù)進(jìn)程會(huì)監(jiān)聽Unix域套接字:/var/run/docker.sock。這一點(diǎn)可以通過Docker daemon的配置選項(xiàng)看出來(在ubuntu上執(zhí)行cat /etc/default/docker ):

      -H unix:///var/run/docker.sock

      注: 監(jiān)聽網(wǎng)絡(luò)TCP套接字或者其他套接字需要配置相應(yīng)的-H選項(xiàng)。

      Docker engine API v1.27 (最新版)定義的所有HTTP接口都可以通過/var/run/docker.sock調(diào)用。

      運(yùn)行容器

      使用Portainer的UI,可以輕松創(chuàng)建容器。實(shí)際上,HTTP請求是通過docker.sock發(fā)送給Docker守護(hù)進(jìn)程的??梢酝ㄟ^curl創(chuàng)建容器來說明這一點(diǎn)。使用HTTP接口運(yùn)行容器需要兩個(gè)步驟,先創(chuàng)建容器,然后啟動(dòng)容器。

      1. 創(chuàng)建nginx容器

      curl命令通過Unix套接字發(fā)送{“Image”:”nginx”}到Docker守護(hù)進(jìn)程的/containers/create接口,這個(gè)將會(huì)基于Nginx鏡像創(chuàng)建容器并返回容器的ID。

      curl -XPOST --unix-socket /var/run/docker.sock -d ‘{“Image”:”nginx”}’ -H ‘Content-Type: application/json’ http://localhost/containers/create

      輸出返回了容器ID:

      {“Id”:”fcb65c6147efb862d5ea3a2ef20e793c52f0fafa3eb04e4292cb4784c5777d65",”Warnings”:null}
      2. 啟動(dòng)nginx容器

      使用返回的容器ID,調(diào)用/containers//start接口,即可啟動(dòng)新創(chuàng)建的容器。

      curl -XPOST --unix-socket /var/run/docker.sock http://localhost/containers/fcb6...7d65/start

      查看已啟動(dòng)的容器:

      docker ls
      CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
      fcb65c6147ef nginx “nginx -g ‘daemon …” 5 minutes ago Up 5 seconds 80/tcp, 443/tcp ecstatic_kirch
      ...

      可知,使用docker.sock運(yùn)行容器其實(shí)非常簡單。

      Docker守護(hù)進(jìn)程的事件流

      Docker的API提供了/events接口,可以用于獲取Docker守護(hù)進(jìn)程產(chǎn)生的所有事件流。負(fù)載均衡組件(load balancer)組件可以通過它獲取容器的創(chuàng)建/刪除事件,從而動(dòng)態(tài)地更新配置。通過創(chuàng)建一個(gè)簡單的容器,我們可以了解如何利用Docker守護(hù)進(jìn)程的事件。

      1. 運(yùn)行alpine容器

      下面的命令用于運(yùn)行容器,并采用交互模式(interactive mode,該模式下會(huì)直接進(jìn)入容器內(nèi)),同時(shí)綁定docker.sock。

      docker run -v /var/run/docker.sock:/var/run/docker.sock -ti alpine sh
      2. 監(jiān)聽Docker守護(hù)進(jìn)程的事件流

      在alpine容器內(nèi),可以通過Docker套接字發(fā)送HTTP請求到/events接口。這個(gè)命令會(huì)一直等待Docker daemon的事件。當(dāng)新的事件發(fā)生時(shí)(例如創(chuàng)建了新的容器),會(huì)看到輸出信息。

      curl --unix-socket /var/run/docker.sock http://localhost/events
      3. 觀察事件

      基于Nginx鏡像運(yùn)行容器之后,通過aplpine容器的標(biāo)準(zhǔn)輸出可以觀察到Docker daemon生成的事件。

      docker run -p 8080:80 -d nginx

      可以觀察到3個(gè)事件:

      • 創(chuàng)建容器
      • 連接默認(rèn)的橋接網(wǎng)絡(luò)(bridge network)
      • 啟動(dòng)容器

      結(jié)論

      希望這些簡單的解釋可以幫助大家理解/var/run/docker.sock文件,并且明白它綁定到容器時(shí)有何作用。顯然,真正的應(yīng)用會(huì)使用代碼而不是curl命令給Docker守護(hù)進(jìn)程發(fā)送HTTP請求。

      注意: 綁定Docker套接字之后,容器的權(quán)限會(huì)很高,可以控制Docker守護(hù)進(jìn)程。因此,這一點(diǎn)必須謹(jǐn)慎使用,只能用于足夠信任的容器。

      關(guān)于Fundebug

      Fundebug專注于JavaScript、微信小程序、微信小游戲、支付寶小程序、React Native、Node.js和Java實(shí)時(shí)BUG監(jiān)控。 自從2016年雙十一正式上線,F(xiàn)undebug累計(jì)處理了7億+錯(cuò)誤事件,得到了Google、360、金山軟件、百姓網(wǎng)等眾多知名用戶的認(rèn)可。歡迎免費(fèi)試用!

      關(guān)于/var/run/docker.sock

      版權(quán)聲明

      轉(zhuǎn)載時(shí)請注明作者Fundebug以及本文地址:

      https://blog.fundebug.com/2017/04/17/about-docker-sock/


      網(wǎng)站欄目:關(guān)于/var/run/docker.sock
      本文來源:http://ef60e0e.cn/article/pijceh.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        天柱县| 峡江县| 应城市| 北碚区| 海门市| 同仁县| 龙门县| 格尔木市| 普兰县| 米林县| 大冶市| 临高县| 偏关县| 澳门| 茂名市| 朔州市| 柯坪县| 海口市| 芮城县| 石柱| 新疆| 观塘区| 轮台县| 松原市| 黄陵县| 石棉县| 肇州县| 涟水县| 大渡口区| 木兰县| 兴业县| 台山市| 文山县| 台安县| 新密市| 博白县| 洛隆县| 永宁县| 东阿县| 蓬溪县| 昭觉县|