创建目录


root@Baidu-BJ-01:~# mkdir docker-compose-data
root@Baidu-BJ-01:~# cd docker-compose-data/
root@Baidu-BJ-01:~/docker-compose-data# mkdir zabbix-data
root@Baidu-BJ-01:~/docker-compose-data# cd zabbix-data/
root@Baidu-BJ-01:~/docker-compose-data/zabbix-data# nano docker-compose.yml

创建compose文件

services:
  mysql:
    container_name: mysql
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_DATABASE: zabbix
      MYSQL_ROOT_PASSWORD: zabbix@2022
      MYSQL_ROOT_HOST: '%'  # 关键:允许root远程连接
    ports:
      - "3306:3306"
    volumes:
      - /data/mysql:/var/lib/mysql
    # 修复健康检查
    healthcheck:
      test: ["CMD", "mysql", "-uroot", "-pzabbix@2022", "-e", "SELECT 1"]
      interval: 8s
      timeout: 5s
      retries: 30
    networks:
      - zabbix-net

  zabbix-server:
    container_name: zabbix_server
    image: zabbix/zabbix-server-mysql:latest
    restart: always
    depends_on:
      mysql:
        condition: service_healthy
    environment:
      MYSQL_DATABASE: zabbix
      MYSQL_PASSWORD: zabbix@2022
      MYSQL_USER: root
      DB_SERVER_HOST: mysql
    ports:
      - "10051:10051"
    volumes:
      - /data/zabbix/alertscripts:/usr/lib/zabbix/alertscripts
      - /data/zabbix/externalscripts:/usr/lib/zabbix/externalscripts
    networks:
      - zabbix-net

  zabbix-web:
    container_name: zabbix_web
    image: zabbix/zabbix-web-nginx-mysql:latest
    restart: always
    depends_on:
      mysql:
        condition: service_healthy
      zabbix-server:
        condition: service_started
    environment:
      MYSQL_DATABASE: zabbix
      MYSQL_PASSWORD: zabbix@2022
      MYSQL_USER: root
      DB_SERVER_HOST: mysql
      ZBX_SERVER_HOST: zabbix-server
    ports:
      - "8080:8080"
    networks:
      - zabbix-net

  zabbix-agent:
    container_name: zabbix_agent
    image: zabbix/zabbix-agent:latest
    restart: always
    environment:
      ZBX_HOSTNAME: "Zabbix server"
      ZBX_SERVER_HOST: zabbix-server
    ports:
      - "10050:10050"
    networks:
      - zabbix-net

networks:
  zabbix-net:
    driver: bridge

以上内容仅供参考,由于数据库的账户密码需要自行在配置文件上修改

部署docker服务

d

查看部署状态


root@Baidu-BJ-01:~/docker-compose-data/zabbix-data# docker ps
CONTAINER ID   IMAGE                                  COMMAND                  CREATED          STATUS                    PORTS                                                    NAMES
515f50b7167b   zabbix/zabbix-web-nginx-mysql:latest   "docker-entrypoint.sh"   25 minutes ago   Up 25 minutes (healthy)   0.0.0.0:8080->8080/tcp, [::]:8080->8080/tcp, 8443/tcp    zabbix_web
3eecce3913ed   zabbix/zabbix-server-mysql:latest      "/usr/bin/docker-ent…"   25 minutes ago   Up 25 minutes             0.0.0.0:10051->10051/tcp, [::]:10051->10051/tcp          zabbix_server
6709b029f65c   zabbix/zabbix-agent:latest             "/usr/bin/docker-ent…"   25 minutes ago   Up 25 minutes             0.0.0.0:10050->10050/tcp, [::]:10050->10050/tcp          zabbix_agent
5ba4f4459c68   mysql:8.0                              "docker-entrypoint.s…"   25 minutes ago   Up 25 minutes (healthy)   0.0.0.0:3306->3306/tcp, [::]:3306->3306/tcp, 33060/tcp   mysql
root@Baidu-BJ-01:~/docker-compose-data/zabbix-data#

查看日志

root@Baidu-BJ-01:~/docker-compose-data/zabbix-data# docker compose logs
zabbix_web  | ** Deploying Zabbix web-interface (Nginx) with MySQL database
zabbix_web  | ** Using MYSQL_USER variable from ENV
zabbix_web  | ** Using MYSQL_PASSWORD variable from ENV
zabbix_web  | ********************
zabbix_web  | * DB_SERVER_HOST: mysql
zabbix_web  | * DB_SERVER_PORT: 3306
zabbix_web  | * DB_SERVER_DBNAME: zabbix
zabbix_web  | ********************
zabbix_web  | ** Preparing PHP configuration
zabbix_web  | ** Adding Zabbix virtual host (HTTP)
zabbix_web  | **** Impossible to enable SSL support for Nginx. Certificates are missed.
zabbix_web  | ########################################################
zabbix_web  | ** Executing supervisord
zabbix_web  | 2026-03-28 15:42:01,590 INFO Included extra file "/etc/supervisor/conf.d/supervisord_zabbix.conf" during parsing
zabbix_web  | 2026-03-28 15:42:01,590 INFO Included extra file "/etc/supervisor/conf.d/supervisord_zabbix.conf" during parsing
zabbix_web  | 2026-03-28 15:42:01,599 INFO RPC interface 'supervisor' initialized
zabbix_web  | 2026-03-28 15:42:01,599 INFO RPC interface 'supervisor' initialized
zabbix_web  | 2026-03-28 15:42:01,599 INFO supervisord started with pid 1
zabbix_web  | 2026-03-28 15:42:01,599 INFO supervisord started with pid 1
zabbix_web  | 2026-03-28 15:42:02,602 INFO spawned: 'nginx' with pid 25
zabbix_web  | 2026-03-28 15:42:02,602 INFO spawned: 'nginx' with pid 25
zabbix_web  | 2026-03-28 15:42:02,604 INFO spawned: 'php-fpm84' with pid 26
zabbix_web  | 2026-03-28 15:42:02,604 INFO spawned: 'php-fpm84' with pid 26
zabbix_web  | [28-Mar-2026 15:42:02] NOTICE: fpm is running, pid 26
zabbix_web  | [28-Mar-2026 15:42:02] NOTICE: ready to handle connections
zabbix_web  | 2026-03-28 15:42:04,796 INFO success: nginx entered RUNNING state, process has stayed up for > than 2 seconds (startsecs)
zabbix_web  | 2026-03-28 15:42:04,796 INFO success: nginx entered RUNNING state, process has stayed up for > than 2 seconds (startsecs)
zabbix_agent  | ** Preparing Zabbix agent
zabbix_agent  | ** Using 'zabbix-server' servers for passive checks
zabbix_agent  | ** Using 'zabbix-server' servers for active checks
zabbix_agent  | Starting Zabbix Agent [Zabbix server]. Zabbix 7.4.8 (revision 6b0f6b2).
zabbix_agent  | Press Ctrl+C to exit.
zabbix_agent  |
zabbix_agent  |      1:20260328:154143.729 Starting Zabbix Agent [Zabbix server]. Zabbix 7.4.8 (revision 6b0f6b2).
zabbix_agent  |      1:20260328:154143.729 **** Enabled features ****
zabbix_agent  |      1:20260328:154143.729 IPv6 support:          YES
zabbix_agent  |      1:20260328:154143.729 TLS support:           YES
zabbix_agent  |      1:20260328:154143.729 **************************
zabbix_agent  |      1:20260328:154143.729 using configuration file: /etc/zabbix/zabbix_agentd.conf
zabbix_agent  |      1:20260328:154143.733 agent #0 started [main process]
zabbix_agent  |     12:20260328:154143.733 agent #1 started [collector]
zabbix_agent  |     14:20260328:154143.733 agent #3 started [listener #2]
zabbix_agent  |     18:20260328:154143.735 agent #7 started [listener #6]
zabbix_agent  |     21:20260328:154143.736 agent #10 started [listener #9]
zabbix_agent  |     20:20260328:154143.738 agent #9 started [listener #8]
zabbix_agent  |     17:20260328:154143.740 agent #6 started [listener #5]
zabbix_agent  |     19:20260328:154143.741 agent #8 started [listener #7]
zabbix_agent  |     22:20260328:154143.741 agent #11 started [listener #10]
zabbix_agent  |     23:20260328:154143.743 agent #12 started [active checks #1]
zabbix_agent  |     16:20260328:154143.743 agent #5 started [listener #4]
zabbix_agent  |     15:20260328:154143.748 agent #4 started [listener #3]
zabbix_agent  |     13:20260328:154143.749 agent #2 started [listener #1]
zabbix_agent  |     23:20260328:154143.754 Unable to connect to [zabbix-server]:10051 [getaddrinfo() failed for 'zabbix-server': [0] Unknown error]
zabbix_agent  |     23:20260328:154143.754 Unable to send heartbeat message to [zabbix-server]:10051 [getaddrinfo() failed for 'zabbix-server': [0] Unknown error]
zabbix_agent  |     23:20260328:154143.755 Unable to connect to [zabbix-server]:10051 [getaddrinfo() failed for 'zabbix-server': [0] Unknown error]
zabbix_agent  |     23:20260328:154143.755 Active check configuration update started to fail
zabbix_agent  |     23:20260328:154243.762 Active check configuration update from [zabbix-server:10051] is working again
mysql         | 2026-03-28 15:41:43+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.45-1.el9 started.
mysql         | 2026-03-28 15:41:43+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
mysql         | 2026-03-28 15:41:43+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.45-1.el9 started.
.........(下面内容就省略)

打开网页

http://服务器IP:8080

账号:Admin 密码:zabbix