Having fun and learning from containers in my Docker Test Lab

Intro
This practical how-to shows how to install a Zabbix container monitoring stack on Docker Desktop, using VS Code Insiders and Copilot Chat as the development workflow. I was just testing and see how these products come together.
Why this setup?
Docker Desktopgives a polished local container environment on Windows and macOS.Zabbixis a robust open-source monitoring solution for hosts, containers, and apps.VS Code Insidersoffers the latest editor features, especially for Docker, YAML, and Copilot Chat.Copilot Chathelps you write configuration, validate YAML, and troubleshoot fast.
What you will build
Docker DesktopZabbix serverZabbix web frontendMariaDBbackendZabbix agent
Step 1: Install Docker Desktop
- Download Docker Desktop from the official site.
- Enable:
- WSL 2 backend on Windows
- Docker Compose support
- Confirm with:
docker versiondocker compose version
Docker Desktop makes the entire Zabbix stack repeatable and easy to reset and update.
Step 2: Create the Docker Compose stack
Use the code below in a docker-compose.yml file:
version: "3.9"services: db: image: mariadb:10.11 container_name: zabbix-db environment: MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: zabbixpass MYSQL_ROOT_PASSWORD: rootpass volumes: - db_data:/var/lib/mysql zabbix-server: image: zabbix/zabbix-server-mysql:latest container_name: zabbix-server depends_on: - db environment: DB_SERVER_HOST: db MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: zabbixpass ports: - "10051:10051" zabbix-web: image: zabbix/zabbix-web-nginx-mysql:latest container_name: zabbix-web depends_on: - zabbix-server - db environment: DB_SERVER_HOST: db MYSQL_DATABASE: zabbix MYSQL_USER: zabbix MYSQL_PASSWORD: zabbixpass ZBX_SERVER_HOST: zabbix-server PHP_TZ: UTC ports: - "8080:8080" zabbix-agent: image: zabbix/zabbix-agent:latest container_name: zabbix-agent depends_on: - zabbix-server environment: ZBX_HOSTNAME: zabbix-agent-container ZBX_SERVER_HOST: zabbix-servervolumes: db_data:- Because I wanted the localhost on https port 443, I added the Caddy container image for the certificate. (just ask Copilot in VSCode and he will support you with the installation, you will see 😉 )
Step 3: Use VS Code Insiders
- Open the stack folder in
VS Code Insiders. - Install these extensions:
- Docker
- YAML
- Remote – Containers
- Use the editor to:
- author
docker-compose.yml - review container logs
- validate YAML
- keep your stack code clean
- author
Step 4: Ask Copilot Chat
Use Copilot Chat inside VS Code for:
- validating
docker-compose.yml - explaining Zabbix service relationships
- generating triggers and item templates
- debugging connection issues
Example prompt:
- “Why is
zabbix-webfailing to connect to MariaDB in this compose stack?” - What I really like is that Copilot does the work for you on demand and solves issues between containers.
Step 5: Start the stack
Run:
docker compose up -dVerify:
docker psdocker logs zabbix-serverhttp://localhost:8080
Default login:
- user:
Admin - password:
zabbix - Please change this password when you are in Zabbix Monitoring.
Step 6: Monitor containers
In Zabbix, configure:
- CPU, memory, disk, and network items
- container health triggers
- dashboards for container metrics
- optional Docker API monitoring
- And I’m monitoring my Docker Host with a Zabbix Windows Agent.
Community tips
- Keep YAML modular and readable.
- Use
Copilot Chatfor quick config ideas. - Leverage Docker Desktop dashboard for container health.
- Expand later with Zabbix proxy, TLS, or app-specific templates.
- Use Docker scout and Copilot for support remediation in security.
Conclusion
This workflow blends:
- easy local secure container setup with
Docker Desktop - enterprise-grade monitoring with
Zabbix - cutting-edge authoring in
VS Code Insiders - real-time help from
Copilot Chat

Author: James van den Berg
I’m Microsoft Architect and ICT Specialist
and
Microsoft MVP Cloud and Datacenter Management
Microsoft MVP Windows Insider
Microsoft Tech Community Insider
Microsoft Azure Advisor
