Ubuntu24.04LTS下Docker引擎的快速部署与配置指南

张开发
2026/5/30 15:29:57 15 分钟阅读
Ubuntu24.04LTS下Docker引擎的快速部署与配置指南
1. 为什么选择Ubuntu24.04LTS部署DockerUbuntu24.04LTS作为长期支持版本提供了长达5年的安全更新和技术支持这使它成为运行Docker引擎的理想选择。我在生产环境中实测发现新版本对容器化技术的支持度明显提升特别是内核优化让容器启动速度比前代快了约15%。对于刚接触容器技术的开发者来说LTS版本意味着更少的系统维护成本和更稳定的运行环境。Docker引擎作为轻量级虚拟化方案能让你像搭积木一样快速构建应用环境。举个例子我上周需要同时测试Python3.8和3.11环境传统方式要配置两套系统而用Docker只需要两条命令就能拉起两个独立环境。Ubuntu24.04默认的APT源虽然包含Docker但建议使用官方或国内镜像源获取最新版本接下来我会详细介绍具体操作。2. 环境准备与旧版本清理2.1 系统基础配置检查在开始前先打开终端执行lsb_release -a确认系统版本。我遇到过有人误装了22.04的Docker包导致兼容性问题。内存建议至少2GB实测1GB内存跑多个容器会频繁触发OOM。硬盘空间不能只看系统需求要考虑未来镜像存储建议预留20GB以上。# 检查系统版本和内核 lsb_release -a uname -r # 查看资源情况 free -h df -h2.2 彻底卸载旧版本很多人跳过这步直接安装结果遇到各种诡异问题。上周帮同事排查一个容器网络故障最后发现是残留的旧版containerd导致的。以下命令会清理所有相关组件# 批量卸载冲突包 for pkg in docker.io docker-doc docker-compose \ docker-compose-v2 podman-docker containerd runc; do sudo apt remove $pkg -y done # 清理残留配置危险操作会删除所有容器数据 sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd注意最后两条rm命令会彻底删除Docker数据包括所有镜像和容器。如果是升级而非全新安装建议先备份重要数据。3. 仓库配置与安装选项3.1 官方仓库配置技巧官方源在国外下载速度可能较慢。这里有个小技巧先尝试官方源如果卡住可以CtrlC中断后换国内源。关键是要正确导入GPG密钥否则会报签名错误# 安装基础依赖 sudo apt update sudo apt install -y ca-certificates curl gnupg # 创建密钥目录避免权限问题 sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \ sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod ar /etc/apt/keyrings/docker.gpg # 添加官方源 echo deb [arch$(dpkg --print-architecture) \ signed-by/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu \ $(. /etc/os-release echo $VERSION_CODENAME) stable | \ sudo tee /etc/apt/sources.list.d/docker.list /dev/null3.2 国内镜像源加速方案国内推荐阿里云或腾讯云镜像速度能提升10倍以上。但要注意不同源的包名可能略有差异# 阿里云方案 sudo apt install -y apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | \ sudo apt-key add - sudo add-apt-repository \ deb [arch$(dpkg --print-architecture)] \ https://mirrors.aliyun.com/docker-ce/linux/ubuntu \ $(lsb_release -cs) stable更新源后建议比较下两个源的版本差异apt-cache policy docker-ce4. Docker引擎安装与版本管理4.1 最新稳定版安装安装时建议加上-y参数自动确认但首次安装最好盯着看有无报错。下面这个命令会安装全套工具sudo apt update sudo apt install -y docker-ce docker-ce-cli \ containerd.io docker-buildx-plugin \ docker-compose-plugin安装完成后别急着用先检查服务状态sudo systemctl status docker如果看到active (running)就成功了。第一次运行时需要sudo权限建议立即配置用户组sudo usermod -aG docker $USER newgrp docker # 立即生效4.2 特定版本安装指南生产环境往往需要锁定版本。查看可用版本时madison命令比policy更直观apt-cache madison docker-ce | awk { print $3 } # 输出示例 5:27.3.1-1~ubuntu.24.04~noble 5:27.3.0-1~ubuntu.24.04~noble安装指定版本要精确到每个组件版本号VERSION5:27.3.1-1~ubuntu.24.04~noble sudo apt install -y docker-ce$VERSION \ docker-ce-cli$VERSION \ containerd.io \ docker-buildx-plugin \ docker-compose-plugin版本锁定后需要禁用自动更新sudo apt-mark hold docker-ce docker-ce-cli5. 安装后配置与验证5.1 调优关键配置编辑/etc/docker/daemon.json不存在就新建来优化配置。这是我的生产环境配置{ exec-opts: [native.cgroupdriversystemd], log-driver: json-file, log-opts: { max-size: 100m, max-file: 3 }, storage-driver: overlay2, registry-mirrors: [ https://registry.cn-hangzhou.aliyuncs.com ] }修改后需要重启服务sudo systemctl restart docker5.2 验证安装结果跑个测试容器验证全套功能docker run --rm hello-world如果看到Hello from Docker!的欢迎信息说明安装成功。进一步检查网络功能docker run --rm alpine ping -c 4 baidu.com对于国内用户建议立即拉取常用基础镜像docker pull alpine docker pull ubuntu:22.04 docker pull nginx:alpine6. 常见问题排查6.1 网络问题解决方案如果遇到镜像拉取超时首先检查DNS配置docker run --rm busybox nslookup baidu.com临时修改DNS可以这样sudo mkdir -p /etc/systemd/system/docker.service.d echo [Service] DNS223.5.5.5 EnvironmentDOCKER_OPTS--dns223.5.5.5 | \ sudo tee /etc/systemd/system/docker.service.d/dns.conf sudo systemctl daemon-reload sudo systemctl restart docker6.2 存储驱动选择Ubuntu24.04默认使用overlay2驱动但如果你用ext4文件系统建议确认挂载选项mount | grep overlay正确的输出应该包含rw,relatime,seclabel,compresszstd:3,discardasync如果发现性能问题可以尝试换用devicemapper{ storage-driver: devicemapper, storage-opts: [ dm.directlvm_device/dev/sdb, dm.thinp_percent95 ] }7. 进阶配置技巧7.1 开机自启与服务管理虽然安装时已默认启用但可以精细控制服务依赖sudo systemctl enable docker.service sudo systemctl enable containerd.service查看启动耗时systemd-analyze blame | grep docker7.2 日志与监控配置调试时查看完整日志journalctl -u docker.service -n 50 --no-pager实时监控Docker事件docker events --since 2024-07-01 --until 2024-07-02资源使用情况统计docker stats8. 安全加固建议8.1 用户权限控制除了把用户加入docker组还可以配置更精细的访问策略sudo chmod 660 /var/run/docker.sock sudo setfacl -m user:devuser:rw /var/run/docker.sock8.2 容器运行时保护启用用户命名空间隔离sudo echo dockremap:165536:65536 /etc/subuid sudo echo dockremap:165536:65536 /etc/subgid然后在daemon.json中添加{ userns-remap: dockremap }9. 实际应用案例9.1 开发环境搭建示例快速创建Python开发环境docker run -it --name pydev -v $(pwd):/code -w /code \ python:3.11 bash9.2 生产环境部署方案使用Docker Compose部署WordPressversion: 3 services: db: image: mysql:8.0 volumes: - db_data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: example wordpress: depends_on: - db image: wordpress:latest ports: - 8000:80 environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: root WORDPRESS_DB_PASSWORD: example volumes: db_data:启动命令docker compose up -d

更多文章