首页主机资讯怎样在CentOS上部署容器技术

怎样在CentOS上部署容器技术

时间2025-11-28 12:35:05发布访客分类主机资讯浏览921
导读:在 CentOS 上部署容器技术 一 环境准备与 Docker 安装 更新系统与依赖 执行:sudo yum update -y 安装依赖:sudo yum install -y yum-utils device-mapper-pers...

在 CentOS 上部署容器技术

一 环境准备与 Docker 安装

  • 更新系统与依赖
    • 执行:sudo yum update -y
    • 安装依赖:sudo yum install -y yum-utils device-mapper-persistent-data lvm2
  • 添加仓库并安装 Docker
    • 添加仓库:sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    • 安装组件:sudo yum install -y docker-ce docker-ce-cli containerd.io
  • 启动与验证
    • 启动并设置开机自启:sudo systemctl start docker & & sudo systemctl enable docker
    • 验证:docker version 或运行测试容器 sudo docker run hello-world
  • 说明
    • 以上步骤适用于 CentOS 7 及以上版本

二 运行第一个容器与常用操作

  • 运行示例容器
    • Nginx:sudo docker run --name my-nginx -p 80:80 -d nginx
    • 进入交互式 CentOS:sudo docker run -it centos:latest /bin/bash
  • 常用管理命令
    • 拉取镜像:sudo docker pull centos:latest
    • 查看容器:docker ps -a
    • 查看日志:docker logs < 容器ID>
    • 进入运行中容器:docker exec -it < 容器ID> /bin/bash
    • 停止/删除容器:docker stop < 容器ID> / docker rm < 容器ID>
    • 删除镜像:docker rmi < 镜像ID>
  • 数据持久化与网络
    • 数据卷:sudo docker volume create my-data,运行挂载:sudo docker run -v my-data:/app/data -d my-app-image
    • 绑定挂载:sudo docker run -v /host/path:/container/path centos:latest
    • 自定义网络:sudo docker network create my_network,运行使用:sudo docker run --network my_network centos:latest
  • 图形化管理(可选)
    • Portainer:sudo docker run -d -p 8000:8000 --restart=always -v /path/to/portainer:/data portainer/portainer,访问 http://localhost:8000

三 离线环境安装 Docker

  • 在有网环境准备 RPM 包
    • 安装依赖与仓库后执行:sudo yum install -y docker-ce docker-ce-cli containerd.io
    • 将生成的 RPM 包与仓库文件拷贝到离线机器(如通过 U 盘或内网传输)
  • 在离线机器安装与启动
    • 安装:sudo yum localinstall -y /path/to/docker-ce*.rpm /path/to/containerd.io*.rpm
    • 启动:sudo systemctl start docker & & sudo systemctl enable docker
    • 验证:docker version
  • 适用场景
    • 无外网访问或合规要求严格的 内网/隔离网络 环境。

四 进阶 部署 Kubernetes 单节点集群(可选)

  • 环境初始化(所有节点)
    • 关闭防火墙:sudo systemctl stop firewalld & & sudo systemctl disable firewalld
    • 关闭 SELinux:sudo setenforce 0 并修改 /etc/selinux/configSELINUX=permissive(或 disabled,生产请评估)
    • 禁用 Swap:sudo swapoff -a 并注释 /etc/fstab 中 swap 行
    • 时间同步:sudo yum install -y ntpdate & & sudo ntpdate ntp.aliyun.com
    • 内核参数:sudo sysctl -w net.bridge.bridge-nf-call-iptables=1net.ipv4.ip_forward=1
  • 安装容器运行时与 k8s 组件
    • 安装 Docker(同上)
    • 添加 k8s 源并安装:sudo yum install -y kubelet kubeadm kubectl,然后 sudo systemctl enable --now kubelet
  • 初始化 Master
    • 执行:sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=< Master_IP>
    • 配置 kubectl:mkdir -p $HOME/.kube & & sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config & & sudo chown $(id -u):$(id -g) $HOME/.kube/config
  • 安装 CNI 网络插件
    • Flannel:kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    • 或 Calico:kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
  • 加入 Worker 节点
    • 在 Master 上获取加入命令:kubeadm token create --print-join-command
    • 在 Worker 上执行输出的 kubeadm join ... 命令
  • 验证
    • kubectl get nodeskubectl get pods --all-namespaces
  • 说明
    • 上述为入门级单节点部署流程,生产环境需考虑 高可用、网络策略、镜像仓库与持久化存储 等。

五 安全与优化要点

  • 镜像与加速
    • 配置镜像加速器(在 /etc/docker/daemon.json):{ "registry-mirrors": ["https://your_aliyun_accelerator.mirror.aliyuncs.com"] }
  • 存储与日志
    • 存储驱动优先使用 overlay2;日志轮转:{ "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } }
  • 资源与权限
    • 运行容器限制资源:--cpus="0.5" --memory="512m"
    • 避免 --privileged,按需使用 --cap-add/--cap-drop
    • 非 root 运行:在 Dockerfile 中创建并切换用户
  • 安全合规
    • 最小化镜像、定期更新宿主机与镜像、镜像漏洞扫描(如 Docker Scout/Clair)
  • 防火墙与 SELinux
    • 生产不建议直接关闭防火墙,按需放行端口(如 firewall-cmd --permanent --add-port=80/tcp & & firewall-cmd --reload
    • SELinux 问题可先临时 setenforce 0 排查,生产使用正确的 SELinux 策略/标签(如 volume 挂载使用 :z/:Z)。

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


若转载请注明出处: 怎样在CentOS上部署容器技术
本文地址: https://pptw.com/jishu/758920.html
怎样在CentOS上安装开发工具 CentOS Python数据分析怎么做

游客 回复需填写必要信息