Установка OpenSSH на контейнере Alpine Docker

23

При запуске контейнера альпийских докеров в первый раз и при попытке установки openssh происходит следующее:

[email protected]:~$ 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 29.02.2016 в 01:05
источник
  • Не отвечая, просто поделитесь: если вы запустите SSHD в своих контейнерах Docker, вы делаете это неправильно! by jpetazzo - docker dev. –  Auzias 29.02.2016 в 09:31
  • Здравствуйте @Auzias - Отличная статья - спасибо. Я устанавливаю SSH-сервер, чтобы одновременно узнать больше о SSH и Alpine. В основном игрушечный эксперимент. –  Ole 29.02.2016 в 18:34
  • @Auzias, ssh'ing в контейнер полезен для удаленных отладочных приложений python. –  Pitt 29.01.2018 в 23:21
  • @Auzias От вашей ссылки: если ваш контейнер не является SSH-сервером, конечно. :) –  weberc2 04.02.2018 в 00:28
  • @ weberc2 очевидно! @pitt Я не согласен, лучшей практикой для этой необходимости является запуск другой докеры со всеми вашими средствами отладки и выполнение docker exec debugging-img -pid = container-to-debug –  Auzias 06.02.2018 в 08:00

2 ответа

46

Сначала запустите apk update . В приведенной пасте содержится полный пример:

    [email protected]:~$ 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 29.02.2016 в 01:05
  • Или сделать и обновить и добавить за один снимок: RUN apk add --update openssh –  Ates Goral 03.02.2017 в 04:45
4

Как уже сказано, но я что-то добавлю.

В новой версии, если вы хотите установить что-то без локализации кеширования, которое рекомендуется для хранения ваших контейнеров в малом размере, укажите флаг --no-cache . Пример:

apk add --no-cache openssh

Это небольшой выигрыш, он не позволяет вам иметь общий rm -rf /var/cache/apk/* в конце вашего файла Docker.

    
ответ дан Adiii 13.03.2018 в 13:50