Docker教程
5分钟阅读
学习动机
在云原生和DevOps时代,Linux不仅是服务器操作系统,更是现代技术栈的基础。从容器化部署到微服务架构,从CI/CD流水线到云平台管理,Linux技能已成为技术人员的核心竞争力。
为什么学习Linux
- 云原生基础:Kubernetes、Docker等容器技术的底层支撑
- DevOps核心:CI/CD、基础设施即代码(IaC)的必备技能
- 边缘计算:IoT设备、嵌入式系统的主流选择
- AI/ML平台:深度学习框架和大数据平台的首选环境
- 网络安全:渗透测试、安全分析工具的主要平台
- 开发效率:现代开发工具链和编程环境的基础
学习目标
基础技能目标
- 命令行精通:掌握200+常用命令和高级用法
- 系统管理:用户权限、进程管理、系统监控
- 网络配置:防火墙、路由、DNS、负载均衡
- 存储管理:文件系统、LVM、RAID、备份策略
现代化技能目标
- 容器技术:Docker、Podman、容器编排基础
- 自动化运维:Ansible、Terraform、GitOps实践
- 监控观测:Prometheus、Grafana、ELK Stack
- 安全加固:SELinux、防火墙策略、漏洞扫描
- 云原生:Kubernetes基础、服务网格概念
学习环境搭建
现代化学习环境选择
1. WSL2(Windows用户首选)
# Windows 11用户推荐方案
wsl --install -d Ubuntu-22.04
# 启用systemd支持
echo -e '[boot]\nsystemd=true' | sudo tee -a /etc/wsl.conf
# 安装现代化工具
sudo apt update && sudo apt install -y \
curl wget git vim neovim \
htop btop tree fd-find ripgrep \
docker.io docker-compose \
python3-pip nodejs npm
2. 容器化学习环境(快速上手)
# 使用Docker创建学习环境
docker run -it --name linux-lab \
--privileged \
-v ~/linux-practice:/workspace \
ubuntu:22.04 /bin/bash
# 或使用预配置的学习镜像
docker run -it --rm \
-v $(pwd):/workspace \
nicolaka/netshoot
3. 云平台实验室
# GitHub Codespaces(免费额度)
# 直接在浏览器中运行Linux环境
# 集成VS Code,支持端口转发
# Gitpod(开源项目免费)
# 基于VS Code的云端IDE
# 支持Docker和Kubernetes
# Play with Docker/Linux
# 免费的在线实验环境
# 无需安装,即开即用
4. 本地虚拟机(深度学习)
# 推荐配置(2024版)
# CPU: 4核心(支持虚拟化)
# 内存: 8GB(最低4GB)
# 存储: 50GB SSD
# 网络: NAT + Host-Only
# 推荐发行版
Ubuntu 22.04 LTS # 最新长期支持版
Rocky Linux 9 # CentOS替代方案
Debian 12 # 稳定可靠
Arch Linux # 滚动更新,最新软件
学习计划
阶段一:现代Linux基础(2-3周)
- 命令行工具:传统命令 + 现代替代品(exa, bat, fd, ripgrep)
- 终端环境:Zsh + Oh My Zsh,Tmux会话管理
- 文本编辑:Vim/Neovim基础,VS Code Remote
- 版本控制:Git工作流,GitHub/GitLab协作
阶段二:系统管理现代化(3-4周)
- 进程管理:systemd服务管理,cgroups资源控制
- 网络配置:NetworkManager,防火墙策略
- 存储管理:LVM,文件系统优化,备份策略
- 监控工具:htop, btop, glances, netdata
阶段三:容器化与自动化(4-5周)
- 容器技术:Docker基础,Podman使用
- 编排工具:Docker Compose,基础Kubernetes
- 自动化运维:Ansible playbooks,基础设施即代码
- CI/CD基础:GitHub Actions,GitLab CI
阶段四:云原生与DevOps(持续学习)
- 云平台:AWS/Azure/GCP基础服务
- 监控观测:Prometheus + Grafana,日志聚合
- 安全实践:容器安全,网络安全,合规检查
- 性能优化:系统调优,应用性能监控
学习方法论
理论与实践结合
# 学习新命令的步骤
1. 阅读man手册:man command
2. 查看帮助信息:command --help
3. 简单实验:在安全环境下尝试
4. 实际应用:结合工作场景使用
5. 总结记录:记录常用参数和技巧
建立知识体系
- 横向学习:同类工具的对比(如ps vs top vs htop)
- 纵向深入:从基础到高级的递进学习
- 关联思考:理解命令之间的配合使用
错误驱动学习
# 记录和分析错误
echo "$(date): 尝试执行 $command" >> ~/learning.log
echo "错误信息: $error_message" >> ~/learning.log
echo "解决方案: $solution" >> ~/learning.log
echo "---" >> ~/learning.log
学习资源整理
必备书籍
- 《鸟哥的Linux私房菜》 - 入门首选
- 《Linux命令行与shell脚本编程大全》 - 进阶必读
- 《UNIX环境高级编程》 - 深入理解系统
- 《性能之巅》 - 性能调优圣经
- 《Linux系统编程》 - 系统调用和底层编程
- 《深入理解Linux内核》 - 内核原理详解
在线学习平台
# 免费学习资源
https://www.linuxjourney.com/ # 交互式Linux学习
https://linuxcommand.org/ # 命令行教程
https://www.cyberciti.biz/ # 实用教程和技巧
https://www.tecmint.com/ # Linux新闻和教程
# 付费优质课程
https://linuxacademy.com/ # Linux Academy
https://www.pluralsight.com/ # Pluralsight Linux课程
https://www.udemy.com/ # Udemy实战课程
实验环境搭建指南
# 方案1:本地虚拟机(推荐新手)
# VirtualBox安装CentOS 8 Stream
wget http://mirrors.aliyun.com/centos/8-stream/isos/x86_64/CentOS-Stream-8-x86_64-latest-dvd1.iso
# 配置:2GB内存,20GB硬盘,NAT+Host-Only网络
# 方案2:Docker容器(快速实验)
docker run -it --name linux-lab centos:8 /bin/bash
docker run -it --name ubuntu-lab ubuntu:20.04 /bin/bash
# 方案3:云服务器(生产环境)
# 阿里云ECS:1核2G,按量付费,约0.5元/小时
# 腾讯云CVM:轻量应用服务器,24元/月
# AWS EC2:t2.micro免费套餐,750小时/月
在线资源
# 官方文档
https://www.kernel.org/doc/html/latest/
https://access.redhat.com/documentation/
https://help.ubuntu.com/
# 学习网站
https://linuxjourney.com/
https://www.linuxcommand.org/
https://explainshell.com/
实验环境
# 本地虚拟机
VirtualBox + CentOS 8 Stream
VMware + Ubuntu 20.04 LTS
# 云服务器
阿里云ECS(1核2G,按量付费)
腾讯云CVM(轻量应用服务器)
AWS EC2(免费套餐)
# 容器环境
docker run -it centos:8 /bin/bash
docker run -it ubuntu:20.04 /bin/bash
学习里程碑
第一个月目标
- 熟练使用50个基础命令
- 能够独立安装和配置Linux系统
- 理解文件权限和用户管理
- 编写简单的shell脚本
第二个月目标
- 掌握系统服务管理
- 能够配置网络和防火墙
- 熟练使用文本处理工具
- 进行基本的性能监控
第三个月目标
- 搭建完整的Web服务环境
- 编写复杂的自动化脚本
- 掌握日志分析和故障排查
- 了解系统安全加固
学习心态调整
克服恐惧心理
# 建立安全的实验环境
cp important_file important_file.backup
# 在虚拟机中大胆尝试
# 记住:犯错是学习的一部分
保持学习热情
- 设定小目标:每天学习1-2个新命令
- 记录成长:写学习日记,记录进步
- 分享交流:加入Linux学习群组
- 实际应用:将学到的知识应用到实际工作中
建立学习习惯
# 每日学习计划
09:00-09:30 阅读Linux相关文章
12:00-12:30 午休时间练习命令
19:00-20:00 深入学习一个主题
21:00-21:30 总结当天学习内容