首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在OSX(boot2docker)上获得与docker容器的ssh连接

如何在OSX(boot2docker)上获得与docker容器的ssh连接
EN

Stack Overflow用户
提问于 2014-04-11 21:55:51
回答 3查看 14.1K关注 0票数 16

我在OSX和boot2docker上使用docker。

我想从我的终端获得一个进入运行容器的Ssh连接。

但是我不能这样做:

我认为这是因为Docker在虚拟机中运行。

EN

回答 3

Stack Overflow用户

发布于 2015-01-08 03:06:09

Docker已经在Docker 1.3.0中添加了docker exec命令。您可以通过以下方式连接到正在运行的容器:

docker exec -it <container id> /bin/bash

它将连接到正在运行的容器上的bash提示。

票数 32
EN

Stack Overflow用户

发布于 2014-10-02 04:04:33

如果你只是想进入运行的容器,你可以考虑使用nsenter。下面是一个简单的bash脚本(suggested by Chris Jones),您可以使用它进入docker容器。将其另存为docker-enter和chmod +x,保存在$PATH中的某个位置

#!/bin/bash
set-e
# Check for nsenter. If not found, install it
boot2docker ssh '[ -f /var/lib/boot2docker/nsenter ] || docker run --rm -v /var/lib/boot2docker/:/target jpetazzo/nsenter'
# Use bash if no command is specified
args=$@
if[[ $# = 1 ]]; then
    args+=(/bin/bash)
fi

boot2docker ssh -t sudo /var/lib/boot2docker/docker-enter "${args[@]}"

然后您可以运行docker-enter 89af3d (或您想要输入的任何配置)

票数 1
EN

Stack Overflow用户

发布于 2014-10-19 09:33:18

Michael答案的一个略微修改的变体,只需要您想要输入的容器被命名(APPNAME):

boot2docker ssh '[ -f /var/lib/boot2docker/nsenter ] || docker run --rm -v /var/lib/boot2docker/:/target jpetazzo/nsenter'

boot2docker ssh -t sudo /var/lib/boot2docker/docker-enter $(docker ps | grep $APPNAME | awk '{ print $1 }')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23014684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档