news 2026/4/15 10:46:40

Ubuntu 24.04 LTS极速部署Docker:从零到Hello World实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ubuntu 24.04 LTS极速部署Docker:从零到Hello World实战指南

1. 环境准备与系统检查

刚拿到一台全新的Ubuntu 24.04 LTS服务器时,我习惯先做两件事:确认系统版本和更新软件源。这个习惯帮我避免过不少兼容性问题。打开终端输入以下命令:

cat /etc/os-release

你会看到类似这样的输出:

PRETTY_NAME="Ubuntu 24.04 LTS" VERSION_ID="24.04"

重点注意:Docker对系统内核版本有要求,而Ubuntu 24.04默认搭载的6.x内核完全满足需求。不过我在帮朋友配置旧机器时遇到过坑——他之前手动升级过内核导致依赖冲突。如果遇到类似情况,建议先用uname -r确认内核版本不低于5.4。

接着执行系统更新(这步不能省):

sudo apt update && sudo apt upgrade -y

有次我跳过了这步直接安装Docker,结果因为openssl版本不匹配导致TLS验证失败。更新后记得安装基础依赖包:

sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

这些工具的作用分别是:

  • apt-transport-https:让apt能通过HTTPS协议下载软件
  • ca-certificates:管理CA证书
  • curl:命令行下载工具
  • software-properties-common:管理软件源

2. Docker仓库配置实战

配置仓库时最容易出错的是密钥环节。去年帮学生调试时发现,某高校网络会拦截GPG密钥请求,导致安装失败。这里分享两种解决方案:

方案一:官方源(推荐网络通畅时使用)

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

方案二:国内镜像源(适合下载慢的环境)

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

添加仓库时要注意$(lsb_release -cs)这个变量,它会自动获取系统代号。有次我在Ubuntu 22.04上手动填成了"focal",结果版本冲突。正确命令:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

3. Docker引擎安装详解

更新源缓存后,安装命令看似简单却暗藏玄机:

sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io

常见问题排查

  1. 如果报错"package not found",检查上一步的仓库配置
  2. 出现依赖冲突时,尝试sudo apt --fix-broken install
  3. 企业环境可能需要特定版本,可用apt-cache madison docker-ce查看版本列表

启动服务时我习惯三连操作:

sudo systemctl start docker sudo systemctl enable docker sudo systemctl status docker

最后这步status能直观看到服务状态,有次发现服务没启动,日志显示是cgroup驱动问题,这个我们后面配置环节会讲到。

验证安装成功最直接的方式:

sudo docker --version # 输出类似:Docker version 24.0.5, build 24.0.5-0ubuntu1~24.04.1

4. 国内镜像加速配置

直接拉取Docker Hub的镜像慢得像蜗牛?这是我实测有效的配置方案。创建或修改/etc/docker/daemon.json

sudo tee /etc/docker/daemon.json <<EOF { "registry-mirrors": [ "https://mirror.aliyuncs.com", "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com" ], "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2" } EOF

参数解析

  • registry-mirrors:镜像加速地址,建议选离你最近的
  • cgroupdriver:与系统保持一致避免警告
  • log-driver:日志格式和大小限制
  • storage-driver:推荐overlay2文件系统

重启服务应用配置:

sudo systemctl daemon-reload sudo systemctl restart docker

验证加速器是否生效:

docker info | grep Mirrors -A 2

5. Hello World实战与进阶测试

经典的hello-world测试:

sudo docker run hello-world

成功的话你会看到鲸鱼图案的欢迎信息。但我想分享几个更实用的测试案例:

案例一:运行Nginx测试网络

docker run -d -p 8080:80 --name test-web nginx

访问http://localhost:8080 应该能看到Nginx欢迎页

案例二:交互式Ubuntu容器

docker run -it ubuntu bash

这个特别适合练习基础命令,退出后容器会自动停止

案例三:查看容器日志

docker logs test-web

案例四:资源监控

docker stats

6. 权限优化与日常管理

每次都要sudo太麻烦?把当前用户加入docker组:

sudo usermod -aG docker $USER newgrp docker # 立即生效

安全提示:生产环境要谨慎操作,相当于给用户root权限。我团队曾发生过因误操作导致容器逃逸的事故。

常用管理命令备忘:

# 查看运行中的容器 docker ps # 查看所有容器(包括已停止的) docker ps -a # 停止/启动容器 docker stop test-web docker start test-web # 删除容器 docker rm test-web # 查看镜像列表 docker images # 删除镜像 docker rmi nginx

遇到空间不足时,记得定期清理:

docker system prune

7. 故障排查手册

问题1:docker命令报"Permission denied"

  • 检查用户是否在docker组
  • 尝试用sudo执行
  • 查看/var/run/docker.sock权限

问题2:镜像拉取失败

  • 检查网络连接
  • 尝试更换registry-mirrors
  • 手动ping镜像域名测试

问题3:容器启动立即退出

  • 查看日志:docker logs <容器ID>
  • 测试交互模式:docker run -it <镜像> bash
  • 检查ENTRYPOINT/CMD配置

问题4:端口无法访问

  • 确认防火墙放行
  • 检查端口映射是否正确
  • 测试容器内服务是否正常:docker exec -it <容器ID> curl localhost:80

记得去年处理过一个经典案例:用户反馈容器连不上MySQL,最后发现是docker0网桥的MTU设置问题。这类问题可以用docker network inspect bridge诊断。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 10:46:38

永久保存微信聊天记录:WeChatMsg让珍贵对话永不消失

永久保存微信聊天记录&#xff1a;WeChatMsg让珍贵对话永不消失 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatM…

作者头像 李华
网站建设 2026/4/15 10:44:26

别再硬改内核了!用OpenHarmony的HCK框架给Linux内核打“补丁”实战(以rk3568开发板为例)

HCK框架实战&#xff1a;用非侵入式方案为Linux内核添加定制功能 在嵌入式开发中&#xff0c;每次拿到新硬件平台的第一道难关往往就是内核适配。传统的内核修改方式就像在心脏上动手术——稍有不慎就会导致系统崩溃&#xff0c;而每次内核版本升级又意味着要重做一遍这个高风险…

作者头像 李华
网站建设 2026/4/15 10:43:11

2025届毕业生推荐的十大AI写作神器横评

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 作为大语言模型的DeepSeek&#xff0c;在论文写作里能够充当多重辅助角色&#xff0c;首先&a…

作者头像 李华
网站建设 2026/4/15 10:43:10

Gromacs蛋白动力学模拟实战:从RMSD到回旋半径的完整分析流程

1. Gromacs蛋白动力学模拟基础入门 第一次接触Gromacs时&#xff0c;我被它复杂的命令行参数吓到了。但实际用下来发现&#xff0c;只要掌握几个核心命令&#xff0c;就能完成完整的蛋白动力学模拟流程。这里我用做菜来比喻&#xff1a;Gromacs就像一套完整的厨具&#xff0c;虽…

作者头像 李华