ssh - Docker alpine image 的基本命令不起作用

标签 ssh docker containers alpine-linux

当我使用一些简单的基于 alpine 的容器时,docker 开始产生奇怪的错误。其中两个问题是:

  • rc-update在我尝试使用时没有找到
  • 安装openssh包后,/etc/ssh里面什么都没有或者没有/etc/init.d/sshd启动/重启服务

为了避免混淆,我查看了一个广泛使用的容器,它用作简单的 SSH 服务器。你可以通过执行:

git clone https://github.com/chamunks/alpine-openssh.git

之后进入 alpine-openssh 目录并使用以下命令构建容器:

docker build -t alpine-openssh .

我的产品如下:

Sending build context to Docker daemon 125.4 kB
Step 1 : FROM alpine
 ---> 4e38e38c8ce0
Step 2 : MAINTAINER Chamunks <Chamunks@gmail.com>
 ---> Running in c21d3fa28903
 ---> f32322a2871a
Removing intermediate container c21d3fa28903
Step 3 : COPY sshd_config /etc/ssh/sshd_config
 ---> 392364fc35ce
Removing intermediate container 4176ae093cb8
Step 4 : ADD https://gist.githubusercontent.com/chamunks/38c807435ffed53583f0/raw/ec868d1b45e248eb517a134b84474133c3e7dc66/gistfile1.txt /data/.ssh/authorized_keys
Downloading [==================================================>]    864 B/864 B
 ---> c3899b675728
Removing intermediate container f83629b6fa9b
Step 5 : RUN apk add --update openssh &&     rc-update add sshd &&     rc-status &&     touch /run/openrc/softlevel &&     /etc/init.d/sshd start &&     /etc/init.d/sshd stop &&     adduser -D user -h /data/
 ---> Running in 1d1aad9d1678
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/community/x86_64/APKINDEX.tar.gz
(1/3) Installing openssh-client (7.2_p2-r3)
(2/3) Installing openssh-sftp-server (7.2_p2-r3)
(3/3) Installing openssh (7.2_p2-r3)
Executing busybox-1.24.2-r9.trigger
OK: 8 MiB in 14 packages
/bin/sh: rc-update: not found
The command '/bin/sh -c apk add --update openssh &&     rc-update add sshd &&     rc-status &&     touch /run/openrc/softlevel &&     /etc/init.d/sshd start &&     /etc/init.d/sshd stop &&     adduser -D user -h /data/' returned a non-zero code: 127

注意 /bin/sh: rc-update: not found 部分。这应该工作,但它没有。我重新启动了我的 docker 服务,查看了 docker 的论坛,但到目前为止还没有报告类似的问题。

任何想法为什么会发生?

最佳答案

rc-update 工具是 part of the openrc package不包含在基础镜像中。

apk add openrc

关于ssh - Docker alpine image 的基本命令不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39460085/

相关文章:

ubuntu - fail2ban 无法禁止 Ubuntu 14.04

javascript - 编写正确的 Dockerfile

c++ - 从具有运行时索引的元组中选择一组值

Git 克隆在 Ansible 中挂起

linux - 如何将 AllowTcpForwarding 设置为 no 进行 ssh 转发?

Java exec 或运行时无法与 ssh 一起使用

azure - 通过 SSH 连接到 Azure 的 Kubernetes 托管主节点

visual-studio - 为什么在 Visual Studio 中结束调试后我的 docker 容器 ASP.NET 核心应用程序不可用

windows - 在Windows Hyper-V容器中运行不受信任的代码

c++ - boost::mpl::vector - 获取类型的基本偏移量