2016-11-25 3 views
1

У меня есть машина ubuntu, на которой размещается контейнер-докер. и в контейнере докера я запустил веб-службу, которая должна подтвердить пароль пользователя с номером пользователя/etc/password .установка ssh в контейнерах докеров

мой взгляд на ssh на хост докера из контейнера докера. , поэтому, когда я запускаю команду ssh в контейнере докера, ее сообщение ssh не найдено. поэтому, в основном ssh не установлен в контейнере. Как установить ssh в контейнер. есть ли способ выполнить этот сценарий ?.

ответ

1

Ну, как часть файла изображения вы просто должны установить OpenSSH-сервер:

sudo apt-get install openssh-server 

Проблема то в том, что традиционно, бегущий докер контейнер будет работать только одну команду. Вы можете обойти эту проблему, используя что-то вроде supervisord. Там пример в докеров документы: https://docs.docker.com/engine/admin/using_supervisord/

Ваш dockerfile может выглядеть следующим образом:

FROM ubuntu:16.04 
MAINTAINER [email protected] 

RUN apt-get update && apt-get install -y openssh-server apache2 supervisor 
RUN mkdir -p /var/lock/apache2 /var/run/apache2 /var/run/sshd /var/log/supervisor 

COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf 

EXPOSE 22 80 
CMD ["/usr/bin/supervisord"] 

Ваш supervisord.conf может выглядеть примерно так:

[supervisord] 
nodaemon=true 

[program:sshd] 
command=/usr/sbin/sshd -D 

[program:apache2] 
command=/bin/bash -c "source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND" 
Смежные вопросы