首先,启动空的 MySQL 服务器实例。

  docker run --name mysql-server -t \
  -e MYSQL_DATABASE="zabbix" \
  -e MYSQL_USER="zabbix" \
  -e MYSQL_PASSWORD="zabbix_pwd" \
  -e MYSQL_ROOT_PASSWORD="root_pwd" \
  -d mysql:5.7 \
  --character-set-server=utf8 --collation-server=utf8_bin

其次,启动 Zabbix Java gateway 实例

  docker run --name zabbix-java-gateway -t \
  -d zabbix/zabbix-java-gateway:latest

然后,启动 Zabbix server 实例,并将其关联到已创建的 MySQL server 实例。

  docker run --name zabbix-server-mysql -t \
  -e DB_SERVER_HOST="mysql-server" \
  -e MYSQL_DATABASE="zabbix" \
  -e MYSQL_USER="zabbix" \
  -e MYSQL_PASSWORD="zabbix_pwd" \
  -e MYSQL_ROOT_PASSWORD="root_pwd" \
  -e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
  --link mysql-server:mysql \
  --link zabbix-java-gateway:zabbix-java-gateway \
  -p 10051:10051 \
  -d zabbix/zabbix-server-mysql:latest

最后,启动 Zabbix Web 界面,并将其关联到已创建的 MySQL server 和 Zabbix server 实例。

  docker run --name zabbix-web-nginx-mysql -t \
  -e DB_SERVER_HOST="mysql-server" \
  -e MYSQL_DATABASE="zabbix" \
  -e MYSQL_USER="zabbix" \
  -e MYSQL_PASSWORD="zabbix_pwd" \
  -e MYSQL_ROOT_PASSWORD="root_pwd" \
  --link mysql-server:mysql \
  --link zabbix-server-mysql:zabbix-server \
  -p 80:80 \
  -d zabbix/zabbix-web-nginx-mysql:latest

登录web界面。

登录账号:Admin 登录密码:zabbix

遇到的问题:

操作完成后网页打不开: 进入zabbix/zabbix-web-nginx-mysql:latest容器:

docker exec -it -uroot 容器id /bin/sh

修改nginx配置文件:

vi /etc/nginx/http.d/nginx.conf

将配置文件中的8080改为80,保存退出。 重启nginx。

nginx -s reload

如果遇到报错如下:

[crit] 48#48: *1 connect() to unix:/tmp/php-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 192.168.77.2, server: zabbix, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-fpm.sock:", host: "192.168.161.166"

在容器中运行:

chmod -R 777 /tmp/php-fpm.sock

也可以将这个权限配置到php-fpm的配置文件中,本文就不研究了。