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 VOLUME
Вы можете создать новый 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@session\s*required\s*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 и разработки.
Интегрировав их, вы сможете создать более гибкую, более безопасную и более мощную среду разработки.
. Всегда помните о том, что для обеспечения безопасности и надежности вашей среды необходимо применять эффективные методы защиты, такие как смена паролей по умолчанию и регулярное обновление программного обеспечения.
см. также:
- 🐳 GitLab CI: Как создавать образы Docker в Kubernetes
- 🔐 Как установить сервер OpenSSH на Alpine Linux (включая Docker)
- 🐳 Как подключиться к контейнеру Docker по ssh
- 🐳 Как запускать удаленные команды Docker с помощью SSH
- 🐳 Проверка образов и контейнеров Docker с помощью VirusTotal: пошаговое руководство