Tag: ssh

运行Jupyter笔记本的Docker – “no $ DISPLAY环境variables”?

我使用Jupyter Notebook运行Docker容器: sudo nvidia-docker run -it -v /media/files:/files -p 8888:8888 -p 6001:6001 mybigdocker:latest 然后在Chrome中的127.0.0.1:8888连接到它。 一切工作正常,除非我尝试用matplotlib,或任何types的非文本输出,我得到的错误: TclError: no display name and no $DISPLAY environment variable 我已经尝试join–env="DISPLAY"和–env=$DISPLAY和–env=":0"没有用。 我该如何解决?

SSH连接无法断开连接

我有一个长期运行的进程(有时> 2小时),打开一个SSH连接(ruby的Net::SSH库),运行一个命令,然后closures连接。 这在我们的旧VM环境中运行良好。 我只是将代码移植到GKE中的Docker镜像,现在SSH连接被打开了。 这似乎只发生超过30分钟左右的工作。 我检查了两端,并在远程/服务器端(在/var/log/secure )我可以看到连接build立,会话打开,然后会话closures。 用netstat -a我可以看到连接不再列出。 但是在本地/客户端, netstat -a显示的连接仍然是“ESTABLISHED”。 由于某种原因,它没有得到断开连接的通知。 鉴于这在一个环境,而不是另一个工作,我不认为这个问题是在Net::SSH ,而是在一些configuration是不同的或一些networking是不同的。 我已经尝试在客户端代码中添加一个保持活动状态(以为keep-alive会触发客户端检测服务器何时不再连接),但这似乎没有什么区别: Net::SSH.start(Settings.ssh.host, Settings.ssh.user, options) do |ssh| ssh.send_global_request("keep-alive@openssh.com") response = ssh.exec!(cmd) end 同样,我更新了服务器上的sshd以包含keep-alive( 按照这个SO回答 ),但似乎没有解决它: TCPKeepAlive yes ClientAliveInterval 60 ClientAliveCountMax 3

损坏的dockerfile:github的部署密钥不再复制正确

下面的代码片段在一个月前工作得很好(我最后一次运行容器)。现在不是。 为什么? RUN mkdir /root/.ssh && \ mv /root/deployment_key /root/.ssh/id_rsa && cat /root/.ssh/id_rsa && \ chmod 600 /root/.ssh && \ chmod 600 /root/.ssh/id_rsa && \ ssh-keyscan github.com,$(getent hosts github.com | awk '{ print $1 }') > ~/.ssh/known_hosts 当我cat ~/.ssh/known_hosts ,公钥只有它应该的一半。 私钥在/root/.ssh/id_rsa是正确的。 下一行(私人回购的git clone )失败 Permission denied (publickey). fatal: The remote end hung up unexpectedly The […]

有没有办法从我的本地开发环境(Sublime)访问远程服务器上正在运行的Docker容器?

目前我可以使用rsub和sublime进行远程编辑,但是容器是第二层ssh,只能从主机访问。

通过ssh隧道检查mysql docker容器

我有一个在远程主机上运行Mysql的Docker容器。 我想通过从本地主机的SSH隧道检查Mysql数据库与Phpmyadmin。 容器在docker0桥内,地址为172.17.0.2,在端口3306上侦听。 我尝试了很多次,没有成功。 $cfg['Servers'][$i]['host'] = '127.0.0.1'; $cfg['Servers'][$i]['port'] = '3333'; $cfg['Servers'][$i]['connect_type'] = 'tcp'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['AllowNoPassword'] = false; 这是一个双ssh隧道的尝试: ssh -t -t -L3333:localhost:10000 remotehostip 'ssh -L10000:172.17.0.2:3306 localhost' Phpmyadminconfiguration: 我做错了什么? 我不想公开Mysql端口。 感谢您的答案!

等同于使用ssh隧道

使用虚拟主机而不是部署Docker容器,对于我来说,创buildssh隧道是为了从我的本地机器访问分隔的机器是一个正常的工作过程。 例如连接我的psql客户端到一个Postgres实例,我只能从一个堡垒框到达。 有了Docker,一切都变得更加复杂了。 是否有相同的做法,但与Docker? 通过Docker实例隧道到RDS实例?

Docker和SSH开发phpStorm

我正在尝试使用Docker设置一个小型开发环境。 phpStorm团队正在努力将Docker集成到远程解释器中,因此对于debugging,但遗憾的是还没有工作(请看这里 )。 我必须添加这种debuggingfunction的唯一方法是通过创build和启用对容器的SSH访问,使其像魅力一样工作。 现在,我已经阅读了很多关于这个和一些喜欢这个post上的人说不推荐。 我读过其他人说,有一个专用的SSHdocker容器,我不知道如何适应这个环境。 我已经创build了一个用户docker-user ( 在这里检查repo)来执行某些任务,比如没有root权限的运行composer 。 这可以用于这个SSH的东西很容易通过添加一个默认的密码。 在这种情况下你将如何处理?

在构build期间在dockerized rails应用程序中使用私有Github存储库

我用docker-compose.ymldocker化了一个新的Rails 5应用程序,并且将我的ssh-agent套接字转发到了撰写文件中的容器中。 如果我通过docker构build和运行,这是工作正常,我可以访问SSH密钥。 但是,如果将bundle install添加到从私有Git存储库获取并需要SSH密钥的构build过程中,则当然还不可用。 我该如何解决这个问题? 我目前的Dockerfile和docker-compose.yml文件是: https ://gist.github.com/solars/d9ffbc4c570e9a128d6b0254268d785a 谢谢!

Cloud9 – 有没有办法使用独立的ssh工作区?

我在本地运行Cloud9 + Docker组合,以跟上一堆小项目。 整个动物园坐在我的笔记本电脑上,和我一起旅行。 我select在本地运行基础架构,因为我经常旅行,而且在无线连接或欧盟漫游时,云端IDE并不好玩;-) 通常情况下,我有一个与Cloud9 +相应的堆栈的docker图像,我运行每个项目的容器。 正在安装Cloud9 SDK的方式是这样的: git clone git://github.com/c9/core.git c9sdk –depth 1 cd c9sdk ./scripts/install-sdk.sh ./server.js -p 5000 –listen 0.0.0.0 -a : -w ~/src/${project-name} 一个轻微的不便之处在于我有Cloud9实例坐在那里。 问题 :我想知道是否有一种方法来运行server.js以使用来自另一台机器/ docker容器的ssh工作区? 我知道这可以在网上完成。 一些提示 :我对源代码进行了一些修改,看起来正确的做法是用c9.vfs.XXXX的适当configuration创build一个自定义的客户端工作区文件,然后用–workspacetype选项运行Cloud9。 但是我只是不知道如何设置插件来使Cloud9在SSH上运行,而不是在本地运行。 我想现在我甚至不需要使用SSHFS,因为我可以通过docker装入源代码。

如何有效地通过SSH从服务器上运行的所有Docker容器获取信息?

我需要通过SSH获取在远程服务器上运行的所有Docker容器的信息。 可能有几百个docker集装箱同时运行。 什么是最有效的方式来获得所有的信息? Rest API不是一个选项。 我需要做的是 ssh root@blah.com execute docker container ls # get containers info for container_id in containers: execute docker inspect container_id 我不能将命令的输出写入文件。 多个SSH连接? 我怎样才能和paramiko做到这一点? 通过一个SSH连接同时运行多个命令? 这可以通过paramiko完成吗?