Введение автора: Се Чжисин, инженер по автоматическому тестированию Beichao, эта статья также была опубликована вTesterHomeФорум
предисловие
Причина публикации: я с нетерпением жду, когда все вместе поиграют в докер, быстро создадут среду и исследуют безграничные возможности докера~
Цитаты Бога: Докер — это просто очень практичный инструмент. Не изучайте Докер ради Докера. Важно не Докер, а то, что вы делаете с Докером.
Видение: технический обмен, нет правильного или неправильного ~ приветствуем всех, кто исправит
Первый на карте результатов: docker build Zabbix
Docker создает Grafana, используя источник данных Zabbix
Во-первых, мои препараты
1. Купил сервер Alibaba Cloud, мой 666 на один год (на третий день после покупки сообщили, что есть групповая активность группы 333, 3 года), слезы
Моя конфигурация выглядит следующим образом:
2. Изучите основные принципы и команды работы докера
Рекомендуемый просмотр30 минут для начинающих с Docker
Ниже приведены команды, которые я использовал неоднократно в течение трех дней и двух ночей, для справки:
Команды управления изображением:
•1.docker pull {image_name}
(вытащить изображение)
•2.docker push {image_name}
(Нажать зеркало)
•3.docker images
(Просмотреть все изображения текущей машины)
•4.docker rmi {image_name}
(удалить изображение текущей машины)
•5.docker tag {source_images_name:tag your_image_name:tag}
(отметить изображение)
Команда управления контейнером
•1.docker run --name={your_name} --d {image_name}
(бегущий контейнер)
•2.docker ps -s -a
{Просмотреть все текущие контейнеры}
•3.docker stop {container_name}
(стоп-контейнер)
•4.docker kill (container_name)
{убить контейнер}
•5.docker rm -f {container_name}
(снять контейнер)
Просмотр информации, связанной с командами
•1.docker logs -f
{Имя контейнера} (см. журнал контейнера)
•2.docker info
(Просмотреть информацию о службе докеров)
•3.docker inspect
{имя контейнера} (просмотреть метаданные контейнера)
Некоторые параметры команды запуска контейнера
•1.--name
Укажите имя контейнера
•2.-d
Фоновый процесс
•3.-port
Укажите правила сопоставления портов
•4.--network
Укажите сетевой режим, который работает в контейнере
•5.-v
Укажите том данных, который необходимо смонтировать
•6.-env
Укажите переменные среды, которые необходимо передать в контейнер
Разберитесь с четырьмя сетевыми режимами докера:
•Container
•briage
•Host
•none
3. Зеркало покупки Docker Hub
Процесс похож на покупки за границей, и все знакомства на английском языке. Я выбрал следующие два
Название изображения = название продукта
Количество звезд = количество похожих отзывов
pull = количество попыток аналогично количеству покупок
Нажмите на деталь, и появится введение к этому изображению.
2. Анализ сборки
1. Прежде чем строить, вы должны четко понимать:
-
[1] Количество стартовых контейнеров
-
[2] Зависимости между контейнерами
-
[3] Создайте метод связи между контейнерами системных компонентов.
2. Возьмем каштан: Возьмем в качестве примера мою практику (Zabbix + Grafana)
[1] Количество стартовых контейнеров 3
Сверху вниз первый контейнерgrafana
, второйzabbix-xxl
, третий этоzabbix-db-mariadb
база данных
[2] Зависимости между контейнерами
grafana
полагатьсяzabbix-xxl
Укажите источник данных, два контейнера должны взаимодействовать друг с другом.
zabbix-xxl
полагатьсяzabbix-db-mariadb
Обеспечить поддержку базы данных
[3] Создайте метод связи между контейнерами системных компонентов.
grafana
полагатьсяzabbix-xxl
Укажите источник данных ---> поэтому я начинаюgrafana
при использовании контейнераcontainer
режиме контейнер указывает наzabbix
Выполнить заявление:
docker run -d --name grafana -itd --net=container:zabbix grafana/grafana
zabbix-xxl
полагатьсяzabbix-db-mariadb
Обеспечить поддержку базы данных ---> Поэтомуzabbix-db-mariadb
Контейнер должен быть вzabbix
начать до начала,
затем пройти--link zabbix-db:zabbix.db
подключение параметра
Справочник по команде запускаDockerhub
[4] Открытые порты
при запускеzabbix-xxl
При зеркалировании контейнеров нужно обратить внимание на проблему открытых портов, потому что компонентgrafana
контейнер начнется сcontainer
режим подключен кzabbix-xxl
в контейнере.
Итак, начнитеzabbix-xxl
Предварительная экспозиция требуется, когда зеркальные контейнерыgrafana
порт3000
, иначе будет невозможноzabbix-xxl
в контейнереgrafana
получить доступ.
-p 80:80 \ zabbix 的端口映射
-p 10051:10051 \ zabbix agent的端口映射
-p 3000:3000 预留给grafana的端口映射
3. Моя команда запуска
В основном взяты изHubei.docker.com/day/monitor в…, я все же рекомендую вам прочитать документацию docker hub, чтобы запустить службу контейнера. Ниже приведена команда, которую я использовал для запуска, просто для справки:
Создайте локальный диск постоянного хранения
create /var/lib/mysql as persistent volume storage
docker run -d -v /var/lib/mysql --name zabbix-db-storage busybox:latest
Запустите базу данных Zabbix-db
start DB for Zabbix - default 1GB innodb_buffer_pool_size is used
docker run \
-d \
--name zabbix-db \
-v /backups:/backups \
-v /etc/localtime:/etc/localtime:ro \
--volumes-from zabbix-db-storage \
--env="MARIADB_USER=zabbix" \
--env="MARIADB_PASS=my_password" \
monitoringartist/zabbix-db-mariadb
Запустите Zabbix, подключитесь к базе данных и добавьте сопоставление порта 3000.
start Zabbix linked to started DB
docker run \
-d \
--name zabbix \
-p 80:80 \
-p 10051:10051 \
-p 3000:3000\
-v /etc/localtime:/etc/localtime:ro \
--link zabbix-db:zabbix.db \
--env="ZS_DBHost=zabbix.db" \
--env="ZS_DBUser=zabbix" \
--env="ZS_DBPassword=my_password" \
monitoringartist/zabbix-xxl:latest
отcontainer
Старт режимаgrafana
указатель контейнера --->zabbix
docker run -d --name grafana -itd --net=container:zabbix grafana/grafana
4. Воспользуйтесь плодами среды Zabbix+Grafana и наслаждайтесь обучением и играми в веб-интерфейсе.
Проблемы, с которыми вы можете столкнуться при использовании Grafana:
-
1. Как установить
zabbix
плагин -
2. Как настроить
zabbix
источник данных -
3. Как
zabbix
Найдите соединения внутри контейнера с помощью API-интерфейса.(api_jsonrpc.php)
Эти вопросы оставляют друзьям для самостоятельного обсуждения, и Baidu может найти ответ~~