无法通过SSH进入运行Alpine Linux 3.10的Docker容器

问题描述 投票:0回答:1

我在使用SSH连接到运行Alpine Linux 3.10的Docker容器(来自this image)时遇到问题。必须为此连接使用SSH,而不是其他连接方法。

首先我使用以下方法连接到Docker容器中

docker exec -it <container_name> /bin/bash

然后尝试重新安装并启动sshd

bash-5.0# apk add openssh --no-cache
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/community/x86_64/APKINDEX.tar.gz
OK: 117 MiB in 42 packages

bash-5.0# apk add openrc --no-cache
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.10/community/x86_64/APKINDEX.tar.gz
OK: 117 MiB in 42 packages

bash-5.0# rc-update add sshd
 * rc-update: sshd already installed in runlevel `sysinit'; skipping

bash-5.0# /etc/init.d/sshd start
 * WARNING: sshd is already starting

但是,我无法从Docker容器内部连接到本地sshd服务器

# ssh [email protected]
ssh: connect to host 127.0.0.1 port 22: Connection refused

同样,从Ubuntu主机通过SSH连接到Docker容器也失败。

$ ssh [email protected]
ssh: connect to host 172.26.0.4 port 22: Connection refused

其中172.26.0.4是从Docker容器中运行ifconfig显示的IP地址。

关于如何解决这个问题的任何想法?

linux docker ssh openssh alpine
1个回答
0
投票

我没有下载您所指的映像,但是使用了默认的docker alpine-image。为了使ssh在容器中运行,还需要执行一些额外的步骤-您很有可能需要执行相同的操作:

ssh-keygen -A
rc-status
touch /run/openrc/softlevel
/etc/init.d/sshd start
© www.soinside.com 2019 - 2024. All rights reserved.