Всем привет.

Сегодня мы рассмотрим более подробную информацию о работе с Docker, сборке контейнеров, работе с базами данных и деплое проектов.

Но для начала хочу вам предложить ознакомиться с предыдущими статьями, а именно Основные команды для работы с Docker и Как создавать образы Docker с помощью Ansible в Ubuntu 20.04. В первой вы узнаете про основные команды, а во второй кратко описана установка Docker на Linux.

Помимо приведенных выше статей нам еще понадобится информация о работе с портами при использовании Docker.

Работа с портами в Docker

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

Вам просто нужно добавить параметр -p. Пример:

docker run -p локальный_порт:порт_в_Docker_контейнере имя_образа

Также можно добавить команду EXPOSE номер_порта в файл Dockerfile.

Docker volume и базы данных

Во время работы приложения в контейнере оно может генерировать какие-либо данные(результат своей работы). Но при остановке контейнера все данные в нем удаляются, так что же делать?

Для решения этой проблемы есть два пути. Первый способ это примонтировать папку к контейнеру, но этот способ сейчас используют все реже и реже. Это делается добавлением ключа -v к команде запуска контейнера.

docker run -v /абсолютный_путь_к_локальной_папке:/абсолютный_путь_к_папке_в_контейнере

Второй же способ — это использовать Docker volume. О нем я сейчас и расскажу подробнее.

Docker volume это по факту просто папка. Для просмотра созданных volume просто вводим следующую команду:

docker volume ls

Если вы только начали изучать Docker, то у вас в выводе этой команды будет пусто. Теперь давайте создадим volume. Вводим:

docker volume create имя_volume

Теперь чтобы примапить этот volume к контейнеру нужно ввести следующую команду:

docker run -v имя_volume:/абсолютный_путь_к_папке_в_контейнере

Я надеюсь, не стоит объяснять, как это использовать в разрезе использования баз данных в контейнерах?

А теперь предлагаю рассмотреть вариант деплоя(deploy) вашего проекта через Docker Hub.

Deploy проекта с использованием Docker Hub

Тут все просто, нужно выполнить следующие шаги:

  1. Зарегистрироваться на https://hub.docker.com/
  2. Через командую строку зайти в папку из которой будет собираться Docker image
  3. Ввести команду docker build -t имя_пользователя/имя_имэйджа . (эта точка часть команды, она указывает что сборку надо делать из текущей директории)
  4. Следующая команда docker login, она запросит логин и пароль. Вводим.
  5. Затем вводим команду docker push имя_пользователя/имя_имэйджа
  6. На этом всё.

Теперь любой может использовать созданные вами image для запуска контейнеров.

 В следующей статье я затрону вопрос работы с docker-compose.

Обсудить эту заметку можно в нашем Телеграм канале: https://t.me/devops_spb_ru (@devops_spb_ru)

От DevOps

DevOps or not...