Введение автора: Се Чжисин, инженер по автоматическому тестированию 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 может найти ответ~~