1、创建网络
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
2、创建容器
2.1使用开源默认镜像
#容器时间同步参数-v /etc/localtime:/etc/localtime 或者-v /etc/timezone:/etc/timezone
1、创建mysql:8.0,指定root密码,创建zabbix账号
docker run --name mysql-server --network=zabbix-net -v /etc/localtime:/etc/localtime --restart=always -p 3306:3306 -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix" -e MYSQL_ROOT_PASSWORD="zabbixRoot" -d mysql:8.0 --character-set-server=utf8 --collation-server=utf8_bin
2、创建zabbix-getway
docker run --name zabbix-java-gateway -t --network=zabbix-net -v /etc/localtime:/etc/localtime --restart unless-stopped -d zabbix/zabbix-java-gateway:alpine-5.4-latest
3、创建zabbix服务器
docker run --name zabbix-server-mysql -t --network=zabbix-net -v /etc/localtime:/etc/localtime -e PHP_TZ="Asia/Shanghai" -e DB_SERVER_HOST="mysql-server" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix" -e MYSQL_ROOT_PASSWORD="zabbixRoot" -e ZBX_JAVAGATEWAY="zabbix-java-gateway" -p 10051:10051 --restart unless-stopped -d zabbix/zabbix-server-mysql:alpine-5.4-latest
4、搭建访问nginx
docker run --name zabbix-web-nginx-mysql -t --network=zabbix-net -v /etc/localtime:/etc/localtime -e PHP_TZ="Asia/Shanghai" -e ZBX_SERVER_HOST="zabbix-server-mysql" -e DB_SERVER_HOST="mysql-server" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix" -e MYSQL_ROOT_PASSWORD="zabbixRoot" -p 18080:8080 --restart unless-stopped -d zabbix/zabbix-web-nginx-mysql:alpine-5.4-latest
5、页面访问
http:// x.x.x.x:18080
Admin/zabbix
2.2、使用dockerfile自定义镜像
默认镜像会缺少命,可通过dockerfile创建自定义镜像,镜像里安装需要的命令,或者需要其它默认修改。
1、mysql的dockersfile,安装curl命令。若mysql版本不是8.0,recv-keys值可能不通,具体可根据报错修改
[root@docker-zabbix zabbix-server]# cat ../mysql/Dockerfile
FROM mysql:8.0
ENV LANG en_US.utf8
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29 && apt-get update
RUN apt-get install -y curl --fix-missing
2、zabbix-server的dockerfile
[root@docker-zabbix zabbix-server]# cat Dockerfile
FROM zabbix/zabbix-server-mysql:alpine-5.4-latest
USER root
ENV LANG en_US.utf8
RUN apk add curl vim openssh expect busybox-extras lsof tzdata pssh