Docker alpine 映像的基本命令不起作用
Posted
技术标签:
【中文标题】Docker alpine 映像的基本命令不起作用【英文标题】:Docker alpine image's basic commands are not working 【发布时间】:2017-01-20 11:14:01 【问题描述】:当我使用一些简单的基于 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 的论坛,但到目前为止还没有报告过类似的问题。
任何想法为什么会发生?
【问题讨论】:
【参考方案1】:rc-update
工具是一个 part of the openrc
package,它不包含在基本映像中。
apk add openrc
【讨论】:
以上是关于Docker alpine 映像的基本命令不起作用的主要内容,如果未能解决你的问题,请参考以下文章
「容器架构」Debian和 Alpine作为基准Docker映像的对比
将 mod_rewrite 添加到 Docker 映像 httpd:alpine
ehcache 在 Tomcat Docker 映像中不起作用
如何从 Alpine Docker 映像安装 php8.0-ssh2
为 Spring Boot 应用程序基于“openjdk:8-jdk-alpine”构建 docker 映像时无法运行“./mvnw clean install”