资讯动态

容器化应用部署与可观测性平台

发布时间:2026/9/7 21:09:57 来源:尧图企业网站定制
一、环境主机ip地址角色Rocky1192.168.40.144业务容器goappmysqlredisnginxRocky2192.168.40.145NFS Harbor PrometheusGrafanaAlertmanager二、项目描述企业生产环境中普遍采用容器化部署分布式存储私有镜像仓库全链路监控的架构模式。本项目模拟企业中小型生产架构基于Rocky Linux 10系统完整落地Docker镜像制作、容器服务部署、NFS共享存储持久化、容器资源配额限制、可视化运维、私有镜像仓库、PrometheusgrafanaAlertmanager全维度监控等企业核心能力贴合真实生产运维场景提升自己对容器技术原理的理解加强容器技术的实操能力。三、实验步骤一、环境准备两台都做1.配置静态ip地址rocky1中 [ipv4] methodmanual address1192.168.40.144/24,192.168.40.1 dns114.114.114.114;192.168.40.1;rocky2中 [ipv4] methodmanual address1192.168.40.145/24,192.168.40.1 dns114.114.114.114;192.168.40.1;2.关闭防火墙和 SELinux\# 关闭并禁用防火墙 systemctl stop firewalld systemctl disable firewalld \# 临时关闭 SELinux当前生效 setenforce 0 \# 永久关闭 SELinux重启后生效 sed -i s/^SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config \# 确认防火墙状态 systemctl status firewalld3、安装 Docker 和 Compose 插件\# 安装 yum 工具提供 dnf config-manager 命令 dnf install -y dnf-utils \# 添加 docker 官方软件源Rocky 10 用 rocky 目录 dnf config-manager --add-repo https://download.docker.com/linux/rocky/docker-ce.repo \# 安装 docker 全家桶 compose 插件 dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin \# 开机自启并立即启动 systemctl enable --now docker \# 验证 docker version docker compose version二、B 机搭建 NFS 服务器1.安装 NFS 服务端dnf install -y nfs-utils systemctl enable --now nfs-server rpcbind2.创建共享目录 /web 并配置只读共享\# 创建共享目录 mkdir -p /web chmod 755 /web \# 在 /web 下建好业务数据子目录之后 A 机容器挂载用 mkdir -p /web/website # 放 nginx 公司介绍网站html/图片 mkdir -p /web/goapp\_data # 放 goapp 需要读取的数据3.编辑 NFS 共享配置文件vim /etc/exports /web 192.168.40.0/24(ro,sync,no_root_squash)4.生效并验证\# 让 exports 配置生效 exportfs -rav \# 本机验证能不能看到自己共享的目录 showmount -e 192.168.40.145三、A 机制作 goapp 镜像1.上传并解压 goapp 源码mkdir -p /root/goapp \# rz上传到该文件夹后解压 cd /root/goapp unzip gohtmlmysqlredis.zip ls2.编写DockerfileFROM rockylinux/rockylinux:10.0 WORKDIR /goapp COPY . /goapp EXPOSE 8080 CMD [/goapp/goweb]3.构建 goapp 镜像docker build -t goapp:v1 . docker images # 能看到 goapp:v1 docker run -d --name goapp-test -p 8080:8080 goapp:v1 docker rm -f goapp-test # 测试完删掉后面用 compose 正式启动四、A 机制作 nginx 镜像 自我介绍网站1.自我介绍网站cd /root/nginx vim index.html 在同一个目录下上传一张照片2.编写 Dockerfilevim /root/nginx/Dockerfile FROM nginx:1.30.3 COPY . /usr/share/nginx/html/3.构建自己的nginx镜像docker build -t mynginx:1.0 . docker images五、A 机 docker compose 启动业务goapp mysql redis1.在 A 机挂载 B 机的 NFS\# 创建挂载点 mkdir -p /mnt/web \# 挂载 B 机的 /web 到本地 mount -t nfs 192.168.40.145:/web /mnt/web \# 验证能看到 B 机放的文件就成功了 ls /mnt/web \# 重启后自动挂载 echo 192.168.40.145:/web /mnt/web nfs ro,nolock 0 0 /etc/fstab2.编写 docker-compose.yamlmkdir -p /root/business cd /root/business vim docker-compose.yml3.启动并验证cd /root/business docker compose up -d \# 查看三个容器是否都是 Up 状态 docker compose ps六、监控系统1.A 机部署 cadvisor监控宿主机上所有容器docker run -d --namecadvisor --restartalways \ -p 18080:8080 \ -v /:/rootfs:ro \ -v /var/run:/var/run:ro \ -v /sys:/sys:ro \ -v /var/lib/docker/:/var/lib/docker:ro \ --device/dev/kmsg \ gcr.io/cadvisor/cadvisor:latest2.A 机部署 node_exporter采集主机 CPU / 内存 / 磁盘 / 网络二进制 开机自启# ① 装 EPEL 扩展源 dnf install -y epel-release # ② 装 node_exporter dnf install -y node_exporter # ③ 启动 设置开机自启 systemctl enable --now node_exporter # ④ 验证 systemctl status node_exporter3.B 机部署 Prometheus容器docker run -d --nameprometheus --restartalways \ -p 9090:9090 \ -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro \ -v /opt/prometheus/rules.yml:/etc/prometheus/rules.yml:ro \ prom/prometheus4.B 机部署 Grafana容器 配置数据源 导入面板docker run -d --namegrafana --restartalways \ -p 3000:3000 \ -v /opt/grafana:/var/lib/grafana \ grafana/grafana5.可视化运维Portainer七、镜像仓库Harbor 私有仓库1.B 机部署 Harbor 私有仓库cd /harbor tar -xzf harbor-offline-installer-v2.11.1.tgz cd harbor cp harbor.yml.tmpl harbor.yml vim harbor.yml ./install.sh docker ps2.A 机把镜像推送到 Harbor\# 1) 登录 Harbor docker login 192.168.40.145 \# 输入 admin 和密码Harbor12345 \# 2) 给镜像打上 Harbor 仓库的标签项目名 docker-project docker tag goapp:v1 192.168.40.145/docker-project/goapp:v1 docker tag mynginx:1.0 192.168.40.145/docker-project/mynginx:1.0 \# 3) 推送 docker push 192.168.40.145/docker-project/goapp:v1 docker push 192.168.40.145/docker-project/mynginx:1.0四成果展示五心得体会技术掌握深入理解了Docker网络、数据卷、Compose编排NFS共享存储原理Prometheus监控体系组件协作。能力提升独立完成多主机联动部署提升了架构设计及跨服务排错能力如容器依赖、挂载权限、网络互通等。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价