
1. 系统重装后的基础环境准备刚完成Linux系统重装时就像拿到一台刚出厂的新设备。我通常会先做三件事更新系统、安装基础工具、配置SSH访问。这些看似与Docker无关的操作实际上能避免后续很多奇怪的问题。以Ubuntu 22.04为例终端里依次执行sudo apt update sudo apt upgrade -y sudo apt install -y curl wget git vim net-tools注意不同Linux发行版的包管理命令不同。如果是CentOS/RHEL系需要将apt换成yum或dnf2. Docker安装的三种标准姿势2.1 官方推荐安装方式Docker官方文档永远是最权威的参考。他们的安装脚本会处理所有依赖关系curl -fsSL https://get.docker.com | sudo sh这个命令背后其实做了以下几件事添加Docker的官方GPG密钥设置稳定的软件仓库安装最新版Docker引擎创建docker用户组2.2 包管理器直接安装对于追求稳定性的生产环境我更喜欢用系统自带的包管理器sudo apt install -y docker.io这种方式安装的版本可能不是最新的但经过发行版厂商的充分测试。我曾经在Ubuntu 20.04上遇到过官方最新版Docker与系统内核的兼容性问题用系统仓库版本就完全正常。2.3 二进制手动安装当需要在没有root权限的环境部署时可以下载静态二进制包VERSION24.0.7 curl -fsSL https://download.docker.com/linux/static/stable/x86_64/docker-${VERSION}.tgz | tar -xz mv docker/* /usr/bin/这种方式适合特殊环境但需要自行处理依赖和更新。3. 安装后的关键配置3.1 用户组与权限管理刚安装完Docker时普通用户运行docker命令会报权限错误。解决方法不是盲目使用sudo而是将用户加入docker组sudo usermod -aG docker $USER newgrp docker # 立即生效重要安全提示docker组实际上具有root等效权限生产环境中需要严格控制组成员3.2 镜像加速配置国内访问Docker Hub速度堪忧修改/etc/docker/daemon.json配置国内镜像源{ registry-mirrors: [ https://registry.cn-hangzhou.aliyuncs.com, https://hub-mirror.c.163.com ] }配置完成后需要重启服务sudo systemctl restart docker4. 验证安装的正确姿势很多人用docker run hello-world就结束了验证这远远不够。我建议的完整验证流程基础功能测试docker --version docker info网络连通性测试docker pull alpine docker run --rm alpine ping -c 4 www.baidu.com存储卷测试docker run --rm -v $(pwd):/data alpine ls /data5. 常见问题排错指南5.1 内核兼容性问题如果遇到类似Your kernel does not support cgroup...的错误可能是内核版本过旧。解决方案# 查看内核版本 uname -r # 对于较旧的内核需要升级或安装额外模块 sudo apt install linux-image-extra-virtual5.2 存储驱动问题特别是重装系统后可能会遇到存储驱动不匹配# 查看当前存储驱动 docker info | grep Storage # 修改驱动类型 sudo vim /etc/docker/daemon.json添加内容{ storage-driver: overlay2 }5.3 防火墙干扰Firewall和iptables规则可能导致容器网络异常# 临时关闭防火墙排查 sudo systemctl stop firewalld # 或添加防火墙规则 sudo firewall-cmd --permanent --zonetrusted --add-interfacedocker06. 生产环境优化建议6.1 日志轮转配置默认情况下Docker容器日志会无限增长需要修改daemon.json{ log-driver: json-file, log-opts: { max-size: 10m, max-file: 3 } }6.2 存储路径修改系统盘空间不足时可以迁移Docker根目录sudo systemctl stop docker sudo rsync -avz /var/lib/docker /new/path/ sudo vim /etc/docker/daemon.json添加{ data-root: /new/path/docker }6.3 内存与CPU限制对于资源紧张的环境可以在启动时添加限制docker run -it --memory1g --cpus1.5 ubuntu7. 进阶工具链配置7.1 Docker Compose安装虽然现在Docker Desktop自带compose但服务器环境还是需要单独安装sudo curl -L https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose sudo chmod x /usr/local/bin/docker-compose7.2 容器监控方案推荐使用cAdvisorPrometheusGrafana组合docker run -d \ --namecadvisor \ --volume/:/rootfs:ro \ --volume/var/run:/var/run:ro \ --volume/sys:/sys:ro \ --volume/var/lib/docker/:/var/lib/docker:ro \ --publish8080:8080 \ google/cadvisor:latest8. 安全加固措施8.1 启用用户命名空间在/etc/docker/daemon.json中添加{ userns-remap: default }8.2 禁用特权容器docker run --security-optno-new-privileges ubuntu8.3 定期漏洞扫描docker scan ubuntu