Docker學習筆記 - Docker客戶端和服務端

學習內容:linux

  Docker客戶端和服務端的通信方式:client和自定義程序docker

  Docker客戶端和服務端的鏈接方式:socketjson

  演示Docker客戶端和服務端之間用remote-api通信:nc   -U   /var/run/docker.sockapi

 

一、Docker客戶端和服務端的鏈接方式app

方式一:client 和 demaonsocket

  User   <-->  Docker客戶端  <-->  Docker服務端(守護進程)tcp

    User發送命令給Docker客戶端,如:docker pull、docker run學習

    Docker客戶端轉發命令給宿主機上的Docker守護進程spa

    Docker守護進程接收執行命令,返回命令執行結果unix

    Docker服務端(守護進程)負責管理宿主機上的各個容器。

 

方式二:自定義程序和 服務端

    User   <-->  自定義程序  <-->  Docker服務端(守護進程)

    自定義程序調用remote-api,remote-api是 rest風格的api

    https://docks.docker.com/reference/api/docker_remote_api

 

二、Docker客戶端和守護進程經過Socket鏈接,能夠遠程或本地鏈接

  • Unix的端口,如:unix:///var/run/docker/sock(默認鏈接方式)
  • tcp://host:prot
  • fd://socketfd

  

   

     在服務端,查看是否啓動了docker的守護進程

  ps -ef | grep docker

  root  1526  1  9  17:34  ?   00:00:99  /usr/bin/docker -d

  

  docker version

  

三、經過linux的nc命令演示remote-api的使用

     其中,

  -U 指明使用socket

  /var/run/docker.sock 指明 socket 地址

  info是個remote-pi

 

  nc   -U   /var/run/docker.sock

  GET /info HTTP/1.1

  

  返回信息

  HTTP/1.1 200 OK

  Content-Type:application/json

  Job-Name:info

  Date:Tue,14 Apr 2015 09:38:28 GMT

  Content-Length:765

 

  JSON串格式的返回內容

相關文章
相關標籤/搜索