使用带有ssh隧道的远程docker。

docker-tunnel的Python项目详细描述


docker-tunnel是一个控制台实用程序,用于使用带有ssh隧道的远程docker。

如果您使用的是OS X或Linux发行版,但不支持Docker内核, 不再运行虚拟机或远程shell的ssh。

安装

使用pip:

$ pip install docker-tunnel

使用pipsi(推荐):

$ pipsi install docker-tunnel

用法

$ docker-tunnel user@example.com
(user@example.com) $
(user@example.com) $ echo $DOCKER_HOST
127.0.0.1:4243
(user@example.com) $ docker ps  # go ahead
...
(user@example.com) $ ^D  # ctrl-d
$

更多选项:

$ docker-tunnel --help

外壳主题集成

在隧道注入的shell中,将分配环境变量DOCKER_HOSTDOCKER_PROMPT_INFO。它们可以在shell主题中用于提示您正在使用哪个隧道。

有一个例子,my custom theme表示oh-my-zsh。

故障排除

Error response from daemon: client and server don't have same version (client : 1.14, server: 1.12)

CentOS 7源中的Docker正在使用API 1.12,但OS X自制中的Docker客户端没有。您可以使用自制程序降级Docker客户端:

$ brew versions docker
...
1.0.0    git checkout c513c42 /usr/local/Library/Formula/docker.rb
...
$ cd /usr/local/Library/Formula  # now we install the old version of docker
$ git checkout c513c42 -- docker.rb
$ brew unlink docker
$ brew install docker
$ git checkout HEAD -- docker.rb
$ cd -
$ brew info docker  # check the installed versions and current version
...
/usr/local/Cellar/docker/1.1.1 (9 files, 9.8M) *
  Poured from bottle
/usr/local/Cellar/docker/1.2.0 (9 files, 6.6M)
  Poured from bottle
...
$ docker-tunnel user@example.com
(user@example.com) $ docker version
Client version: 1.0.0
Client API version: 1.12
...
(user@example.com) $ exit
$ brew switch 1.2.0  # restore to latest
bind: Address already in use. cannot listen to port: 4243
您可以找到用sudo lsof -i :4243保存4243端口的进程,并决定终止它或用--local-port选择另一个端口。
channel 1: open failed: connect failed: Connection refused. 2014/09/06 13:08:57 Get http://127.0.0.1:4243/v1.14/info: EOF
Docker服务器是否监听127.0.0.1:2375?您可能必须使用--remote-host--remote-port设置正确的服务器信息。

已知错误

  • ssh隧道只能使用公钥进行身份验证。密码提示将导致崩溃。

问题

如果要报告错误或请求功能,请在 GitHub Issues

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Admob初始化失败,应用程序在启动时崩溃,即使没有错误   java如何在ibatis中使用存储过程?   java干净体系结构:在不同的环境中分离IO和核心。jar文件   Java streams compare属性在两个列表之间相等,并返回true或false   有没有一种压缩Java Try-Catch块的方法?   Android片段中的java Mapbox SDK   用于IzPack安装的JavaFX本机启动器:控制InnoSetup/WiX/RPMBuild行为   java接口是否可以将一个已经实例化的对象作为属性?   hashmap中的java线程问题   请求中的java字符编码。getRemoteUser()   java将OneTONE链接更改为另一个id为的实体   java当使用javaw启动应用程序时,不会执行关闭钩子。exe   Android java代码更改显示的微调器   java GZIP解压字符串和字节转换   运行springbatch后java LDAP运行状况检查失败