CentOS Stream 8容器技术使用指南
CentOS Stream 8是Red Hat Enterprise Linux(RHEL)的上游开发分支,其容器技术生态以Docker为核心,支持通过镜像构建、容器运行与管理实现应用容器化。以下是具体操作步骤及注意事项:
Docker是CentOS Stream 8上最常用的容器引擎,安装流程如下:
sudo dnf update -y
,确保系统软件包为最新版本。sudo dnf install -y yum-utils device-mapper-persistent-data lvm2
,安装Docker所需的底层工具。sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
命令,将Docker官方仓库添加至系统。sudo dnf install docker-ce --nobest -y
,安装Docker Community Edition(社区版)。sudo systemctl start docker
启动Docker服务,sudo systemctl enable docker
设置开机自动启动。docker --version
,若输出Docker版本信息(如Docker version 24.xx.xx
),则说明安装成功。安装完成后,可通过Docker命令快速运行容器:
docker pull nginx:latest
(拉取最新版Nginx)、docker pull node:latest
(拉取最新版Node.js)。docker run -it node /bin/bash
(以node
镜像为基础,启动bash终端)。docker run -d -p 8080:80 nginx
(以nginx
镜像为基础,在后台运行并将容器80端口映射至宿主机8080端口)。docker ps
;查看所有容器(含停止的):docker ps -a
。docker stop [容器ID/名称]
(如docker stop nginx-container
)。docker rm [容器ID/名称]
(如docker rm nginx-container
)。docker images
。通过Dockerfile可自定义镜像,实现应用的可重复部署:
Dockerfile
文件,内容如下(以CentOS Stream 8为基础镜像):# 使用官方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"]
docker build -t my-centos-stream8-app .
(-t
指定镜像名称及标签,.
表示当前目录)。docker run -d -p 8080:8080 --name my-running-app my-centos-stream8-app
(--name
指定容器名称,-p
映射端口)。若需通过SSH连接容器,可按以下步骤操作:
docker run -itd --privileged --name centos-test -p 5022:22 centos:stream8 /usr/sbin/init
(--privileged
赋予容器root权限,-p 5022:22
将容器22端口映射至宿主机5022端口)。docker exec -it centos-test /bin/bash
。yum install -y openssh-server passwd
。systemctl start sshd
、systemctl enable sshd
。/etc/ssh/sshd_config
):取消Port
(端口)、ListenAddress
(监听地址)、PermitRootLogin
(允许root登录)、PubkeyAuthentication
(公钥认证)的注释,并修改Port 22
为Port 22
(或自定义端口)。passwd root
(输入两次密码)。systemctl restart sshd
。ssh root@localhost -p 5022
(输入密码即可登录)。若需保存容器状态为镜像,可使用docker commit
命令:
docker exec -it centos-test /bin/bash
。exit
。docker commit centos-test centos:ssh
(centos-test
为容器名称,centos:ssh
为新镜像名称及标签)。--allowerasing
参数强制安装(如sudo dnf install docker-ce --nobest --allowerasing -y
)。--privileged
选项开启,但需注意安全性(避免在生产环境中滥用)。