【云原生之Docker实战】使用Docker部署Ward服务器监控工具
@TOC
一、Ward介绍
1.1 Ward简介
Ward监控工具是一款专门用于监控Linux系统的工具。它可以实时监测系统的CPU、内存、I/O等资源的使用情况,以及系统的网络状态和服务运行状态等。
1.2 Ward特点
- Ward 支持自适应设计系统。
- Ward还支持深色主题。
- Ward只显示服务器的主要信息。
- Ward 在所有流行的操作系统上运行良好。
二、Docker介绍
2.1 Docker介绍
- Docker简介
Docker是一个开源的应用容器引擎,可以轻松地将应用程序打包成一个可移植的容器,便于部署、测试和运行。Docker容器是轻量级、可移植和可重复使用的,具有良好的性能和资源利用率。
Docker利用操作系统级别的虚拟化技术,可以在同一台物理服务器上同时运行多个独立的容器,并且不会相互干扰。在构建和部署应用程序时,Docker容器提供了一个统一的开发、测试和生产环境,大大简化了整个应用程序生命周期的管理。
除了其强大的应用容器化功能之外,Docker还提供了一个强大的生态系统,包括容器仓库、镜像管理、容器编排等工具,让用户可以更加轻松地管理和扩展应用程序。同时,Docker的开放性和可扩展性也使得它可以与其他云计算和容器化技术无缝集成,成为云原生技术栈中不可或缺的一环。
2.2 Docker优点
- Docker优点
简化应用部署:Docker可以将应用及其依赖项打包在一个容器中,使得应用在不同的环境中部署变得更加简单,避免了很多配置和依赖问题。
提高开发效率:Docker的容器化技术可以提高开发效率,因为开发人员可以在本地构建和测试容器,并且可以在不同的开发环境中轻松共享和重复使用这些容器。
更好的资源利用与隔离:Docker使用虚拟化技术来隔离应用及其依赖项,保证容器中的应用不会干扰其他应用并且提高资源利用率。
更快速的部署:将应用部署到Docker容器中后,部署时间可以被缩短到几秒钟的级别,避免了复杂的手动配置,提高了应用的可靠性和可移植性。
更快速的扩展:Docker容器可以快速地复制和扩展,并且可以自动负载均衡,提高了应用的可扩展性。
更加安全:Docker容器是安全的,因为它将应用隔离在一个独立的环境中,使得攻击者很难侵入应用的内部,从而保护了应用和其数据的安全。
三、本地环境介绍
3.1 本地环境规划
本次实践为个人测试环境,操作系统版本为centos7.6。
hostname | IP地址 | 操作系统版本 | Docker版本 | ward版本 |
---|---|---|---|---|
jeven | 192.168.3.166 | centos 7.6 | 20.10.17 | v2.4.0 |
3.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署Ward服务器监控工具。
四、检查宿主机系统版本
4.1 检查操作系统版本
检查本地服务器操作系统版本,当前使用centos7.6版本。
[root@jeven ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
4.3 检查系统内核
检查操作内核版本,当前内核版本为3.10.0-957.el7.x86_64。
[root@jeven ~]# uname -r
3.10.0-957.el7.x86_64
五、检查本地Docker环境
5.1 检查Docker服务状态
检查当前Docker服务状态,确保Docker服务正常运行。
[root@jeven ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2023-10-10 02:01:39 CST; 5h 32min ago
Docs: https://docs.docker.com
Main PID: 9566 (dockerd)
Tasks: 13
Memory: 378.6M
CGroup: /system.slice/docker.service
5.2 检查Docker版本
检查Docker版本,当前Docker版本为20.10.17。
[root@jeven ~]# docker version
Client: Docker Engine - Community
Version: 20.10.17
API version: 1.41
Go version: go1.17.11
Git commit: 100c701
Built: Mon Jun 6 23:05:12 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.17
API version: 1.41 (minimum version 1.12)
Go version: go1.17.11
Git commit: a89b842
Built: Mon Jun 6 23:03:33 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.6
GitCommit: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
runc:
Version: 1.1.2
GitCommit: v1.1.2-0-ga916309
docker-init:
Version: 0.19.0
GitCommit: de40ad0
5.3 开启IPv4 forwarding
执行以下操作,开启路由转发。
[root@node ~]# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
[root@node ~]# systemctl restart network
[root@node ~]# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
5.4 检查Docker compose版本
检查docker compose 版本,当前版本为v2.6.0。
[root@jeven ~]# docker compose version
Docker Compose version v2.6.0
六、下载Ward镜像
在docker hub拉取Ward镜像。
[root@jeven ~]# docker compose version
Docker Compose version v2.6.0
[root@jeven ~]# docker pull antonyleons/ward
Using default tag: latest
latest: Pulling from antonyleons/ward
44ba2882f8eb: Pull complete
2cabec57fa36: Pull complete
c20481384b6a: Pull complete
bf7b17ee74f8: Pull complete
38617faac714: Pull complete
b944bffad3f6: Pull complete
2c37ae828c28: Pull complete
Digest: sha256:29f6b3ca9ae85b4861cd60344d9621624671e1e7fbfc417c7f185d48f106329f
Status: Downloaded newer image for antonyleons/ward:latest
docker.io/antonyleons/ward:latest
七、部署Ward服务器监控工具
7.1 使用docker-cli方式部署
使用docker-cli方式部署ward
docker run --restart unless-stopped -it -d --name ward -p 4000:4000 -e WARD_PORT=4000 -e WARD_THEME=dark --privileged antonyleons/ward
7.2 使用docker compose方式部署
本次使用dockercompose方式部署ward
version: '3.3'
services:
run:
restart: unless-stopped
container_name: ward
ports:
- '4000:4000'
environment:
- WARD_PORT=4000
- WARD_THEME=dark
- WARD_NAME=leons-server
privileged: true
image: antonyleons/ward
开始部署ward,创建ward容器。
docker compose up -d
7.3 检查ward容器状态
检查ward容器状态
[root@jeven ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0f91a8774d45 antonyleons/ward "/bin/sh -c 'java -j…" 39 seconds ago Up 38 seconds 0.0.0.0:4000->4000/tcp, :::4000->4000/tcp ward
7.4 检查ward容器日志
检查ward容器日志。确保ward服务正常运行。
docker logs ward
八、访问ward首页
- 点赞
- 收藏
- 关注作者
评论(0)