前文介紹了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監控系統與傳統的部署方式相比確實要便捷很多,我們只要部署三個相關容器就可以運行了。