我正在编写一个脚本,可以自动启动docker-compose。
但是,有时,执行docker-compose up
并不会导致docker守护程序立即连接,当下一行(Cannot connect to the Docker daemon. Is the docker daemon running on this host?
)时,我得到sleep
如果我使用docker
几秒钟,问题就会解决。
有没有办法通过一些系统工具测试连接到守护进程(检查是否存在进程,是否建立了网络连接,是否收听了端口等)?我想在外部测试docker守护进程而不是使用function dragMarkerService(resolveAddressService){
this.placeMarker = function(location, idValue, map){
var myMarker = new google.maps.Marker({
position: new google.maps.LatLng(location.latitude, location.longitude),
draggable: true
});
google.maps.event.addListener(myMarker, 'dragend', function (evt) {
location.latitude = evt.latLng.lat();
location.longitude = evt.latLng.lng();
resolveAddressService.resolveAddress(location, idValue)
});
google.maps.event.addListener(myMarker, 'dragstart', function (evt) {
angular.element(idValue).val() = 'Currently dragging marker...';
});
map.setCenter(myMarker.position);
myMarker.setMap(map);
}
};
cli
答案 0 :(得分:3)
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