前文介绍了Docker容器技术的一些基本概念和基本操作,可以说容器化技术已经应用地越来越普遍了,越来越多的产品都提供容器化的部署方案。本文就以Docker容器化部署Zabbix监控系统为例,看看与传统的部署方式相比,容器化部署会给用户带来多少便捷。Zabbix容器安装官方参考地址
https://www.zabbix.com/documentation/4.0/zh/manual/installation/containers
1.安装docker。
- yum install -y docker
2.启动docker。
- systemctl start docker
3.安装运行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_bin
4.安装运行 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:latest
5.查看运行的容器,可以看到我们创建的三个容器已经正常运行了。
- # 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-server
6.浏览器输入IP地址打开Zabbix登录界面,可以看到右上角显示的是zabbix docker。
7.输入默认用户名Admin,密码zabbix登录成功。
可以看到容器化部署Zabbix监控系统与传统的部署方式相比确实要便捷很多,我们只要部署三个相关容器就可以运行了。