Как подключиться к контейнеру Docker

Обсудить
Как подключиться к контейнеру Docker

Основная идея Докера – упаковка приложения со всей его структурой, зависимостями и данными в специальное место под названием контейнер. Его можно разворачивать на своем сервере и переносить на любую Linux-систему или Windows. Часто разработчикам необходимо получить доступ к контейнеру, чтобы посмотреть, что в нем происходит. Если присутствуют какие-то ошибки или недоработки, то их можно исправить различными командами, кроме того, таким способом можно посмотреть логи контейнера. Сделать все это можно после подключения к Docker. О том, как к нему подключиться по защищенному протоколу SSH, и поговорим в сегодняшней статье.

Устанавливаем соединение с сервером по SSH

SSH – сетевой протокол, осуществляющий защищенное соединение с удаленными устройствами через консольное окно. Благодаря ему пользователь может безопасно обмениваться данными (фото, видео, текстовые файлы), работать в командной строке, удаленно запускать программы и многое другое.

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

Для подключения используется специальная программа – PuTTY. В нее нам потребуется ввести IP-адрес сервера и данные для авторизации. Все это нужно для того, чтобы подключиться к серверу, на котором есть Docker. Об этом мы еще поговорим, а пока давайте рассмотрим, как воспользоваться PuTTY:

  1. Первым шагом загружаем утилиту с официальной страницы и устанавливаем ее к себе на компьютер.Putty
  2. Для подключения к серверу нам потребуется узнать IP-адрес. Если вы пользуетесь услугами хостинг-провайдера, то его можно найти в личном кабинете. Например, на Timeweb адрес VDS находится в разделе «Дашборд серверов».Как на timeweb vds узнать адрес сервера
  3. Переходим в PuTTY и в разделе «Session» вставляем скопированный адрес. Также убеждаемся, что указан порт 22 и установлено соединение по SSH. В завершение кликаем по кнопке «Open».Как подключиться к серверу по ssh
  4. В отобразившемся окне вводим логин и пароль для авторизации на сервере. Обратите внимание, что при вводе пароля набираемый текст скрыт, а также учитывается регистр букв.Как подключиться к vds через защищенный протокол ssh
  5. При успешном соединении будет отображена информация об установленной операционной системе.Как получить доступ к серверу по ssh

Доступ к серверу по защищенному протоколу SSH мы получили. Теперь нам осталось подключиться к докер-контейнеру, о чем поговорим далее.

Подключаемся к контейнеру Docker

Существует два способа подключения к запущенному контейнеру через SSH: с помощью attach и exec. Это две команды, позволяющие выполнять команды в контейнере. Первая не предназначена для запуска нового процесса в контейнере и позволяет запустить только один экземпляр shell.

Если требуется воспользоваться новым терминалом, то здесь нам поможет команда exec. Она полезна, когда нужно выполнить новую команду или создать новый процесс. Attach же соединяет стандартный ввод, вывод или ошибку основного процесса внутри контейнера с соответствующим стандартным вводом, выводом или ошибкой терминала.

Для подключения к докер-контейнеру с помощью вышеупомянутых команд, нам потребуется воспользоваться командой docker ps. Она позволяет найти имя, ID конкретного контейнера и прочие атрибуты. В результате ее выполнения мы увидим следующее:

Как узнать имя контейнера docker

Присоединиться с помощью attach можно следующей командой:

docker container attach my_nginx

Вы можете скопировать ее в буфер обмена и вставить в консоль PuTTY простым кликом правой кнопкой мыши.

Чтобы отсоединиться от контейнера без его остановки, мы можем воспользоваться комбинацией клавиш «CTRL+P» или «CTRL+Q». Для его остановки достаточно зажать «CTRL+C».

Подключение через exec происходит при выполнении команды:

docker exec -i -t «CONTAINER ID» bash 

Container ID – это номер контейнера, который мы узнали при запросе данных о докер-контейнерах. В нашем случае строчка кода преобразится в следующий вид:

docker exec -it 9f5fcale0d22 bash

В результате выполнения команды произойдет защищенное подключение к контейнеру Docker. Вот еще некоторые команды для управления контейнером:

  • docker ps -a — позволяет посмотреть, какие контейнеры находятся в системе;
  • docker ps -l — показывает последние созданные контейнеры;
  • docker start «CONTAINER ID» — запуск остановленного контейнера;
  • docker stop peaceful_minsky — выключение активного контейнера;
  • docker stop «CONTAINER ID» && docker start «CONTAINER ID» — перезагрузка контейнера без его отключения;
  • docker-compose up -d --no-deps –build — запуск compose контейнера;
  • docker rm «ID OR NAME CONTAINER» — удаление контейнера.

На этом наша статья подходит к концу. Сегодня мы разобрали такие команды, как docker exec и docker attach, с помощью которых можно подключиться к контейнеру Docker. Для получения интерактивной оболочки стоит использовать exec, для присоединения терминала к контейнеру – attach.

Комментарии