无法通过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
会使用不同的套接字工作呢?
- dockerCMD从上面的图像继续作为parameter passing给ENTRYPOINT
- 在线调整容器资源
- 通过在本地运行自己的IP来持续集成Docker镜像?
- 为什么Docker的秘密比环境variables更安全?
- 无法在ubuntu:14.04容器中inputunicode,可以在busybox中input
- 如何将docker设置回默认configuration
- 我试图在Google云计算虚拟机实例上运行Docker“hello-world”应用,但似乎无法通过Web浏览器访问输出
- 我正在用Docker Compose运行2张图片,并且遇到了从我的Mac打到本地主机的麻烦。 我正在公开端口3000.我错过了什么?
- 在Azure中的Docker中,一个带有swagger的asp.net核心Web API不起作用