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

无法通过SSH转发的域套接字连接到远程docker主机,docker,docker-compose,freebsd,Docker,Docker Compose,Freebsd,我希望能够使用远程守护程序编写用户docker。我创建了一个到远程守护进程套接字的本地转发,如下所示: #!/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.1

我希望能够使用远程守护程序编写用户
docker
。我创建了一个到远程守护进程套接字的本地转发,如下所示:

#!/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'
运行该脚本后,我导出以下环境变量:

DOCKER_API_VERSION 1.19
COMPOSE_API_VERSION 1.19
DOCKER_HOST unix://$HOME/.remote-sockets/docker.sock 
设置这些变量后,我可以验证运行
docker ps
时显示的是远程容器,而不是本地守护进程的容器。此外,
docker compose ps
似乎也连接到远程守护进程,因为它返回一个空列表。如果我关闭SSH隧道,它会失败,说它无法连接到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 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
为什么不能使用另一个套接字呢?

相同的设置是否可以控制运行docker 1.11的Linux主机?控制运行Docker 1.7.x的Linux主机?码头的FreeBSD港口是那里最大的未知之地,因为它很古老,从未真正通过“实验”。