For the complete documentation index, see llms.txt. This page is also available as Markdown.

Docker и контейнеры

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

Зачем использовать Docker?

Работа в команде разработчиков предполагает совместное использование кода. Когда что-то идет не так, последнее, что вы хотите услышать — «у меня работает». Серверы игр должны надежно запускаться на любой машине, поскольку успешные игровые серверы работают на тысячах серверов по всему миру.

Чтобы сделать ваш сервер надежным, мы используем Docker — виртуализационное ПО, гарантирующее, что все зависимости вашего серверного кода вплоть до уровня операционной системы всегда будут точно такими же, независимо от того, как и где запускается сервер.

Мы рекомендуем посмотреть «Никогда не устанавливайте локально» (видео). Вам НЕ нужно использовать Dockerhub с Docker. Docker ≠ Dockerhub. Думайте о Docker как о движке для программирования, а о Dockerhub — как о его магазине приложений.

Контейнеры

Один контейнер — это стандартная единица программного обеспечения, которая упаковывает код и все его зависимости, чтобы приложение работало быстро и надежно в одной вычислительной среде и в другой. Контейнеры изолируют программное обеспечение от среды и обеспечивают его единообразную работу, несмотря на различия, например между средой разработки и стендом.

После запуска упакованных образов Docker они становятся:

  • Контейнеры если выполняются в Docker Desktop или Docker Engine (обычно локально),

  • Развертывания если выполняются на Edgegap (и в Edge Cloud, и в Private Fleet).

Контейнер нативно работает в Linux (или в Docker Desktop) и разделяет ядро хост-машины с другими контейнерами. Он выполняет отдельный процесс, занимая не больше памяти, чем любой другой исполняемый файл, что делает его легким.

Попробуйте

Чтобы использовать Docker и локально собирать или запускать образы Docker, вам нужно установить Docker:

Установите Docker Desktop (или Docker CLI)

После установки вы можете открыть предпочитаемый терминал и попробовать запустить тестовый образ.

Это автоматически выполнит следующие шаги:

  1. Скачать образ speedtest из репозитория Edgegap (только в первый раз).

  2. Создать и запустить новый контейнер с использованием этого образа на вашей машине.

  3. Назначить имя "speedtest" (используя --name параметр).

  4. Открыть Приложения и версии чтобы подключить порт вашей машины 80 к порту контейнера 80 , что позволит получить доступ к контейнеру с вашей машины.

✅ Откройте http://localhost:80 в предпочитаемом браузере, чтобы убедиться, что контейнер успешно запущен.

С запущенным контейнером мы можем выполнять базовые действия — перезапуск, остановку, мониторинг.

Сначала посмотрим, что запущено на вашем движке Docker, используя предпочитаемый терминал.

Это выведет информацию о запущенных контейнерах, например:

У вас может быть запущено любое количество контейнеров.

Попробуем получить больше информации о вашем контейнере:

Вы также можете подробнее изучить сеть, общую для вашей машины и контейнеров.

Это выведет информацию о сети, которой управляет движок Docker на вашей машине.

Также можно подробнее изучить отдельные сети:

Когда закончите тестирование контейнера, обязательно остановите его, чтобы вернуть ресурсы (CPU и ОЗУ), которые контейнер использовал для работы:

SSH-туннель

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

Тестирование локально

Нам нужно будет внести некоторые изменения в ваш Dockerfile. Давайте установим службу OpenSSH, создадим пользователя с паролем и включим службу.

Объедините эти команды Dockerfile в вашем Dockerfile:

EXPOSE не публикует порты автоматически, это подсказка для движка Docker и разработчиков.

Нам также нужно будет запустить ssh-службу в контейнере:

✅ Теперь docker build, и протестируйте docker run локально, а затем проверьте с помощью ssh localhost:22.

Развернуть в облаке

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

✅ Войдите в свой реестр Docker и docker push новый тег:

✅ Создайте новую тестовую версию приложения для этого образа через панель управления.

  • Добавьте сопоставление порта для 22/TCP, чтобы повторить -p параметр из docker run.

✅ Deploy и используйте URL или IP с внешним SSH-портом, назначенным ssh.

✅ После завершения тестирования остановите развертывание и удалите ваш тестовый образ.

Последнее обновление

Это было полезно?