Docker – это платформа с открытым исходным кодом, которая позволяет разработчикам автоматизировать развертывание, масштабирование и управление приложениями.
Это достигается путем создания легких, самодостаточных контейнеров, которые могут работать практически в любом месте.
SSH (Secure Shell) – это протокол, обеспечивающий безопасный канал через незащищенную сеть, обычно используемый для входа в другой компьютер по сети и выполнения команд.
В этой статье приводится пошаговое руководство по настройке контейнера Ubuntu Docker с доступом по SSH.
Прежде чем мы начнем, вам необходимо установить следующее программное обеспечение:
- Docker: Вы можете установить Docker, по инструкциям в официальной документации Docker.
- SSH-клиент: На Linux и MacOS клиент SSH обычно предустановлен. Пользователи Windows могут использовать PuTTY или встроенный SSH-клиент на Windows 10 и более новых версиях.
Шаг 1: Скачивание образа Ubuntu
Первым шагом будет извлечение образа Ubuntu из Docker Hub.
Docker Hub – это облачная служба регистрации, которая позволяет связывать репозитории кода, детали сборки и многое другое.
Используйте следующую команду:
Шаг 2: Создайте Dockerfile
Dockerfile – это текстовый документ, содержащий все команды, которые пользователь может вызвать в командной строке для сборки.
Вы можете создать новый Dockerfile и открыть его в текстовом редакторе.
Вот пример Dockerfile для настройки SSH в контейнере Ubuntu:
# Используем официальный образа качестве родительского FROM ubuntu # Обновим систему RUN apt-get update && apt-get upgrade -y # Установим OpenSSH Server RUN apt-get install -y openssh-server # Настроим SSH RUN mkdir /var/run/sshd RUN echo 'root:THEPASSWORDYOUCREATED' | chpasswd RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config # Исправление входа в систему SSH. В противном случае пользователя выкидывает из системы после входа RUN sed 's@sessions*requireds*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd ENV NOTVISIBLE "in users profile" RUN echo "export VISIBLE=now" >> /etc/profile #Открыть порт SSH EXPOSE 22 # Запуск SSH CMD ["/usr/sbin/sshd", "-D"]
Замените “THEPASSWORDYOUCREATED” на пароль, который вы хотите использовать для SSH.
Сохраните этот Dockerfile.
Шаг 3: Сборка образа Docker
Когда ваш Dockerfile готов, вы можете собрать образ Docker.
Используйте следующую команду:
Эта команда создаст образ из вашего Dockerfile и пометит его как ubuntu-ssh.
Шаг 4: Запуск контейнера Docker
Теперь вы готовы запустить свой контейнер Docker с помощью следующей команды:
Система запустит ваш контейнер Docker в фоновом режиме (-d) и сопоставит порт 2222 вашей машины с портом 22 вашего контейнера Docker, который является портом SSH по умолчанию.
Шаг 5: Подключение к контейнеру Docker через SSH
Наконец, вы можете подключиться к своему контейнеру Docker через SSH.
Используйте следующую команду:
Вам будет предложено ввести пароль, который вы задали ранее в Dockerfile. Как только вы его введете, вы будете подключены к вашему контейнеру Ubuntu Docker по SSH!
Заключение
Docker и SSH – мощные инструменты в сфере devOps и разработки.
Интегрировав их, вы сможете создать более гибкую, более безопасную и более мощную среду разработки.
. Всегда помните о том, что для обеспечения безопасности и надежности вашей среды необходимо применять эффективные методы защиты, такие как смена паролей по умолчанию и регулярное обновление программного обеспечения.