关于/var/运行/docker.sock

  

<强>译者按:这篇博客介绍了什么是<强>/var/运行/docker.sock 强,以及如何使用<强>/var/运行/docker.sock 与码头工人守护进程通信,并且提供了两个简单的示例。理解这些,我们就可以运行一些<强>能够管理码头工人的码头工人容器强,比如集装箱岸吊,Kubernetes,是不是很神奇呢?

  
      <李>   

    原文:关于/var/run/docker.sock

      李   <李>译者:Fundebug李   
  

<强>为了保证可读性,本文采用意译而非直译。

  

运行过码头工人中心的码头工人镜像的话,会发现其中一些容器时需要挂载<强>/var/运行/码头工人。袜子强文件。<强>这个文件是什么呢?为什么有些容器需要使用它? 简单地说,它是<强>码头工人守护进程(码头工人守护进程)默认监听的<强> Unix域套接字(Unix域套接字)强,容器中的进程可以通过它与码头工人守护进程进行通信。

  

关于/var/运行/docker.sock”> </p>
  <h4>举例</h4>
  <p>不妨看一下集装箱岸吊,它提供了图形化界面用于管理码头工人主机和群集群。如果使用集装箱岸吊管理本地码头工人主机的话,需要绑定<强>/var/运行/docker.sock </强>:</p>
  <pre> <代码类=码头工人运行- d - p 9000:9000 - v/var/run/docker.sock:/var/运行/码头工人。袜子集装箱岸吊/集装箱岸吊   9000年

访问端口可以查看图形化界面,可以管理容器(容器),镜像(图片),数据卷(卷)…

  

关于/var/运行/docker.sock”> <br/>集装箱岸吊通过绑定的<强>/var/运行/docker.sock </>强文件与<强>码头工人守护进程</>强通信,执行各种管理操作。</p>
  <h4>码头工人守护进程的API </h4>
  <p>安装码头工人之后,码头工人守护进程会监听Unix域套接字:/var/运行/码头工人。袜子。这一点可以通过码头工人守护进程的配置选项看出来(在ubuntu上执行猫/etc/default/docker): </p>
  <pre> <代码类= - h unix:///var/运行/docker.sock   

注:监听网络TCP套接字或者其他套接字需要配置相应的<强> - h 选项。

  

码头工人引擎API v1.27(最新版)定义的所有HTTP接口都可以通过/var/运行/docker.sock调用。

  

运行容器

  

使用集装箱岸吊的UI,可以轻松创建容器。实际上,HTTP请求是通过docker.sock发送给码头工人守护进程的。可以通过旋度 创建容器来说明这一点。使用HTTP接口运行容器需要两个步骤,先创建容器,然后启动容器。

  
1。创建nginx容器
  

旋度命令通过Unix套接字发送<强>{“图像”:“nginx”} 强到码头工人守护进程的<>强/集装箱/创建接口,这个将会基于nginx镜像创建容器并返回容器的ID。

  
 <代码类=" language-bash ">旋度-XPOST——unix-socket/var/run/docker.袜子- d '{“图像”:“nginx”}’- h - type: application/json的http://localhost/containers/create  
  

输出返回了容器ID:

  
 <=坝镅詊avascript代码类> {" Id ":“fcb65c6147efb862d5ea3a2ef20e793c52f0fafa3eb04e4292cb4784c5777d65”,“警告”:零} 
  
2。启动nginx容器
  

使用返回的容器ID、调用<强>/集装箱/& lt; ID>/启动接口,即可启动新创建的容器。

  
 <代码类=" language-bash ">旋度-XPOST——unix-socket/var/run/docker.袜子http://localhost/containers/fcb6...7d65/start  
  

查看已启动的容器:

  
 <代码>码头工人ls
  容器标识图像命令创建状态端口名称
  fcb65c6147ef nginx“nginx - g守护进程…”5分钟前5秒80/tcp 443/tcp ecstatic_kirch
  … 
  

可知,使用docker.sock运行容器其实非常简单。

  

码头工人守护进程的事件流

  

码头工人的API提供了 <强>/事件接口,可以用于获取码头工人守护进程产生的所有事件流。负载均衡组件(负载均衡器)组件可以通过它获取容器的创建/删除事件,从而动态地更新配置。通过创建一个简单的容器,我们可以了解如何利用码头工人守护进程的事件。

  
1。运行高山容器
  

下面的命令用于运行容器,并采用交互模式(交互模式,该模式下会直接进入容器内),同时绑定docker.sock。

  
 <代码类=" language-bash ">码头工人- v/var/run/docker.sock运行:/var/运行/码头工人。袜子ti高山sh 

关于/var/运行/docker.sock