200字
📚 Docker 命令完整学习指南
2025-12-01
2025-12-01

一、🖼️ 镜像管理命令

1. 查看镜像

docker images
# 或
docker image ls

常用参数:

  • -a : 显示所有镜像(包括中间层)

  • -q : 只显示镜像 ID

  • --digests : 显示摘要信息

2. 搜索镜像

docker search <关键词>

示例:

docker search nginx
docker search --filter stars=100 nginx  # 筛选星标>100的

3. 拉取镜像

docker pull <镜像名>[:标签]

示例:

docker pull nginx                # 默认latest版本
docker pull nginx:1.25.3         # 指定版本
docker pull mysql:8.0

4. 删除镜像

docker rmi <镜像ID或名称>

批量删除:

docker rmi $(docker images -q)           # 删除所有镜像
docker rmi $(docker images -f "dangling=true" -q)  # 删除悬空镜像

5. 构建镜像

docker build -t <镜像名>[:标签] <Dockerfile路径>

示例:

docker build -t myapp:1.0 .
docker build -t myapp:latest --no-cache .  # 不使用缓存

6. 标记镜像

docker tag <源镜像> <新镜像名>[:标签]

示例:

docker tag nginx:latest myregistry.com/nginx:v1

7. 保存与加载镜像

# 保存镜像到文件
docker save -o nginx.tar nginx:latest

# 从文件加载镜像
docker load -i nginx.tar

二、📦 容器管理命令

1. 查看容器

docker ps              # 查看运行中的容器
docker ps -a           # 查看所有容器(包括停止的)
docker ps -l           # 查看最新创建的容器
docker ps -n 5         # 查看最近创建的5个容器

2. 创建并运行容器 ⭐ 重点!

docker run [选项] <镜像> [命令]

常用参数详解:

# 基础运行
docker run nginx

# 后台运行
docker run -d nginx

# 端口映射
docker run -d -p 8080:80 nginx
# 主机8080端口 → 容器80端口

# 命名容器
docker run -d --name my-nginx nginx

# 环境变量
docker run -d -e MYSQL_ROOT_PASSWORD=123456 mysql

# 数据卷挂载
docker run -d -v /host/path:/container/path nginx

# 网络模式
docker run -d --network bridge nginx

# 资源限制
docker run -d --memory="512m" --cpus="1.5" nginx

# 重启策略
docker run -d --restart=always nginx

完整示例:

docker run -d \
  --name my-web \
  -p 8080:80 \
  -v /data/html:/usr/share/nginx/html \
  -e ENV=production \
  --restart=unless-stopped \
  nginx:latest

3. 启动/停止/重启容器

docker start <容器ID或名称>
docker stop <容器ID或名称>
docker restart <容器ID或名称>

# 强制停止
docker kill <容器ID或名称>

批量操作:

docker start $(docker ps -aq)    # 启动所有容器
docker stop $(docker ps -q)      # 停止所有运行中的容器

4. 删除容器

docker rm <容器ID或名称>
docker rm -f <容器ID>            # 强制删除运行中的容器

# 删除所有停止的容器
docker container prune

# 删除所有容器
docker rm -f $(docker ps -aq)

5. 进入容器 ⭐ 重点!

# 方式1:exec(推荐)
docker exec -it <容器ID> bash
docker exec -it <容器ID> sh      # 如果没有bash

# 方式2:attach(不推荐,退出会停止容器)
docker attach <容器ID>

exec 实用命令:

# 执行单条命令
docker exec my-nginx ls /etc

# 以root用户进入
docker exec -it -u root my-nginx bash

# 在容器内安装工具
docker exec -it my-nginx apt-get update
docker exec -it my-nginx apt-get install -y vim

6. 容器与主机间复制文件

# 从容器复制到主机
docker cp <容器ID>:/path/in/container /host/path

# 从主机复制到容器
docker cp /host/path <容器ID>:/path/in/container

示例:

docker cp my-nginx:/etc/nginx/nginx.conf ./nginx.conf
docker cp ./index.html my-nginx:/usr/share/nginx/html/

三、📊 监控与调试命令

1. 查看日志

docker logs <容器ID>
docker logs -f <容器ID>          # 实时跟踪日志
docker logs --tail 100 <容器ID>  # 查看最后100行
docker logs --since 10m <容器ID> # 查看最近10分钟日志

2. 查看容器详情

docker inspect <容器ID>
docker inspect --format='{{.State.Running}}' <容器ID>  # 格式化输出

3. 查看资源使用情况

docker stats                     # 实时监控所有容器
docker stats <容器ID>            # 监控指定容器
docker stats --no-stream         # 只显示当前快照

4. 查看容器进程

docker top <容器ID>

5. 查看端口映射

docker port <容器ID>

6. 查看容器文件系统变化

docker diff <容器ID>

四、🌐 网络管理命令

# 查看网络列表
docker network ls

# 创建网络
docker network create my-network

# 查看网络详情
docker network inspect bridge

# 连接容器到网络
docker network connect my-network my-container

# 断开网络连接
docker network disconnect my-network my-container

# 删除网络
docker network rm my-network

# 清理未使用的网络
docker network prune

五、💾 数据卷管理命令

# 查看数据卷列表
docker volume ls

# 创建数据卷
docker volume create my-volume

# 查看数据卷详情
docker volume inspect my-volume

# 删除数据卷
docker volume rm my-volume

# 清理未使用的数据卷
docker volume prune

使用数据卷:

docker run -d -v my-volume:/data nginx

六、🧹 系统清理命令

# 查看Docker磁盘使用情况
docker system df

# 清理所有未使用的资源(容器、网络、镜像、构建缓存)
docker system prune

# 包括未使用的镜像
docker system prune -a

# 包括数据卷
docker system prune -a --volumes

七、🔍 实用组合技巧

1. 快速清理停止的容器

docker container prune -f

2. 查看容器IP地址

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <容器ID>

3. 批量停止并删除容器

docker stop $(docker ps -q) && docker rm $(docker ps -aq)

4. 导出/导入容器

# 导出容器为tar文件
docker export <容器ID> > container.tar

# 导入为镜像
cat container.tar | docker import - myimage:latest

5. 查看容器启动命令

docker inspect -f '{{.Config.Cmd}}' <容器ID>

评论