Docker从入门到实践:容器化你的第一个应用

Docker 已经成为现代软件开发和运维的标配技能。它让「在我电脑上能跑」成为历史。这篇文章带你从零开始掌握 Docker。

一、什么是 Docker?

Docker 是一个容器化平台。你可以把容器理解为一个轻量级的虚拟机——它把你的应用和所有依赖打包在一起,在任何装了 Docker 的机器上都能直接运行。

  • 镜像(Image):容器的模板,类似于安装包
  • 容器(Container):镜像的运行实例
  • Dockerfile:用于构建镜像的脚本
  • Docker Compose:管理多容器应用的工具

二、安装 Docker

Windows 推荐用 Docker Desktop,macOS 同理。Linux 直接用包管理器安装:

# Ubuntu/Debian
sudo apt-get update && sudo apt-get install docker.io

# 启动服务
sudo systemctl start docker
sudo systemctl enable docker

三、常用命令速查

# 拉取镜像
docker pull nginx:latest

# 查看本地镜像
docker images

# 运行容器
docker run -d --name my-nginx -p 8080:80 nginx

# 查看运行中的容器
docker ps

# 进入容器
docker exec -it my-nginx /bin/bash

# 停止/删除容器
docker stop my-nginx
docker rm my-nginx

# 查看日志
docker logs -f my-nginx

四、编写 Dockerfile

FROM python:3.11-slim

WORKDIR /app

COPY requirements.txt .
RUN pip install -r requirements.txt

COPY . .

EXPOSE 8000

CMD ["python", "app.py"]

五、Docker Compose 示例

version: '3'
services:
  web:
    build: .
    ports:
      - "8000:8000"
    depends_on:
      - db
  db:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: mypassword

六、最佳实践

  • 镜像尽量小,用 alpine 或 slim 版本
  • 一个容器只做一件事
  • 不要存储数据在容器内,用 volume
  • 多阶段构建减少镜像体积
  • 打上有意义的 tag,别只用 latest

Docker 是云原生时代的基石。花一个下午学会它,后面会发现整个开发部署流程都顺了。