centos stream8如何部署应用程序
小樊
42
2025-12-17 12:07:57
CentOS Stream 8 应用部署实用指南
一 环境准备与通用步骤
- 更新系统并安装常用工具:执行 sudo dnf update -y,按需安装 dnf-plugins-core 等工具。
- 配置软件源:优先使用官方 AppStream/BaseOS 仓库;如需本地介质,可挂载 ISO 并启用 /etc/yum.repos.d/CentOS-Stream-Media.repo 中的本地源(将 enabled=0 改为 enabled=1)。
- 防火墙放行:例如放行 80/443/3306 端口,使用 firewall-cmd --add-port=80/tcp --permanent && firewall-cmd --reload。
- SELinux:生产环境建议保持 Enforcing,通过策略或布尔值精细化放行;仅在测试环境可临时 setenforce 0。
- 服务管理:使用 systemctl enable --now 启动并开机自启,用 systemctl status 检查运行状态。
二 方法一 使用 DNF 或 YUM 仓库安装
- 安装常见服务(示例):
- PostgreSQL 14:执行 sudo dnf install -y postgresql14-server postgresql14-contrib,随后 sudo systemctl enable --now postgresql。
- Docker CE:先 sudo dnf install -y dnf-plugins-core,再添加仓库 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo,安装 sudo dnf install -y docker-ce docker-ce-cli containerd.io,最后 sudo systemctl enable --now docker。
- 验证:如 docker --version、systemctl status postgresql。
- 适用场景:官方或第三方提供了 RPM 仓库 的应用,追求稳定与易维护。
三 方法二 源码编译安装并注册为系统服务
- 安装编译依赖:sudo dnf groupinstall “Development Tools”,以及 pcre-devel zlib-devel openssl-devel 等。
- 编译安装示例(以 Nginx 为例):
- 下载与解压:wget http://nginx.org/download/nginx-1.22.0.tar.gz && tar -zxvf nginx-1.22.0.tar.gz && cd nginx-1.22.0
- 配置与编译安装:
- ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module
- make && sudo make install
- 注册 systemd 服务(/etc/systemd/system/nginx.service):
- [Unit] Description=Nginx; After=network.target
- [Service] ExecStart=/usr/local/nginx/sbin/nginx; ExecReload=/usr/local/nginx/sbin/nginx -s reload; ExecStop=/usr/local/nginx/sbin/nginx -s stop; Type=forking
- [Install] WantedBy=multi-user.target
- 启用:sudo systemctl daemon-reload && sudo systemctl enable --now nginx
- 适用场景:需要定制编译参数、启用/禁用特定模块或安装路径的场景。
四 方法三 容器化部署 Docker
- 安装与启动 Docker:参考上文仓库安装步骤,完成后 sudo systemctl enable --now docker。
- 构建镜像与运行容器:
- 示例 Dockerfile(基于 centos:stream8):
- FROM centos:stream8
- ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- RUN dnf update -y && dnf install -y wget vim && dnf clean all
- COPY . /app && WORKDIR /app
- EXPOSE 8080
- CMD [“bash”, “start.sh”]
- 构建与运行:docker build -t myapp:1.0 .,docker run -d -p 8080:8080 --name myapp myapp:1.0
- 常用运维命令:docker ps、docker logs -f <容器名>、docker exec -it <容器名> /bin/bash、docker stop/start/rm <容器名>。
- 适用场景:环境一致性、快速交付、横向扩展与隔离。
五 方法四 虚拟机部署
- 在 VMware/VirtualBox 中创建 CentOS Stream 8 虚拟机,完成网络与存储配置。
- 在虚拟机内部按上述任一方法部署应用(如 DNF 安装、源码编译或 Docker)。
- 适用场景:需要完整操作系统隔离、与宿主机强隔离或运行多套不同环境的测试/演示。