Архив метки: docker

Настройка имени хоста в Docker Compose

Из этого быстрого совета по Docker вы узнаете, как установить имя хоста для вашего контейнера с помощью Docker Compose.

Не знаете, как установить имя хоста в Docker Compose? Мы вам это покажем.Вы можете определить его в рамках службы следующим образом:
Читать

Установка RabbitMQ в Ubuntu 20.04

RabbitMQ — это сервер очередей, который позволяет работать с сообщениями по протоколу AMQP (Advanced Message Queuing Protocol). Кроме того, может использоваться несколько других протоколов с помощью плагинов. Чаще всего RabbitMQ используется в качестве брокера текстовых сообщений.

Он получает сообщения, от программ, которые их генерируют и доставляет в программы, которые готовы их получать. Сам сервер написан на Erlang. В этой статье мы рассмотрим как установить RabbitMQ в Ubutntu 20.04.

Читать

Настройка репликации PostgreSQL в контейнерах Docker

Мы рассмотрим процесс поднятия двух контейнеров с PostgreSQL и настройки репликации данных между ними. Использовать будем систему на базе Linux, однако, сам процесс настройки Docker и репликации не зависит от операционной системы.




Подготовка компьютера




На компьютере, где мы будем запускать наш кластер баз данных должен быть установлен Docker. Также мы сразу рассмотрим развертывание нужной нам инфраструктуры в docker-compose. Для установки необходимой одноименной платформы смотрим инструкцию Установка Docker на Linux.




После мы можем переходить к поднятию контейнеров.




Запуск контейнеров с СУБД




Как говорилось выше, мы будем поднимать наши контейнеры с помощью docker-compose.




Создадим каталог, в котором будем работать:




mkdir -p /opt/docker/postgresql




Переходим в него:




cd /opt/docker/postgresql




Создаем файл для docker-compose:




vi docker-compose.yml




---



services:



  postgresql_01:

    image: postgres

    container_name: postgresql_01

    restart: always

    volumes:

      - /data/postgresql_01:/var/lib/postgresql/data

    environment:

      POSTGRES_PASSWORD: postgres024



  postgresql_02:

    image: postgres

    container_name: postgresql_02

    restart: always

    volumes:

      - /data/postgresql_02/:/var/lib/postgresql/data

    environment:

      POSTGRES_PASSWORD: postgres024




* рассмотрим некоторый опции подробнее:







Запускаем наши контейнеры:




docker-compose up -d




Мы должны увидеть:




Creating postgresql_02 ... done

Creating postgresql_01 ... done




А если вывести список контейнеров:




docker ps




… мы должны увидеть наши два.




Теперь можно переходить к настройке репликации.




Настройка репликации




Условимся, что первичный сервер или master будет в контейнере с названием postgresql_01. Вторичный — postgresql_02. Мы будем настраивать потоковую (streaming) асинхронную репликацию.




Настройка на мастере




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




docker exec -it postgresql_01 bash




Заходим под пользователем postgres:




su - postgres




Создаем пользователя, под которым будем подключаться со стороны вторичного сервера:




createuser --replication -P repluser




* в данном примере будет создаваться учетная запись repluser с правами репликации.




Система потребует ввода пароля. Придумываем его и набираем дважды.




Выходим из-под пользователя postgres:




exit




Выходим из контейнера:




exit




Открываем конфигурационный файл postgresql.conf:




vi /data/postgresql_01/postgresql.conf




Приводим к следующием виду некоторые параметры:




wal_level = replica

max_wal_senders = 2

max_replication_slots = 2

hot_standby = on

hot_standby_feedback = on




* где







Посмотрим подсеть, которая используется для контейнеров с postgresql:




docker network inspect postgresql_default | grep Subnet




В моем случае, ответ был:




"Subnet": "172.19.0.0/16",




Теперь открываем файл:




vi /data/postgresql_01/pg_hba.conf




И добавляем строку после остальных «host    replication»:




host    replication     all             172.19.0.0/16           md5




* в данном примере мы разрешили подключение пользователю replication из подсети 172.19.0.0/16 с проверкой подлинности по паролю.




Перезапустим докер контейнер:




docker restart postgresql_01




Настройка на слейве




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




rm -r /data/postgresql_02/*




* в данном примере мы удалим все содержимое каталога /data/postgresql_02.




Мы должны быть уверены, что в базе нет ничего важного. Только после этого стоить удалять данные.




Заходим внутрь контейнера postgresql_02:




docker exec -it postgresql_02 bash




Выполняем команду:




su - postgres -c "pg_basebackup --host=postgresql_01 --username=repluser --pgdata=/var/lib/postgresql/data --wal-method=stream --write-recovery-conf"




* где postgresql_01 — наш мастер; /var/lib/postgresql/data — путь до каталога с данными слейва.




Система должна запросить пароль для пользователя repluser — вводим его. Начнется процесс репликации, продолжительность которого зависит от объема данных.




Проверка




Смотрим статус работы мастера:




docker exec -it postgresql_01 su - postgres -c "psql -c 'select * from pg_stat_replication;'"




Смотрим статус работы слейва:




docker exec -it postgresql_02 su - postgres -c "psql -c 'select * from pg_stat_wal_receiver;'"




Источник: https://www.dmosk.ru/miniinstruktions.php?mini=postgresql-replication-docker



Многоступенчатая сборка Docker-образов / Multi-Stage Docker Builds

multistage docker container

Это особенно актуально для приложений, разработка которых ведется на компилируемых языках программирования. Используя эту возможность, вы сможете существенно сокращать размер вашего итогового образа не, прибегая к хитрым трюкам, которые я описывал в статье «6 советов по уменьшению Docker образа» Суть подхода заключается в том, чтобы не заботиться о количестве получающихся слоев в процессе сборки вашего приложения и копировать результаты сборки из одного образа в другой. В этой статье я покажу, как это реализуется на практике. Выдумывать ничего не буду, а просто покажу вам это на уже готовых примерах из официальной документации. Читать

Установка Docker Portainer

В последнее время Docker набирает всё больше и больше популярности благодаря возможности быстро развертывать сложные приложения, состоящие из большого количества сервисов. Portainer — это система управления docker контейнерами в Linux. Она позволяет управлять как локальными контейнерами, так и удалёнными с помощью Docker API.




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




КАК УСТАНОВИТЬ DOCKER PORTAINER




Для выполнения этой статьи вам понадобится уже установленный в вашей системе Docker. Я не буду подробно рассказывать как установить docker и docker-compose. Для этого воспользуйтесь этой статьей для Ubuntu или этой для CentOS.




После того, как Docker будет установлен, можно развернуть контейнер с Portainer. Было бы странно, если бы программа поставлялась в каком-либо другом виде. Создайте хранилище данных для Portainer:




docker volume create portainer_data




Для установки и запуска контейнера выполните:




docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer







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




docker ps







НАСТРОЙКА PORTAINER




1. ВХОД




Получить доступ к программе вы можете через веб-интерфейс на порту 9000. Откройте его в браузере. На первом шаге надо будет ввести имя пользователя и пароль, под которым вы будете входить в систему:







Затем выберите метод подключения к Docker. Для начала можно подключиться к локальному сервису Docker. Для этого выберите Local:







2. СПИСОК УЗЛОВ И КОНТЕЙНЕРОВ




После нажатия кнопки Connect вы попадите в панель управления контейнерами:







Сначала вам надо выбрать узел, на котором вы будете управлять контейнерами, в данном случае, это local. Здесь вы можете уже управлять вашими контейнерами. Например, в разделе Containers можно посмотреть все доступные контейнеры:







А в разделе Stacks — все доступные приложения:







3. РАЗВОРАЧИВАНИЕ ПРИЛОЖЕНИЯ




В разделе App Templates вы можете развернуть новое приложение на основе одного из существующих шаблонов. Например, давайте развернем WordPress. Для этого найдите его в списке:







Затем шаблон надо настроить. В данном случае, надо указать пароль для базы данных и имя приложения:







После этого нажмите кнопку Deploy the stack и новое приложение появится в списке раздела Stasks. Как видите, теперь программа сообщает, что у неё есть полный контроль над этим приложением, потому что она его создала:




4. УПРАВЛЕНИЕ ПРИЛОЖЕНИЕМ




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







Для командной строки рядом есть значок с символом приглашения ввода. Вот так выглядит командная строка:







А открытые порты находятся в самом конце характеристик контейнера в разделе Published ports:







Если вы кликните по ссылке с надписью 32768:80 для контейнера WordPress, то попадёте на сайт WordPress:







КАК ОБНОВИТЬ PORTAINER




Чтобы обновить Portainer надо удалить текущий образ и запустить его снова. Это не вызовет никаких проблем, так как при создании предыдущего образа мы использовали внешнее хранилище для хранения данных. Остановите образ и удалите его:




docker stop portainer

docker rm portainer




Скачайте новую версию:




docker pull portainer/portainer




Затем осталось снова установить Portainer:




docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer




ВЫВОДЫ




Как видите установка Portainer очень простая, если у вас есть уже установленный docker, а далее программа только помогает пользоваться контейнерами. Вы можете подключить к ней и удалённые узлы, однако для этого надо, чтобы у них был публичный IP адрес, потому что в локальной сети взаимодействовать с ними вы не сможете. А вы используете Portainer или пользуетесь другим интерфейсом для управления Docker? Напишите в комментариях!




Источник: https://losst.ru/ustanovka-docker-portainer



2021-03-10T23:16:02
Software

Как установить и использовать Docker Compose в Debian 10 Linux

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

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