news 2026/2/24 17:29:41

Windows Docker 命令行使用手册

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Windows Docker 命令行使用手册

目录

  1. 安装与配置

  2. 基础概念

  3. 镜像管理

  4. 容器操作

  5. 网络管理

  6. 数据卷与持久化存储

  7. Docker Compose

  8. 常用工作流

  9. 故障排查


安装与配置

1. 系统要求

  • Windows 10/11 64位(专业版/企业版/教育版)

  • 启用 Hyper-V 和 WSL 2(推荐)

  • 至少 4GB RAM

  • BIOS 中启用虚拟化

2. 安装步骤

# 1. 下载 Docker Desktop for Windows # 访问 https://www.docker.com/products/docker-desktop # 2. 安装后验证 docker --version docker-compose --version docker info

3. 配置镜像加速器(中国用户)

# 编辑 Docker 配置文件(如果不存在则创建) notepad "$env:USERPROFILE\.docker\daemon.json" # 添加以下内容: { "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.com" ] }

基础概念

Docker 三大核心组件

  • 镜像(Image):只读模板,包含运行环境

  • 容器(Container):镜像的运行实例

  • 仓库(Registry):存储镜像的服务器(默认 Docker Hub)

Windows 特殊注意事项

# Windows 与 Linux 容器模式切换 # 右键系统托盘 Docker 图标 → Switch to Windows Containers/Linux Containers # 路径格式差异 # Linux 路径:/app/data # Windows 路径:C:\app\data 或 /c/app/data(在 Docker 命令中)

镜像管理

常用命令

# 搜索镜像 docker search nginx # 拉取镜像 docker pull nginx:latest docker pull microsoft/dotnet:6.0 # 查看本地镜像 docker images docker image ls docker image ls --format "table {{.ID}}\t{{.Repository}}\t{{.Tag}}\t{{.Size}}" # 删除镜像 docker rmi nginx:latest docker image rm image_id docker image prune -a # 删除所有未使用的镜像 # 构建镜像 docker build -t myapp:1.0 . docker build -f Dockerfile.windows -t myapp:win . # 导出/导入镜像 docker save -o nginx.tar nginx:latest docker load -i nginx.tar # 查看镜像历史 docker history nginx:latest

标签操作

# 为镜像打标签 docker tag nginx:latest myregistry.com/nginx:v1 # 推送镜像到仓库 docker login myregistry.com docker push myregistry.com/nginx:v1

容器操作

基本操作

# 运行容器 docker run -d --name mynginx nginx docker run -it --rm ubuntu bash # 交互式运行,退出自动删除 # 查看容器 docker ps # 运行中的容器 docker ps -a # 所有容器 docker ps -q # 只显示容器ID # 启动/停止/重启容器 docker start mynginx docker stop mynginx docker restart mynginx docker pause mynginx docker unpause mynginx # 删除容器 docker rm mynginx docker container prune # 删除所有停止的容器 # 查看容器日志 docker logs mynginx docker logs -f mynginx # 实时查看 docker logs --tail 100 mynginx docker logs --since 1h mynginx

容器交互

# 进入容器(推荐 exec) docker exec -it mynginx bash docker exec -it mynginx powershell # Windows 容器 docker exec mynginx ls /app # 复制文件 docker cp mynginx:/etc/nginx/nginx.conf ./ docker cp ./config.json mynginx:/app/config.json # 查看容器信息 docker inspect mynginx docker inspect --format='{{.NetworkSettings.IPAddress}}' mynginx docker stats mynginx # 资源使用情况 docker top mynginx # 容器内进程

运行参数详解

# 常用参数组合示例 docker run -d \ --name webapp \ --hostname myapp \ -p 8080:80 \ -p 443:443 \ -v C:\data:/var/www/html \ -e APP_ENV=production \ --restart=unless-stopped \ --memory="512m" \ --cpus="1.5" \ nginx:alpine # 端口映射(Windows 防火墙需允许) -p 80:80 # 主机端口:容器端口 -p 127.0.0.1:8080:80 # 绑定到特定IP # 环境变量 -e KEY=VALUE --env-file .env # 资源限制 --memory="256m" --memory-swap="512m" --cpus="0.5" --cpu-shares=512

网络管理

# 查看网络 docker network ls docker network inspect bridge # 创建网络 docker network create mynetwork docker network create --driver=bridge --subnet=172.20.0.0/16 mynet # 容器连接到网络 docker run -d --name app1 --network=mynetwork nginx docker network connect mynetwork existing_container docker network disconnect mynetwork container_name # 删除网络 docker network rm mynetwork docker network prune # 删除未使用的网络

网络模式

# 不同网络模式 --network=bridge # 默认桥接 --network=host # 主机网络(Linux 容器) --network=none # 无网络 --network=container:nginx # 共享其他容器的网络

数据卷与持久化存储

# 创建数据卷 docker volume create mysqldata docker volume ls # 使用数据卷 docker run -v mysqldata:/var/lib/mysql mysql # 绑定挂载(Windows 路径) docker run -v C:\docker\data:/app/data nginx docker run -v /c/docker/data:/app/data nginx # WSL2 格式 # 查看卷信息 docker volume inspect mysqldata # 删除数据卷 docker volume rm mysqldata docker volume prune # 删除未使用的卷 # 挂载临时文件系统 docker run --tmpfs /tmp:rw,size=64m nginx

Docker Compose

基本使用

# 安装(Docker Desktop 已包含) docker-compose --version # 常用命令 docker-compose up -d # 启动服务 docker-compose down # 停止并删除 docker-compose ps # 查看状态 docker-compose logs -f # 查看日志 docker-compose exec app bash # 进入容器 docker-compose restart # 重启服务 docker-compose build # 重新构建

docker-compose.yml 示例

version: '3.8' services: web: image: nginx:alpine ports: - "8080:80" volumes: - ./html:/usr/share/nginx/html networks: - appnet depends_on: - db db: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: example MYSQL_DATABASE: myapp volumes: - mysql_data:/var/lib/mysql networks: - appnet volumes: mysql_data: networks: appnet: driver: bridge

常用工作流

1. 开发环境搭建

# 运行开发数据库 docker run -d ` --name dev-db ` -p 3306:3306 ` -e MYSQL_ROOT_PASSWORD=devpass ` -v mysql_dev_data:/var/lib/mysql ` mysql:8.0 # 运行 Redis 缓存 docker run -d ` --name redis ` -p 6379:6379 ` redis:alpine # 运行本地注册表 docker run -d ` --name registry ` -p 5000:5000 ` -v registry_data:/var/lib/registry ` registry:2

2. 应用部署

# 1. 构建应用镜像 docker build -t myapp:1.0 . # 2. 运行应用 docker run -d ` --name myapp ` -p 80:80 ` --restart unless-stopped ` myapp:1.0 # 3. 更新应用(蓝绿部署) docker build -t myapp:2.0 . docker run -d --name myapp-v2 -p 8080:80 myapp:2.0 # 测试 v2 版本 docker stop myapp && docker rm myapp docker rename myapp-v2 myapp

3. 数据备份与恢复

# 备份 MySQL 数据 docker exec mysql sh -c 'mysqldump -uroot -p$MYSQL_ROOT_PASSWORD --all-databases' > backup.sql # 备份容器数据卷 docker run --rm ` -v mysql_data:/volume ` -v C:\backups:/backup ` alpine tar cvf /backup/mysql_data.tar /volume # 恢复数据 docker exec -i mysql sh -c 'mysql -uroot -p$MYSQL_ROOT_PASSWORD' < backup.sql

4. 多阶段构建示例

# Dockerfile FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build WORKDIR /src COPY . . RUN dotnet publish -c Release -o /app FROM mcr.microsoft.com/dotnet/aspnet:6.0 WORKDIR /app COPY --from=build /app . ENTRYPOINT ["dotnet", "MyApp.dll"]
docker build -t myapp:prod .

故障排查

常见问题解决

# 1. Docker 服务未启动 # 检查服务状态 Get-Service docker* # 重启服务 Restart-Service docker # 2. 端口冲突 netstat -ano | findstr :8080 # 停止占用进程或修改映射端口 # 3. 磁盘空间不足 docker system df # 查看磁盘使用 docker system prune -a # 清理所有未使用的对象 # 4. 容器启动失败 docker logs container_id # 查看日志 docker inspect container_id # 检查配置 # 5. 镜像拉取失败 # 检查网络连接 # 更换镜像源 # 登录 Docker Hub # 6. Windows 路径问题 # 使用绝对路径:C:\data 或 /c/data # 确保目录存在且权限正确

调试命令

# 检查容器健康状态 docker events # 查看实时事件 # 容器内调试 docker exec -it container_name ping db docker exec -it container_name curl http://localhost # 资源监控 docker stats docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}" # 查看底层信息 docker info docker version

日志收集

# 导出所有日志 Get-EventLog -LogName Application -Source Docker | Select-Object TimeGenerated, EntryType, Message | Export-Csv -Path docker_logs.csv # 过滤错误日志 docker logs container_id 2>&1 | Select-String -Pattern "error|fail" -CaseSensitive

附录:常用命令速查表

# 系统管理 docker version docker info docker system df docker system prune # 镜像管理 docker images docker pull docker build docker push docker rmi # 容器管理 docker run docker ps docker start/stop/restart docker exec docker logs docker rm # 网络管理 docker network ls docker network create docker network connect # 数据管理 docker volume create docker volume ls # Compose docker-compose up docker-compose down docker-compose logs # 批量操作 docker stop $(docker ps -q) docker rm $(docker ps -aq) docker rmi $(docker images -q)

注意事项

  1. 权限问题:Windows 下 Docker 需要管理员权限运行某些操作

  2. 路径差异:Windows 与 Linux 路径格式不同,注意转换

  3. 防火墙:确保 Windows 防火墙允许 Docker 相关端口

  4. 数据持久化:重要数据务必使用卷或绑定挂载

  5. 资源限制:适当限制容器资源使用,避免影响宿主机

  6. 安全更新:定期更新 Docker 和镜像版本

  7. 生产环境:Windows Docker 主要用于开发测试,生产建议使用 Linux


本手册涵盖 Windows Docker 命令行常用操作,建议结合官方文档使用:

  • Docker Windows 文档

  • Docker 命令行参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/24 13:09:05

1.17 指标与维度深度解析:构建数据指标体系的核心要素

1.17 指标与维度深度解析:构建数据指标体系的核心要素 引言 指标和维度是数据指标体系的两个核心要素。理解指标与维度的关系,是构建有效数据指标体系的基础。本文将深入解析指标与维度的概念、关系和应用,帮你构建科学的数据指标体系。 一、指标与维度的基本概念 1.1 概…

作者头像 李华
网站建设 2026/2/24 3:06:34

从自然语言处理到计算机视觉:7个AI核心技术的论文选题指南

毕业论文选题排名&#xff1a;7大AI热门方向推荐 工具对比速览 工具名称 核心优势 适用场景 生成速度 特色功能 Aibiye 学术数据库精准匹配 开题报告/文献综述 即时生成 无限改稿/论文仿写 Aicheck 全学科覆盖 初稿快速生成 20-30分钟 自动插入图表/公式 秒篇 …

作者头像 李华
网站建设 2026/2/18 9:51:53

WPF之配方模块

WPF之配方模块 一 UI设计<!--配方界面--><TabItem Header"配方"><Grid ><Grid.ColumnDefinitions><ColumnDefinition Width"2*"/><ColumnDefinition Width"6*"/><ColumnDefinition Width"2*"/…

作者头像 李华
网站建设 2026/2/20 20:16:29

计算机深度学习毕设实战-使用 CNN 进行森林火灾检测人工智能

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/2/24 4:29:10

深度学习毕设选题推荐:深度学习使用 CNN 进行森林火灾检测机器学习

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华