参考 :https://www.cnblogs.com/double-dong/p/11441168.html
镜像准备
下载镜像:mysql、zabbix/zabbix-server-MysqL、zabbix/zabbix-web-Nginx-MysqL
docker pull MysqL:5.7
docker pull zabbix/zabbix-server-MysqL
docker pull zabbix/zabbix-web-Nginx-MysqL
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
zabbix/zabbix-web-Nginx-MysqL latest 9102571b2fef 3 weeks ago 155MB
zabbix/zabbix-server-MysqL latest 6da679c2a6c6 3 weeks ago 65.8MB
zabbix/zabbix-agent latest be72aee790c3 3 weeks ago 16.6MB
zabbix/zabbix-java-gateway latest e175083b2981 3 weeks ago 83.4MB
MysqL 5.7 1e4405fe1ea9 3 weeks ago 437MB
MysqL安装
docker run --name MysqL-server \
-v /etc/localtime:/etc/localtime -t \
-v /home/docker/data/MysqL:/var/lib/MysqL \
--hostname zabbix_MysqL \
-p 3306:3306 \
--restart=always \
-e MysqL_DATABASE="zabbix" \
-e MysqL_USER="zabbix" \
-e MysqL_PASSWORD="zabbix" \
-e MysqL_ROOT_PASSWORD="zabbix" \
-d MysqL:5.7 \
--character-set-server=utf8 --collation-server=utf8_bin
安装java-gateway
docker run --name zabbix-java-gateway \
-v /etc/localtime:/etc/localtime -t \
-d zabbix/zabbix-java-gateway:latest
安装zabbix-server
docker run --name zabbix-server-MysqL \
-v /etc/localtime:/etc/localtime:ro -t \
-v /home/docker/data/zabbix:/usr/lib/zabbix \
-v /home/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \
-v /home/zabbix/externalscripts:/usr/lib/zabbix/externalscripts \
--restart=always \
-e DB_SERVER_HOST="MysqL-server" \
-e MysqL_DATABASE="zabbix" \
-e MysqL_USER="zabbix" \
-e MysqL_PASSWORD="zabbix" \
-e MysqL_ROOT_PASSWORD="zabbix" \
-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
/usr/lib/zabbix/alertscripts
该卷用于保存自定义警报脚本,它是AlertScriptsPath参数zabbix_server.conf
/usr/lib/zabbix/externalscripts
外部检查(项目类型)使用该卷,它是ExternalScripts参数zabbix_server.conf
安装前端页面 将宿主机的localtime 与容器的localtime映射
docker run --name zabbix-web-Nginx-MysqL \
-v /etc/localtime:/etc/localtime -t \
--restart=always \
-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="zabbix" \
--link MysqL-server:MysqL \
--link zabbix-server-MysqL:zabbix-server \
-p 8080:80 \
-p 8443:443 \
-d zabbix/zabbix-web-Nginx-MysqL:latest
此时浏览器访问宿主机8080端口,即可使用zabbix-server服务
帐号:admin,密码:zabbix
镜像的导出与导入
镜像的导出
docker save -o /opt/zabbix_agent.tar zabbix/zabbix-agent:latest
#/opt/zabbix_agent.tar 导出镜像的位置及名称
#zabbix/zabbix-agent:latest 导出镜像的REPOSITORY与TAG
docker save -o /opt/zabbix_server.tar zabbix/zabbix-server-MysqL:latest
docker save -o /opt/zabbix_Nginx.tar zabbix/zabbix-web-Nginx-MysqL:latest
docker save -o /opt/zabbix_MysqL.tar MysqL:5.7
我们查看/opt下文件列表,可以看到导出成功
ll /opt
-rw------- 1 root root 61114368 Dec 16 14:54 zabbix_agent.tar
-rw------- 1 root root 305571840 Dec 16 15:02 zabbix_MysqL.tar
-rw------- 1 root root 182195200 Dec 16 15:01 zabbix_Nginx.tar
-rw------- 1 root root 112269824 Dec 16 15:00 zabbix_server.tar
导入镜像:
docker load -i /opt/zabbix_agent.tar
#/opt/zabbix_agent.tar为刚刚导出的镜像
docker load -i /opt/zabbix_server.tar
docker load -i /opt/zabbix_Nginx.tar
docker load -i /opt/zabbix_MysqL.tar
再次使用docker images,可以看到镜像已经导入成功,可以在当前未联网机器上使用
zabbix重新部署与迁移
对于使用了docker的zabbix来说,因为我们已经做了存储的映射,所以数据库和zabbix的配置可以很容器的迁移到其他机器上,拷贝宿主机上如下目录,然后重新部署zabbix容器即可。
/home/docker/data/zabbix
/home/docker/data/MysqL
因映射是存储在宿主机上的,为了防止数据丢失,可以使用云备份。