gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 11:07:57 24 4
gpt4 key购买 nike

我正在编写一个将自动启动 docker-compose 的脚本。

但是,有时,执行 eval "$(docker-machine env default)" 不会导致 docker 守护进程立即连接,并且当下一行出现时(docker-compose up) 我得到 无法连接到 Docker 守护进程。 docker 守护进程是否在该主机上运行?

如果我使用 sleep 几秒钟,问题就会解决。

有没有办法通过一些系统工具测试与守护进程的连接(检查进程是否存在,是否建立了网络连接,监听端口等)?我想在外部测试 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

关于linux - 测试与 docker 守护进程的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35764746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com