2017-05-31 105 views
3

我要建一个码头工人图像需要ssh到本地主机我工作Ubuntu的台式机上,并开始应用程序(即SSH用户@本地)无法运行的泊坞容器

内本地主机的ssh与基本的Ubuntu的:16.04容器。 以下是我Dockerfile的内容:

FROM ubuntu:16.04 

RUN apt-get update && apt-get install -y \ 
     openjdk-8-jdk \ 
     ssh && \ 
     groupadd -r custom_group && useradd -r -g custom_group -m user1 

USER user1 

RUN ssh-keygen -b 2048 -t rsa -f ~/.ssh/id_rsa -q -N "" && \ 
     cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 

然后我用命令建立这个容器:

docker build -t test-container . 

而且使用运行它:

docker run -it test-container 

容器具有以下打开提示符和密钥生成正确,以启用SSH到本地主机:

[email protected]:/$ 
[email protected]:/$ cd ~/.ssh/ 
[email protected]:~/.ssh$ ls 
authorized_keys id_rsa id_rsa.pub 

然后ssh到本地主机,迎接错误:

[email protected]:~$ ssh [email protected] 
ssh: connect to host localhost port 22: Cannot assign requested address 

有什么我做错了,或者需要进行配置,任何其他网络设置?我只想在正在运行的容器内ssh进入本地主机。

+0

我猜你选择错误的包名即ie。 ssh而不是openssh-server – Rups

+2

你使用IP v6吗?尝试'ssh -4 -v'添加详细信息并强制IP v4 – user2915097

+0

Hi @rups我将'ssh'更改为'openssh-server',仍然受到相同错误的困扰:\ –

回答

0

首先,你需要安装ssh服务器 命令和apt-get安装openssh的-y服务器

比你需要启动SSH服务器 须藤/etc/init.d/ssh开始

2

正如OP注释中提到的@ user2915097,这是由于容器中的ssh实例试图使用IPv6连接到主机。 使用-4强制通过IPv4连接解决了此问题。

$ docker run -it ubuntu ssh -4 [email protected]