在Alpine Docker容器上安装OpenSSH

Ole*_*Ole 54 linux install docker alpine-linux

第一次运行alpine docker容器并尝试openssh安装时,会发生以下情况:

ole@T:~$ docker run -it --rm alpine /bin/ash
/ # apk add openssh
WARNING: Ignoring APKINDEX.d3812b7e.tar.gz: No such file or directory
WARNING: Ignoring APKINDEX.bb2c5760.tar.gz: No such file or directory
ERROR: unsatisfiable constraints:
  openssh (missing):
    required by: world[openssh]
Run Code Online (Sandbox Code Playgroud)

应该如何安装openssh?

Ole*_*Ole 80

apk update第一.以下粘贴包含一个完整的示例:

    ole@T:~$ docker run -it --rm alpine /bin/ash
    / # apk update
    fetch http://dl-4.alpinelinux.org/alpine/v3.3/main/x86_64/APKINDEX.tar.gz
    fetch http://dl-4.alpinelinux.org/alpine/v3.3/community/x86_64/APKINDEX.tar.gz
    v3.3.1-97-g109077d [http://dl-4.alpinelinux.org/alpine/v3.3/main]
    v3.3.1-59-g48b0368 [http://dl-4.alpinelinux.org/alpine/v3.3/community]
    OK: 5853 distinct packages available
    / # apk add openssh
    (1/3) Installing openssh-client (7.1_p2-r0)
    (2/3) Installing openssh-sftp-server (7.1_p2-r0)
    (3/3) Installing openssh (7.1_p2-r0)
    Executing busybox-1.24.1-r7.trigger
    OK: 8 MiB in 14 packages
Run Code Online (Sandbox Code Playgroud)

  • 或者,做一次更新和添加:`RUN apk add --update openssh` (16认同)
  • **运行 apk add --update --no-cache openssh** (10认同)

Adi*_*iii 45

已经给出了答案,但我会补充一些东西.

在新版本中,如果要在不本地缓存内容的情况下安装某些内容(建议将容器保持在较小的位置),请包含该--no-cache标志.例:

apk add --no-cache openssh
Run Code Online (Sandbox Code Playgroud)

这是一个小小的收获,它可以防止你rm -rf /var/cache/apk/*在Dockerfile的末尾使用common.


BMW*_*BMW 8

Dockerfile 供您参考

FROM alpine:3

RUN apk add --update --no-cache openssh

CMD ["ssh"]
Run Code Online (Sandbox Code Playgroud)