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/