代码改变世界

Docker & Docker Compose 完整入门与实用技巧 - 教程

2025-09-26 13:10  tlnshuju  阅读(22)  评论(0)    收藏  举报

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删除无用卷注意数据丢失

使用小技巧

  1. 后台启动 + 日志跟随

    docker run -d --name myapp -p 8080:8080 myimage
    docker logs -f myapp
    docker exec -it myapp bash

  2. 升级部署

    docker pull myimage:latest
    docker stop myapp
    docker rm myapp
    docker run -d --name myapp -p 8080:8080 myimage:latest

  3. 容器与卷数据持久化

    docker system prune -f
    docker volume prune -f
    docker images

  4. 容器与卷数据持久化

  • 使用 -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 定义了三个服务:dbbackendfrontend

  1. docker-compose down

  2. docker-compose up -d

使用小技巧

  1. 后台启动 + 日志

    docker-compose up -d
    docker-compose logs -f

  2. 只重启某个服务

    docker-compose restart backend

  3. 彻底清理并重启

    docker-compose down --volumes
    docker-compose up -d --build

  4. 进入容器调试

    docker-compose exec backend bash

  5. 临时执行任务

    docker-compose run --rm backend python manage.py migrate

总结思路

比喻理解:

  • Docker = 工厂管理员

  • 镜像 = 模板

  • 容器 = 工厂实例

  • 卷 = 数据仓库

  • 网络 = 工厂间通道

  • Compose = 调度员,按依赖顺序管理工厂启动

  1. 开发调试up -d + logs -f + exec

  2. 升级部署down --volumes + up -d --build

  3. 临时任务run --rm

  4. 快速重启restart