логотип PurpleSchool
логотип PurpleSchool

Подключение по ssh-серверу к Docker

Автор

Олег Марков

Введение

В современном мире контейнеризация становится все более распространенной в разработке и развертывании приложений. Docker предлагает мощные инструменты для управления контейнерами, что позволяет разработчикам создавать, тестировать и развертывать приложения с минимальными усилиями. Однако, чтобы эффективно управлять Docker-контейнерами на удаленном сервере, необходимо знать, как подключаться по SSH. Этот способ подключения позволяет вам безопасно и удобно работать с удаленными Docker-демонами. В этой статье мы рассмотрим, как настроить и использовать SSH для управления Docker.

Почему именно SSH?

SSH (Secure Shell) — это сетевой протокол, который обеспечивает безопасный доступ к удаленным машинам. Он широко используется для управления серверами и является стандартом в индустрии благодаря своей безопасности и простоте. Использование SSH для доступа к Docker имеет несколько преимуществ:

  • Безопасность: SSH обеспечивает шифрование данных, что защищает передаваемые данные от перехвата.
  • Удобство: Позволяет управлять Docker-контейнерами так же легко, как и локальными.
  • Гибкость: Вы можете выполнять любые команды Docker, как если бы вы находились на сервере физически.

Теперь давайте посмотрим, как установить и настроить подключение через SSH к Docker.

Установка Docker и SSH

Шаг 1: Установка Docker

Прежде всего, убедитесь, что Docker установлен на вашем сервере. Если Docker еще не установлен, его можно установить следующими командами:

# Обновление пакетов перед установкой Docker
sudo apt-get update 

# Установка необходимых предварительных пакетов
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common 

# Добавление официального GPG ключа Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# Добавление Docker репозитория в APT источники
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# Обновление пакетов после добавления Docker репозитория
sudo apt-get update 

# Установка самой последней версии Docker CE
sudo apt-get install docker-ce

Эти команды подходят для Ubuntu, однако для других дистрибутивов они могут немного отличаться.

Шаг 2: Установка SSH

SSH обычно уже установлен на большинстве серверов, но если это не так, вы можете установить его следующей командой:

# Установка SSH сервера
sudo apt-get install openssh-server

Проверьте, что SSH сервис работает:

# Проверка статуса SSH сервера
sudo systemctl status ssh

Конфигурация SSH для подключения к Docker

Шаг 3: Настройка конфигурации SSH

Для начала, вам следует настроить конфигурацию SSH клиента на вашей локальной машине. Вам потребуется файл конфигурации ~/.ssh/config. Если он не существует, создайте его:

touch ~/.ssh/config

Добавьте в него следующий блок, чтобы настроить подключение к вашему серверу:

Host your-server
  HostName your-server-ip
  User your-username
  IdentityFile ~/.ssh/your-private-key

Далее, вы можете подключиться к серверу следующим образом:

ssh your-server

Здесь your-server — это псевдоним вашего сервера, а также потребуется указать IP сервера, имя пользователя и путь к вашему приватному ключу.

Шаг 4: Установка Docker через SSH

После того, как вы установили SSH и Docker, следуйте проверке версии Docker, чтобы убедиться, что он установлен корректно:

# Проверка версии Docker
docker --version

Теперь вы сможете управлять Docker-контейнерами, подключившись к серверу через SSH. Но для этого удобно использовать команды, передаваемые через SSH.

Шаг 5: Запуск Docker-команд по SSH

SSH позволяет запускать команды Docker напрямую. Чтобы запустить команду Docker на удаленном сервере, можно использовать следующий синтаксис:

ssh your-server 'docker ps'

Здесь мы выполняем команду docker ps, которая показывает все работающие контейнеры на удаленном Docker-сервере.

Давайте углубимся в подробнее примеры команд Docker, которые вы можете выполнять через SSH.

Примеры и команды

Список контейнеров

Для получения списка всех работающих контейнеров выполните:

ssh your-server 'docker ps'

Для отображения всех контейнеров, включая остановленные, используйте флаг -a:

ssh your-server 'docker ps -a'

Запуск нового контейнера

Чтобы запустить новый контейнер, например, с образом NGINX, используйте команду:

ssh your-server 'docker run --name web-server -d nginx'

Остановка контейнера

Для остановки контейнера используйте следующую команду, заменяя container_id на идентификатор контейнера:

ssh your-server 'docker stop container_id'

Удаление контейнера

Если необходимо удалить контейнер, выполните:

ssh your-server 'docker rm container_id'

Теперь вы увидели, как команды Docker можно эффективно выполнять через SSH, что позволяет не только управлять контейнерами, но и автоматизировать процессы.

Заключение

Использование SSH для управления Docker-серверами предоставляет вам мощные инструменты для безопасности и гибкости работы. В этой статье мы обсудили, как настроить SSH, установить Docker и выполнять команды Docker через SSH. Теперь вы можете без труда управлять своими Docker-контейнерами на удаленных серверах, используя SSH-подключение. Это один из самых удобных и безопасных методов управления вашим контейнерным окружением, обеспечивающий надежность и удобство работы.

Карта развития разработчика

Получите полную карту развития разработчика по всем направлениям: frontend, backend, devops, mobile