首页主机资讯CentOS Stream 8的容器化实践

CentOS Stream 8的容器化实践

时间2025-10-01 05:36:04发布访客分类主机资讯浏览641
导读:CentOS Stream 8容器化实践指南 CentOS Stream 8是Red Hat企业级Linux(RHEL)的上游公共开发分支,定位介于Fedora Linux与RHEL之间,适用于需要持续更新、贴近RHEL生态的容器化场景。以...

CentOS Stream 8容器化实践指南
CentOS Stream 8是Red Hat企业级Linux(RHEL)的上游公共开发分支,定位介于Fedora Linux与RHEL之间,适用于需要持续更新、贴近RHEL生态的容器化场景。以下是其容器化实践的核心步骤与注意事项:

一、基础环境准备:安装Docker

在CentOS Stream 8上部署容器前,需先安装Docker(推荐使用社区版)。常见步骤如下:

  1. 更新系统:运行sudo dnf update -y,确保系统软件包为最新版本;
  2. 安装依赖包:执行sudo dnf install -y dnf-plugins-core,添加Docker仓库管理工具;
  3. 添加Docker官方仓库:通过sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo引入Docker官方源;
  4. 安装Docker引擎:运行sudo dnf install docker-ce --nobest -y--nobest参数允许选择非最优包版本,避免依赖冲突);
  5. 启动与自启:执行sudo systemctl start docker启动服务,sudo systemctl enable docker设置开机自启;
  6. 验证安装:通过docker --version确认Docker已正确安装(输出应包含版本号)。
    注:若遇Docker与Podman冲突,可添加--allowerasing参数解决;容器化实践建议使用--privileged模式(或启动容器时添加该选项),以确保权限充足。

二、容器化部署:从镜像到运行

1. 快速创建并运行临时容器

若需快速测试CentOS Stream 8环境,可使用docker run命令直接启动临时容器:

docker run -itd --privileged --name centos-test -p 5022:22 centos:stream8 /usr/sbin/init
  • -itd:以交互模式、分配伪终端、后台运行;
  • --privileged:赋予容器root权限(用于安装软件、配置服务);
  • -p 5022:22:将宿主机5022端口映射到容器22端口(用于SSH连接);
  • centos:stream8:使用官方CentOS Stream 8基础镜像。
    进入容器后,可执行yum update -y升级系统、yum install -y openssh-server vim安装常用工具,配置SSH服务(修改/etc/ssh/sshd_config取消PortPermitRootLogin等注释,重启服务systemctl restart sshd),最后通过ssh root@localhost -p 5022从宿主机连接容器。

2. 使用Dockerfile定制持久化镜像

若需部署特定应用(如Web服务、数据库),建议通过Dockerfile定制镜像,确保环境一致性:

  • 创建Dockerfile:在项目目录下新建Dockerfile,内容示例如下:
     使用官方CentOS Stream 8镜像为基础
    FROM centos:stream8
     设置环境变量(可选)
    ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
     安装所需软件包(如wget、vim)
    RUN yum update -y &
        &
         \
        yum install -y wget vim &
        &
         \
        yum clean all   清理缓存,减小镜像体积
     复制本地应用代码到容器(假设项目目录有app文件夹)
    COPY . /app
    WORKDIR /app   设置工作目录
     暴露应用端口(如8080)
    EXPOSE 8080
     定义启动命令(如运行start.sh脚本)
    CMD ["bash", "start.sh"]
    
  • 构建镜像:在Dockerfile所在目录运行docker build -t my-centos-stream8-app .-t指定镜像名称,.表示当前目录);
  • 运行容器:通过docker run -d -p 8080:8080 --name my-running-app my-centos-stream8-app启动容器(-d后台运行,-p映射端口)。

三、进阶实践:多容器编排与管理

若需部署多个关联服务(如应用+数据库),可使用Docker Compose简化管理:

  • 创建docker-compose.yaml:在项目根目录新建文件,内容示例如下:
    version: &
        x27;
        3&
        x27;
           指定Compose文件版本
    services:
      app:   应用服务
        image: my-centos-stream8-app   使用自定义镜像
        ports:
          - "8080:8080"   映射端口
        depends_on:   依赖关系(确保db先启动)
          - db
      db:   数据库服务(以CentOS Stream 8为基础安装PostgreSQL为例)
        image: centos:stream8
        command: ["bash", "-c", "yum install -y postgresql-server postgresql-contrib &
        &
         postgresql-setup initdb &
        &
         systemctl start postgresql"]
        environment:
          POSTGRES_PASSWORD: mypassword   设置数据库密码
        volumes:
          - postgres_data:/var/lib/pgsql/data   持久化数据(挂载卷)
    volumes:
      postgres_data:   定义数据卷
    
  • 启动服务:运行docker-compose up -d,Compose会自动构建镜像、启动容器,并处理依赖关系;
  • 管理服务:通过docker-compose ps查看容器状态,docker-compose logs -f app查看应用日志,docker-compose down停止并删除服务。

四、注意事项

  1. 生命周期提醒:CentOS Stream 8已于2024年5月31日结束生命周期(EOL),官方不再提供安全更新。建议尽快迁移至RHEL 8 Stream或替代发行版(如Rocky Linux 9 Stream、AlmaLinux 9 Stream),以避免安全风险;
  2. 镜像优化:Dockerfile中尽量使用yum clean all清理缓存、合并RUN指令(减少镜像层数)、选择轻量级基础镜像(如centos:stream8-minimal),提升构建速度与镜像效率;
  3. 权限控制:容器运行时避免过度使用--privileged(仅在必要时使用),可通过--cap-add添加特定权限(如网络配置权限NET_ADMIN),降低安全风险;
  4. 数据持久化:多容器部署时,若服务需要存储数据(如数据库),务必使用volumes挂载数据卷,避免容器删除后数据丢失。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS Stream 8的容器化实践
本文地址: https://pptw.com/jishu/715300.html
如何在CentOS Stream 8上安装软件包 CentOS Stream 8中如何管理用户权限

游客 回复需填写必要信息