Всем привет.
Сегодня мы рассмотрим более подробную информацию о работе с 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
Тут все просто, нужно выполнить следующие шаги:
- Зарегистрироваться на https://hub.docker.com/
- Через командую строку зайти в папку из которой будет собираться Docker image
- Ввести команду docker build -t имя_пользователя/имя_имэйджа . (эта точка часть команды, она указывает что сборку надо делать из текущей директории)
- Следующая команда docker login, она запросит логин и пароль. Вводим.
- Затем вводим команду docker push имя_пользователя/имя_имэйджа
- На этом всё.
Теперь любой может использовать созданные вами image для запуска контейнеров.
В следующей статье я затрону вопрос работы с docker-compose.
Обсудить эту заметку можно в нашем Телеграм канале: https://t.me/devops_spb_ru (@devops_spb_ru)