2臺物理機:zabbix-server 192.168.233.96 zabbix-agent 192.168.233.95mysql
docker版本:(docker --virsion 或 docker info 能夠查看)Server Version: 19.03.1linux
zabbix版本:(/usr/local/zabbix/sbin/zabbix_server --V 能夠查看)zabbix 4.0web
docker鏡像源:(下載到 /etc/yum.repo.d/ 目錄下)wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.reposql
yum install docker-ce -y(社區免費版是 -ce 企業收費版是 -ee)docker
解決依賴關係的時候可能會報以下錯apache
Error: Package: containerd.io-1.2.6-3.3.el7.x86_64 (docker-ce-stable) Requires: container-selinux >= 2:2.74錯誤緣由是:須要的 container-selinux 包 版本較低,須要2.74版本的json
解決方案:到官方網站 mirror.centos.org 找到所需版本的包,下載安裝centos
yum -y install http://mirror.centos.org/centos-7/7/extras/x86_64/Packages/container-selinux-2.74-1.el7.noarch.rpm
#!/bin/bash sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://m8ce5kzp.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
[root@master ~]# cat docker-compose.yaml version: '3.3' services: mysql-server: container_name: mariadb-server image: mariadb:10.2 restart: always environment: MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: zabbix MYSQL_ROOT_PASSWORD: root volumes: - /data/mysql/data/:/var/lib/mysql - /data/mysql/conf/:/etc/my.cnf.d/server.cnf zabbix-server: container_name: zabbix-server image: zabbix/zabbix-server-mysql restart: always environment: DB_SERVER_HOST: "mysql-server" MYSQL_DATABASE: "zabbix" MYSQL_USER: "zabbix" MYSQL_PASSWORD: "zabbix" MYSQL_ROOT_PASSWORD: "root" ports: - 10051:10051 links: - mysql-server zabbix-web: container_name: zabbix-web image: zabbix/zabbix-web-apache-mysql restart: always depends_on: - mysql-server - zabbix-server environment: DB_SERVER_HOST: "mysql-server" MYSQL_DATABASE: "zabbix" MYSQL_USER: "zabbix" MYSQL_PASSWORD: "zabbix" MYSQL_ROOT_PASSWORD: "root" ports: - 80:80 links: - mysql-server - zabbix-server
在部署zabbix的時候最好用mariadb10.2版本如下的,包括10.2,由於10.3.17版本對於長字段有了一些限制,這樣會致使倒數據時候出現報錯,直接用10.2就能夠了,10.2也是mariadb官網給出的一個穩定版,仍是很好用的bash
#啓動docker-compose.yaml文件中定義的容器,而且是後臺運行 [root@master ~]# docker-compose up -d
Commands: build Build or rebuild services bundle Generate a Docker bundle from the Compose file config Validate and view the Compose file create Create services down Stop and remove containers, networks, images, and volumes events Receive real time events from containers exec Execute a command in a running container help Get help on a command images List images kill Kill containers logs View output from containers pause Pause services port Print the public port for a port binding ps List containers pull Pull service images push Push service images restart Restart services rm Remove stopped containers run Run a one-off command scale Set number of containers for a service start Start services stop Stop services top Display the running processes unpause Unpause services up Create and start containers version Show the Docker-Compose version information
build 構建或重建服務 help 命令幫助 pause 暫停服務 exec 進入到一個docker容器的交互界面 kill 殺死容器 logs 顯示docker-compose.yaml文件中容器的輸出內容 ps 顯示啓動的容器 pull 拉取服務鏡像 restart 重啓服務 rm 刪除中止的容器 run 運行容器 scale 設置服務的容器數目 start 開啓服務 stop 中止服務 up 建立並啓動容器
config 測試docker-comose.yaml文件的語法是否ok
一個docker-compose.yaml文件大體分爲:version,services,networkless
version能夠是1,2,3這是大版本,還有小版本,好比1.0,2.2,3.3等,在定義yaml文件時必須制定version版本,每一個版本的語法可能不太相同,能夠參照文章下方給的官方文檔瞭解詳情
1.service中定義服務名稱,service的下一級定義服務名稱
version: '3.3' services: 服務名稱:
2.在服務名稱下一級標籤有container_name,image,restart,privileged,environment,volumes,ports,links等
container_name:定義容器名稱 image:鏡像名稱 restart restart: "no" #不重啓 restart: always #老是重啓 restart: on-failure #失敗時才重啓 restart: unless-stopped #除非中止 privileged:獲取最高權限 environment:設置系統環境變量 KEY1:VALUE1 KEY2:VALUE2 volumes 映射容器卷 - HOST_PATH:CONTAINER_PATH - HOST_PATH:CONTAINER_PATH ports: 映射容器端口 - HOST_PORT: CONTAINER_PORT links: 鏈接容器 - SERVICE_NAME depends_on:定義容器的前後順序 - zabbix-server - zabbix-web - mysql-server
更多docker-compose文件的語法格式請參照https://docs.docker.com/compose/compose-file/