Docker Docker Compose 完整入门与实用技巧
1️⃣ Docker 常用命令
镜像操作
命令 | 作用 | 说明 |
---|---|---|
docker images | 列出本地镜像 | 包含镜像 ID、标签、大小 |
docker pull <镜像> | 拉取镜像 | 从 Docker Hub 或自建仓库拉取 |
docker build -t <镜像名:tag> . | 构建镜像 | 当前目录 Dockerfile 构建 |
docker rmi <镜像ID/镜像名> | 删除镜像 | 必须先删除依赖该镜像的容器 |
docker tag <源镜像> <目标镜像> | 镜像打标签 | 方便推送或管理 |
docker push <镜像> | 推送镜像 | 推送到远程仓库 |
容器操作
命令 | 作用 | 说明 |
---|---|---|
docker ps | 查看运行中容器 | 只显示运行中 |
docker ps -a | 查看所有容器 | 包括停止的 |
docker run -d --name <容器名> <镜像> | 运行容器 | -d 后台运行 |
docker stop <容器名> | 停止容器 | 安全停止 |
docker start <容器名> | 启动已存在容器 | 不删除容器 |
docker restart <容器名> | 重启容器 | 停止 + 启动 |
docker rm <容器名> | 删除容器 | 必须先 stop |
docker exec -it <容器名> bash | 进入容器 | 调试或管理容器 |
卷(Volume)管理
命令 | 作用 | 说明 |
---|---|---|
docker volume ls | 列出卷 | 查看本地数据卷 |
docker volume create <卷名> | 创建卷 | 用于数据持久化 |
docker volume rm <卷名> | 删除卷 | 删除前请确保卷不被容器使用 |
docker volume inspect <卷名> | 查看卷信息 | 包括挂载路径 |
网络管理
命令 | 作用 | 说明 |
---|---|---|
docker network ls | 列出网络 | 包括 bridge、host、custom |
docker network create <网络名> | 创建自定义网络 | 容器可加入自定义网络通信 |
docker network inspect <网络名> | 查看网络 | 显示容器连接信息 |
docker network rm <网络名> | 删除网络 | 必须先断开容器连接 |
清理与监控
命令 | 作用 | 说明 |
---|---|---|
docker logs -f <容器> | 查看日志 | -f 实时跟随 |
docker stats | 容器资源监控 | CPU、内存、网络 |
docker system prune -f | 清理未使用资源 | 删除无用容器、镜像、网络 |
docker container prune | 删除停止的容器 | 释放空间 |
docker volume prune | 删除无用卷 | 注意数据丢失 |
使用小技巧
后台启动 + 日志跟随
docker run -d --name myapp -p 8080:8080 myimage docker logs -f myapp docker exec -it myapp bash
升级部署
docker pull myimage:latest docker stop myapp docker rm myapp docker run -d --name myapp -p 8080:8080 myimage:latest
容器与卷数据持久化
docker system prune -f docker volume prune -f docker images
容器与卷数据持久化
使用
-v <本地路径>:<容器路径>
或-v <卷名>:<容器路径>
容器删除不影响卷数据
2️⃣ Docker Compose 常用命令
Docker Compose 用于定义和管理多容器应用,通过 docker-compose.yml
配置文件实现服务编排。
基本命令
命令 | 作用 | 常用选项 |
---|---|---|
docker-compose up | 启动服务 | -d :后台运行,--build :启动前 build 镜像 |
docker-compose down | 停止并删除容器 | --volumes :删除卷,--rmi all :删除镜像 |
docker-compose restart | 重启服务 | 指定服务名可重启部分服务 |
docker-compose stop | 停止服务 | 不删除容器 |
docker-compose start | 启动已存在容器 | 不重新创建 |
docker-compose logs | 查看日志 | -f 实时跟随 |
docker-compose ps | 查看容器状态 | 列出当前项目下的容器 |
docker-compose exec | 进入容器执行命令 | 服务名 bash |
docker-compose run | 临时执行任务 | --rm 执行完删除容器 |
docker-compose build | 构建镜像 | --no-cache 不使用缓存 |
启动流程(文字版)
假设 docker-compose.yml
定义了三个服务:db
、backend
、frontend
docker-compose down
docker-compose up -d
使用小技巧
后台启动 + 日志
docker-compose up -d docker-compose logs -f
只重启某个服务
docker-compose restart backend
彻底清理并重启
docker-compose down --volumes docker-compose up -d --build
进入容器调试
docker-compose exec backend bash
临时执行任务
docker-compose run --rm backend python manage.py migrate
总结思路
🔑 比喻理解:
Docker = 工厂管理员
镜像 = 模板
容器 = 工厂实例
卷 = 数据仓库
网络 = 工厂间通道
Compose = 调度员,按依赖顺序管理工厂启动
开发调试 →
up -d
+logs -f
+exec
升级部署 →
down --volumes
+up -d --build
临时任务 →
run --rm
快速重启 →
restart