- Сделайте
forkданного репозитория к себе в Github и переименуйте его по названию или номеру занятия, например, https://github.com/имя-вашего-репозитория/git-hw или https://github.com/имя-вашего-репозитория/7-1-ansible-hw). - Выполните клонирование данного репозитория к себе на ПК с помощью команды
git clone. - Выполните домашнее задание и заполните у себя локально этот файл README.md:
- впишите вверху название занятия и вашу фамилию и имя
- в каждом задании добавьте решение в требуемом виде (текст/код/скриншоты/ссылка)
- для корректного добавления скриншотов воспользуйтесь инструкцией "Как вставить скриншот в шаблон с решением
- при оформлении используйте возможности языка разметки md (коротко об этом можно посмотреть в инструкции по MarkDown)
- После завершения работы над домашним заданием сделайте коммит (
git commit -m "comment") и отправьте его на Github (git push origin); Например, если изменили только README.md файл, который лежит в файле pattern-docker выполняем командыcd pattern-docker,git add README.md,git commit -m "редакция",git push origin. - Для проверки домашнего задания преподавателем в личном кабинете прикрепите и отправьте ссылку на решение в виде md-файла в вашем Github.
- Любые вопросы по выполнению заданий спрашивайте в чате учебной группы и/или в разделе “Вопросы по заданию” в личном кабинете.
Желаем успехов в выполнении домашнего задания!
Docker Compose является мощным инструментом для управления многоконтейнерными приложениями. Он позволяет быстро создавать и управлять несколькими контейнерами как одной целой системой, что значительно упрощает процесс развертывания и масштабирования приложений.
У меня уже был установлен docker, поэтому мне не надо устанавливать docker compose, так как он установился вместе с docker.Можно посмотреть какие команды умеет делать docker compose.
docker compose
Создаем файл docker-compose.yml и вносим туда первичные настройки: version, services, volumes, networks. При выполнении задания используется подсеть 10.5.0.0/16. Наша подсеть будет называться: <ваши фамилия и инициалы>-my-netology-hw. Все приложения из последующих заданий должны находиться в этой конфигурации.
version: '3'
volumes:
networks:
gribya-my-netology-hw:
driver: bridge
ipam:
config:
- subnet: 10.5.0.0/16
gateway: 10.5.0.1
services:
Создаем конфигурацию docker-compose для Prometheus с именем контейнера <ваши фамилия и инициалы>-netology-prometheus. Добавляем необходимые тома с данными и конфигурацией. Обеспечиваем внешний доступ к порту 9090 c докер-сервера.
volumes:
prometheus_data: {}
prometheus:
image: prom/prometheus:v2.47.2
container_name: gribya-netology-prometheus
command: --web.enable-lifecycle --config.file=/etc/prometheus/prometheus.yml
ports:
- 9090:9090
volumes:
- ./prometheus/:/etc/prometheus/
- prometheus_data:/prometheus
networks:
- gribya-my-netology-hw
restart: always....
Создаем конфигурацию docker-compose для Pushgateway с именем контейнера <ваши фамилия и инициалы>-netology-pushgateway. Обеспечиваем внешний доступ к порту 9091 c докер-сервера.
pushgateway:
image: prom/pushgateway:v1.6.2
container_name: gribya-netology-pushgateway
ports:
- 9091:9091
networks:
- gribya-my-netology-hw
depends_on:
- prometheus
restart: unless-stopped
Создаем конфигурацию docker-compose для Grafana с именем контейнера <ваши фамилия и инициалы>-netology-grafana. Добавляем необходимые тома с данными и конфигурацией. Добавляем переменную окружения с путем до файла с кастомными настройками. Обеспечиваем внешний доступ к порту 3000 c порта 80 докер-сервера.
grafana:
image: grafana/grafana
container_name: gribya-netology-grafana
environment:
GF_PATHS_CONFIG: /etc/grafana/custom.ini
ports:
- 80:3000
volumes:
- ./grafana:/etc/grafana
- grafana_data:/var/lib/grafana
networks:
- gribya-my-netology-hw
depends_on:
- prometheus
restart: unless-stopped
Поочерёдность запуска контейнеров: установить какой контейнер от какого зависит - depends_on. Настроить режим перезапуска контейнеров: написать условие, при котором контейнер должен перезапускаться - restart. Настроить использование контейнерами одной сети: имеем внутреннюю сеть networks gribya-my-netology-hw. Запустите сценарий в detached режиме: добавить нужный флаг при запуске команды docker compose up - -d
version: '3'
volumes:
prometheus_data: {}
grafana_data: {}
networks:
gribya-my-netology-hw:
driver: bridge
ipam:
config:
- subnet: 10.5.0.0/16
gateway: 10.5.0.1
services:
prometheus:
image: prom/prometheus:v2.47.2
container_name: gribya-netology-prometheus
command: --web.enable-lifecycle --config.file=/etc/prometheus/prometheus.yml
ports:
- 9090:9090
volumes:
- ./prometheus/:/etc/prometheus/
- prometheus_data:/prometheus
networks:
- gribya-my-netology-hw
restart: always
pushgateway:
image: prom/pushgateway:v1.6.2
container_name: gribya-netology-pushgateway
ports:
- 9091:9091
networks:
- gribya-my-netology-hw
depends_on:
- prometheus
restart: unless-stopped
grafana:
image: grafana/grafana
container_name: gribya-netology-grafana
environment:
GF_PATHS_CONFIG: /etc/grafana/custom.ini
ports:
- 80:3000
volumes:
- ./grafana:/etc/grafana
- grafana_data:/var/lib/grafana
networks:
- gribya-my-netology-hw
depends_on:
- prometheus
restart: unless-stopped






