无法通过SSH转发域套接字连接到远程docker主机

我希望能够用户docker-compose与远程守护进程组成。 我创build了一个远程守护进程的本地转发,如下所示:

 #!/bin/sh export SOCKET_DIR=$HOME/.remote-sockets mkdir -p $SOCKET_DIR echo "Creating SSH Dokcer Socket Tunnel" socat "UNIX-LISTEN:/$SOCKET_DIR/docker.sock,reuseaddr,fork" \ EXEC:'ssh freebsd@107.170.216.79 socat STDIO UNIX-CONNECT\:/var/run/docker.sock' 

运行该脚本时,我导出下列环境variables:

 DOCKER_API_VERSION 1.19 COMPOSE_API_VERSION 1.19 DOCKER_HOST unix://$HOME/.remote-sockets/docker.sock 

通过设置这些variables,我可以validation运行的docker ps显示远程容器,而不是本地守护进程的容器。 此外, docker-compose ps也似乎连接到远程守护进程,因为它返回一个空的列表。 如果我closuresSSH隧道,它会失败,说它不能连接到docker守护程序。

麻烦的是当我尝试运行docker-compose up 。 我也试过了docker-compose -H unix://$HOME/.remote-sockets/docker.sock up 。 这两个命令给我以下内容:

 ERROR: Couldn't connect to Docker daemon - you might need to run `docker-machine start default`. 

本地版本:

 Docker version 1.11.0, build 4dc5990 docker-compose version 1.8.0, build 94f7016 (Gentoo Linux) 

远程版本:

 Docker version 1.7.0-dev, build 582db78 (FreeBSD 11.0-RELEASE-p1) 

当其他命令似乎与它沟通的时候,为什么docker-compose up会使用不同的套接字工作呢?