Linux容器环境怎么部署_从基础到进阶全流程讲透【教学】

6次阅读

linux容器部署核心是选对运行时(如 containerd+nerdctl 或podman)、配好国内镜像源、跑稳首个容器,再用 nerdctl compose 实现轻量编排,全程无需docker Desktop 或 K8s。

Linux 容器环境怎么部署_从基础到进阶全流程讲透【教学】

Linux 容器环境部署不难,关键在理清步骤、避开常见坑。核心是:选对运行时、配好镜像源、跑稳第一个容器、再逐步加管理能力。

一、确认系统基础和容器运行时

主流 Linux 发行版(如 ubuntu 20.04+、centos 8+/AlmaLinux/Rocky Linux、debian 11+)基本都预装或轻松支持 containerd 或 Podman。Docker 虽常用,但已非唯一选择——尤其新项目推荐优先用containerd + nerdctlPodman(无守护进程、rootless 更安全)。

  • 检查内核版本:uname -r,确保 ≥ 4.18(推荐 5.4+,支持 cgroup v2 和 seccomp)
  • 确认 cgroup v2 启用:mount | grep cgroup,看到 cgroup2 on /sys/fs/cgroup type cgroup2 即正常
  • 关闭旧版 cgroup v1 干扰(可选):在 grub 中添加systemd.unified_cgroup_hierarchy=1

二、安装轻量高效运行时(以 containerd + nerdctl 为例)

跳过 Docker Desktop 式臃肿方案,用原生云原生 更可控、资源占用更低。

  • Ubuntu/Debian:sudo apt update && sudo apt install -y containerd.io(官方 repo)或直接下载 containerd 二进制 +nerdctl
  • 配置 containerd:sudo mkdir -p /etc/containerd && sudo containerd config default | sudo tee /etc/containerd/config.toml
  • 启用 systemd cgroup 驱动(编辑 config.toml):
    [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
    SystemdCgroup = true
  • 启动服务:sudo systemctl enable --now containerd
  • 安装 nerdctl(类docker CLI):curl -LO https://github.com/containerd/nerdctl/releases/download/v1.7.6/nerdctl-1.7.6-linux-amd64.tar.gz && tar zxvf nerdctl-1.7.6-linux-amd64.tar.gz && sudo mv nerdctl /usr/local/bin/

三、加速镜像拉取与本地镜像管理

国内直连 Docker Hub 慢且不稳定,必须配置镜像加速器;同时建议搭建私有 registry 用于团队协作或离线环境。

  • 为 containerd 配置镜像加速(修改 /etc/containerd/config.tomlplugins."io.containerd.grpc.v1.cri".registry段):
    [[plugins."io.containerd.grpc.v1.cri".registry.mirrors]]
    endpoint = ["https://mirror.gcr.io", "https://docker.mirrors.ustc.edu.cn"]
  • 重启生效:sudo systemctl restart containerd
  • 测试拉取:nerdctl pull nginx:alpine(比 docker pull 更快更省内存)
  • 本地存镜像:nerdctl save -o nginx.tar nginx:alpine;加载:nerdctl load -i nginx.tar

四、从单容器到轻量编排(不用 K8s 也能管好)

小项目或 CI/CD 环境无需上 kubernetes。nerdctl 自带compose 子命令(v1.5+),完全兼容 Docker Compose v2 语法。

  • 写一个docker-compose.yml(示例:Nginx + redis):
    services:
    web:
    image: nginx:alpine
    ports: ["8080:80"]
    cache:
    image: redis:7-alpine
  • 启动:nerdctl compose up -d;查看:nerdctl compose ps;日志:nerdctl compose logs -f
  • 进阶技巧:
      – 加 --rootless 参数用普通用户运行(需提前配置 loginctl enable-linger $USER
      – 用nerdctl build -f Dockerfile -t myapp . 构建镜像(支持 BuildKit)
      – 配合 systemd --user 实现开机自启容器(适合边缘设备)

基本上就这些。从装运行时、配镜像源、跑单容器,到用 Compose 编排,整套流程干净、可复现、易维护。不需要 Docker Desktop,也不必一上来就啃 K8s。真正用起来,你会发现容器不是黑盒,而是你手边顺手的“超级 chroot”。

站长
版权声明:本站原创文章,由 站长 2025-12-15发表,共计2127字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
1a44ec70fbfb7ca70432d56d3e5ef742
text=ZqhQzanResources