在 Alpine Docker 容器上安装 OpenSSH

新手上路,请多包涵

第一次运行 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]

应该如何安装openssh?

原文由 Ole 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
2 个回答

首先运行 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

原文由 Ole 发布,翻译遵循 CC BY-SA 3.0 许可协议

由于答案已经给出,但我会补充一些东西。

在新版本中,如果你想安装一些东西而不在本地缓存东西,建议你的容器很小,包括 --no-cache 标志。例子:

 apk add --no-cache openssh

这是一个小小的收获,它使您不会在 Dockerfile 的末尾出现常见的 rm -rf /var/cache/apk/*

原文由 Adiii 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题