2017-05-31 115 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]