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

时间:2016-12-27 09:31:16

标签: docker docker-compose freebsd

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

#!/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-compose up使用不同的套接字?

0 个答案:

没有答案