linux容器部署关键在理清顺序、守住安全底线、避开常见坑:选 ubuntu 20.04/centos 8 系统且内核≥3.10;关闭 firewalld 和 NetworkManager、配静态 IP、调优内核参数;用官方源装docker 并立即执行 usermod 和 newgrp;镜像构建用多阶段、合并 RUN、避免 ENV 硬 编码 敏感信息;启动后查状态、盯日志、加资源限制。

Linux 容器环境部署不难,但容易在细节上卡住。关键不是 堆命令,而是理清顺序、守住安全底线、避开常见坑。
基础环境准备要稳
选对系统和内核是第一步。Ubuntu 20.04 LTS 或 CentOS 8 是目前最稳妥的选择,内核版本不能低于 3.10 —— 这是 Overlay2 存储驱动和 命名空间 隔离的硬门槛。安装完系统后,建议做三件事:
- 关闭 firewalld 和 NetworkManager,避免与 Docker 网络冲突
- 配置静态 IP,防止网络重启后服务漂移
- 调优内核参数:启用 ip_forward、bridge-nf-call-iptables,设置 vm.overcommit_memory=1
Docker 安装与权限必须一步到位
用官方源安装 Docker Engine(20.10+),别用系统仓库里过时的包。安装完立刻执行这两条命令:
- sudo usermod -aG docker $USER —— 把当前用户加入 docker 组
- newgrp docker 或重新登录终端 —— 让组权限立即生效
漏掉第二步,后续所有 docker run 都会报“permission denied”,这是新手最高频的阻塞点。
镜像构建讲策略,不盲目 copy
写 Dockerfile 时记住一个原则:层越少、镜像越快、越安全。推荐做法:
- 用多阶段构建,编译和运行分离。比如 go 项目,第一阶段用
golang:1.22编译,第二阶段用alpine:3.20或scratch运行 -
RUN命令合并安装依赖:RUN apt-get update && apt-get install -y curl nginx && rm -rf /var/lib/apt/lists/* - 敏感信息不用
ENV硬 编码,改用--build-arg+ARG,构建时不进镜像层
启动与管理重在可观察、可收敛
别只跑 docker-compose up -d 就完事。上线前至少确认三件事:
- 用
docker ps -a查看容器状态,重点关注 STATUS 列是否为 Up X seconds,而非反复 restarting - 用
docker logs -f <container></container>实时盯日志,尤其注意初始化失败、端口 占用、配置文件缺失等提示 - 给关键容器加资源限制:
mem_limit: 512m、cpus: '0.5',防止单个容器吃光宿主机资源
基本上就这些。部署本身不复杂,但每一步都有“默认不生效”或“默认不安全”的设计,默认值往往不是最佳值。