news 2026/5/1 11:29:54

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/5/1 5:04:27

【计算机毕业设计案例】基于迁移学习机器学习的睡意检测报警系统

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

作者头像 李华
网站建设 2026/5/1 5:04:01

主流的消息队列MQ比较,详解MQ的4类应用场景(上)

一、序言消息队列&#xff08;Message Queue&#xff0c;简称MQ&#xff09;已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能&#xff0c;成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件&#xff0…

作者头像 李华
网站建设 2026/5/1 11:15:15

1.15 指标异常波动分析实战:日活下跌50%?5步定位问题根源

1.15 指标异常波动分析实战:日活下跌50%?5步定位问题根源 引言 指标异常波动是数据分析中最常见也最重要的问题。当日活突然下跌50%,如何快速定位问题根源?本文将实战演示指标异常波动分析的5步法,帮你快速找到问题并制定解决方案。 一、指标异常波动分析五步法 1.1 完…

作者头像 李华
网站建设 2026/5/1 4:47:10

人工智能交叉学科创新选题:7个技术前沿领域的深度研究与展望

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

作者头像 李华
网站建设 2026/5/1 4:44:07

面向未来科技发展的AI选题:7大高影响力研究领域的系统分析

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

作者头像 李华
网站建设 2026/5/1 10:38:06

过ACE检测-过反作弊引擎(CE句柄提权驱动)

25.过保护实现过TP保护ACE保护NP保护BE保护EAC保护-内存读写检测&#xff08;私有句柄表和全局句柄表的句柄提权&#xff09;-Windows驱动 上方链接过内存读写检测驱动、环境搭建、代码一条龙服务&#xff0c;以上驱动只能过内存读写也就是可以让CE的内存搜索功能正常工作&…

作者头像 李华