前文介绍了Docker容器技术的一些基本概念和基本操作,可以说容器化技术已经应用地越来越普遍了,越来越多的产品都提供容器化的部署方案。本文就以Docker容器化部署Zabbix监控系统为例,看看与传统的部署方式相比,容器化部署会给用户带来多少便捷。Zabbix容器安装官方参考地址
https://www.zabbix.com/documentation/4.0/zh/manual/installation/containers
1.安装docker。
yum install -y docker2.启动docker。
systemctl start docker3.安装运行MySQL5.7数据库容器,本地没有镜像自动会从默认docker仓库拉取,镜像拉取完以后才会在本地运行容器服务,--name参数指定mysql数据库容器名为mysql-server,-d参数为后台运行,并传入一些参数创建zabbix数据库,设置zabbix用户密码,设置root用户密码,设置数据库字符集为uft8。
docker run --name mysql-server -t -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_bin3.安装运行 Zabbix server 容器,标签latest为最新版本,使用link参数使两个容器相互链接,关联到已创建的 mysql-server容器,-p参数把容器zabbix server服务的10051端口映射为本机的10051端口。。
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" -e MYSQL_ROOT_PASSWORD="zabbix" --link mysql-server:mysql -p 10051:10051 -d zabbix/zabbix-server-mysql:latest4.最后安装运行Zabbix的Web前端容器,并关联到已创建的 mysql-server容器和zabbix-server-mysql容器。
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" -e MYSQL_ROOT_PASSWORD="zabbix" --link mysql-server:mysql --link zabbix-server-mysql:zabbix-server -p 80:80 -d zabbix/zabbix-web-nginx-mysql:latest5.查看运行的容器,可以看到我们创建的三个容器已经正常运行了。
# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 312e0c52f548 zabbix/zabbix-web-nginx-mysql:latest "docker-entrypoint.sh" 4 minutes ago Up 4 minutes 0.0.0.0:80->80/tcp, 443/tcp zabbix-web-nginx-mysql b773b24771e1 zabbix/zabbix-server-mysql:latest "/sbin/tini -- /us..." 5 minutes ago Up 5 minutes 0.0.0.0:10051->10051/tcp zabbix-server-mysql c1b368c72db7 mysql:5.7 "docker-entrypoint..." 8 minutes ago Up 8 minutes 3306/tcp, 33060/tcp mysql-server6.浏览器输入IP地址打开Zabbix登录界面,可以看到右上角显示的是zabbix docker。
7.输入默认用户名Admin,密码zabbix登录成功。
可以看到容器化部署Zabbix监控系统与传统的部署方式相比确实要便捷很多,我们只要部署三个相关容器就可以运行了。