簡體   English   中英

測試與docker守護程序的連接

[英]Testing connection to docker daemon

我正在編寫一個腳本,可以自動啟動docker-compose。

但是,有時候,執行eval "$(docker-machine env default)"不會導致docker守護程序立即連接,當下一行到來時( docker-compose up )我得到Cannot connect to the Docker daemon. Is the docker daemon running on this host? Cannot connect to the Docker daemon. Is the docker daemon running on this host?

如果我使用sleep幾秒鍾,問題就會解決。

有沒有辦法通過一些系統工具測試連接到守護進程(檢查進程是否存在,是否建立了網絡連接,端口是否被偵聽等)? 我想在外部測試docker守護進程而不是使用docker cli

Docker Remote API具有PING端點 您可以使用端點檢查是否可以成功連接到Docker守護程序。 DOCKER_HOST 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM