linux-测试与docker守护程序的连接

前端之家收集整理的这篇文章主要介绍了linux-测试与docker守护程序的连接 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在编写一个脚本,该脚本将自动引导docker-compose.

但是,有时,执行eval“ $(docker-machine env default)”不会立即连接docker守护程序,并且在下一行出现(docker-compose up)时,我无法连接到Docker守护程序. docker守护程序是否在此主机上运行?

如果我使用睡眠几秒钟,问题就解决了.

是否可以通过某些系统工具测试到守护程序的连接(检查是否存在进程,是否进行了网络连接,侦听端口等)?我想从外部测试docker守护进程而不使用docker cli

最佳答案
Docker Remote API具有PING endpoint.您可以使用端点检查是否可以成功连接到Docker守护程序. docker-machine env设置环境变量DOCKER_HOST,因此您可以将DOCKER_HOST用作ping的主机.使用nc,可以按以下步骤ping主机:

$eval "$(docker-machine env default)"
$echo -e "GET /_ping HTTP/1.1\r\n" | nc $DOCKER_HOST
HTTP/1.1 200 OK
Server: Docker/1.10.2 (linux)
Date: Thu,03 Mar 2016 07:05:58 GMT
Content-Length: 2
Content-Type: text/plain; charset=utf-8

OK

您将需要检查返回值.如果返回“ OK”,则连接成功.一个简单的检查可能如下所示(这可能需要进一步完善):

#!/bin/bash
if [ "$(echo -e "GET /_ping HTTP/1.1\r\n" | nc $DOCKER_HOST | tail -n 1)" == 'OK' ] ; then
  echo "You are connected"
fi
原文链接:https://www.f2er.com/docker/532623.html

猜你在找的Docker相关文章