linux容器部署需理清“运行时—镜像—实例”三层逻辑:先装对运行时(docker Engine+ 权限配置 + 镜像加速),再拉取 / 运行镜像,最后管理实例(数据卷、网络、日志)。

Linux 容器环境部署不是 堆命令,而是理清“运行时—镜像—实例”三层逻辑。掌握这三环,安装、启动、排错就都顺了。
先装好运行时:Docker Engine + 权限配置
容器跑不起来,90% 卡在第一步——运行时没装对或权限不对。
- ubuntu用官方源安装(避免 apt 默认仓库的老版本):加密钥、加源、装docker-ce、docker-cli、containerd.io
- centos用 yum-config-manager 添加 Docker CE 仓库,再装同名包
- 装完必须执行:sudo usermod -aG docker $USER,然后 newgrp docker 或重新登录,否则普通用户无法调用 docker 命令
- 国内用户建议配镜像加速器,写进 /etc/docker/daemon.json 再systemctl daemon-reload && systemctl restart docker
验证是否真可用:服务 + 版本 + 实例三查
别只信docker –version,那只是客户端。要确认整个链路通了:
- systemctl status docker —— 看服务是不是 active (running)
- docker info —— 查 cgroups 版本、存储驱动(如 overlay2)、容器数等底层状态
- docker run –rm hello-world —— 真正拉镜像、启容器、输出日志、自动退出,一步验全链
镜像与容器:从拉取到交互的关键动作
日常开发最常碰的不是构建,而是快速起一个带环境的容器:
- 拉镜像:docker pull ubuntu:22.04 或 nginx:alpine,优先选带 -slim 或-alpine的轻量标签
- 起容器:docker run -it –rm -p 8080:80 nginx:alpine,-it 是交互前提,- p 做 端口 映射
- 进容器:docker exec -it 容器 ID /bin/sh(alpine 用 sh,Ubuntu 用bash)
- 看日志:docker logs -f 容器 ID,- f 实时跟踪,适合调试启动失败问题
数据和网络:两个最容易丢的环节
容器删了,代码还在不在?服务能不能被访问?这两点决定你是不是真会用容器:
- 数据不丢:用 docker volume create mydata 建卷,启动时加-v mydata:/app/data;别直接-v ./local:/app,路径权限和 SELinux 可能出问题
- 网络互通:单容器用 -p 映射到宿主机;多容器(如 web+db)务必用 docker network create mynet,再分别用–network mynet 启动,它们就能用容器名互相访问
基本上就这些。不复杂但容易忽略——比如忘了 newgrp docker,或者docker run 漏了 -it 导致进不去容器。理清每步对应哪层(运行时 / 镜像 / 实例),动手就稳了。