5分钟快速上手Docker容器化部署:从零到实践
一、为什么选择Docker?
2023年DevOps调查报告显示,83%的开发者正在使用容器化技术,其中Docker以76%的市场占有率稳居首位。容器化技术能实现:
-
🚀 环境一致性:解决"在我机器上能跑"的经典问题
-
📦 快速部署:秒级启动的轻量化容器
-
🔗 资源隔离:更高效地利用系统资源
二、手把手教学(Linux环境)
1. 安装Docker引擎
# 一键安装脚本 curl -fsSL https://get.docker.com | bash -s docker # 验证安装 docker --version # 预期输出:Docker version 24.0.6, build ed223bc
2. 运行第一个容器
# 拉取官方Nginx镜像 docker pull nginx:alpine # 启动容器并映射端口 docker run -d -p 8080:80 --name my_web nginx:alpine
访问 http://localhost:8080
即可看到欢迎页面!
3. 常用命令速查表
命令 | 作用 | 示例 |
---|---|---|
docker ps | 查看运行中的容器 | docker ps -a 查看所有容器 |
docker exec | 进入容器 | docker exec -it my_web /bin/sh |
docker logs | 查看日志 | docker logs -f my_web |
docker compose up | 启动多容器应用 | 搭配docker-compose.yml使用 |
三、实战案例:部署Python Flask应用
-
创建Dockerfile
FROM python:3.9-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . EXPOSE 5000 CMD ["gunicorn", "--bind", "0.0.0.0:5000", "app:app"]
-
构建镜像
docker build -t flask-app:v1 .
-
启动服务
docker run -d -p 5000:5000 flask-app:v1
四、避坑指南
-
存储问题:使用volume持久化数据
docker volume create my_data docker run -v my_data:/data ...
-
时区设置:在Dockerfile中添加
ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime
-
镜像瘦身:使用多阶段构建,选择alpine等轻量基础镜像
五、学习资源推荐
-
官方文档:docs.docker.com
-
互动实验室:Play with Docker
-
进阶书籍:《Docker Deep Dive》