web-dev-qa-db-ja.com

Alpine Docker Containerへの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はどのようにインストールする必要がありますか?

49
Ole

最初に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
75
Ole

答えはすでに与えられていますが、私は何かを追加します。

新しいバージョンでは、ローカルにキャッシュせずに何かをインストールしたい場合(コンテナを小さく保つために推奨)、--no-cacheフラグを含めます。例:

apk add --no-cache openssh

これは小さな利点であり、Dockerfileの最後に共通のrm -rf /var/cache/apk/*が含まれないようにします。

41
Adiii