三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Docker 使用手册

Docker 使用手册

一、Docker 基础概念

术语说明
镜像(Image)只读的应用模板,包含运行应用所需的代码、依赖、配置
容器(Container)镜像的运行实例,每个容器相互隔离,拥有独立的文件系统和网络
Dockerfile定义镜像构建规则的文本文件,可自动化构建自定义镜像
仓库(Registry)存储镜像的服务,官方公共仓库为 Docker Hub,国内常用镜像源为加速仓库

二、Windows Docker Desktop 安装与配置

1. 安装前提

  • Windows 10 2004+ / Windows 11 专业版 / 企业版 / 教育版
  • 开启 WSL2(安装 Docker 时会自动提示配置)
  • 管理员权限运行 PowerShell

2. 镜像源配置(已配置完成,附验证方法)

# 验证镜像源是否生效 docker info | Select-String "Registry Mirrors" -A 10

配置文件路径:Docker Desktop → Settings → Docker Engine,JSON 配置如下:

{ "registry-mirrors": [ "https://docker.xuanyuan.me", "https://docker.1ms.run", "https://docker.m.daocloud.io", "https://docker.mirrors.ustc.edu.cn", "http://hub-mirror.c.163.com" ], "insecure-registries": [], "debug": false, "experimental": false }

配置完成后点击Apply & Restart重启 Docker。


三、核心命令速查(按使用场景分类)

1. 镜像管理命令

# 1. 拉取镜像(格式:docker pull 镜像名:标签) docker pull redis:latest # 拉取最新版 Redis docker pull nginx:1.25 # 拉取指定版本 Nginx # 2. 查看本地镜像列表 docker images # 3. 删除本地镜像(先删除依赖该镜像的容器) docker rmi redis:latest # 删除指定镜像 docker image prune -a # 删除所有未使用的镜像(谨慎使用) # 4. 构建自定义镜像(基于 Dockerfile) docker build -t my-app:v1 . # 构建镜像,标签为 my-app:v1

2. 容器管理命令

# 1. 启动容器(后台运行,端口映射示例) docker run -d --name redis -p 6379:6379 redis:latest # 参数说明: # -d:后台运行容器 # --name:指定容器名称(必须唯一) # -p 宿主机端口:容器端口:端口映射,外部通过宿主机端口访问容器服务 # 2. 查看容器状态 docker ps # 查看运行中的容器 docker ps -a # 查看所有容器(包括已停止的) # 3. 停止/重启/删除容器 docker stop redis # 停止指定容器 docker restart redis # 重启容器 docker rm redis # 删除已停止的容器 docker rm -f redis # 强制删除运行中的容器 # 4. 进入容器内部(调试用) docker exec -it redis bash # 进入 Redis 容器(Linux 镜像) docker exec -it redis redis-cli # 直接进入 Redis 客户端

3. 日志与调试命令

# 查看容器日志 docker logs redis # 查看所有日志 docker logs -f redis # 实时跟踪日志输出 # 查看容器资源占用 docker stats redis # 查看 CPU/内存/网络占用 # 查看容器详细信息 docker inspect redis

4. 数据持久化(关键,容器删除数据不丢失)

# 1. 挂载宿主机目录到容器(绑定挂载) docker run -d --name redis -p 6379:6379 -v D:\redis-data:/data redis:latest redis-server --appendonly yes # 说明:-v 宿主机路径:容器路径,宿主机路径需提前创建 # 2. 使用 Docker 数据卷(推荐,无需管理宿主机路径) docker volume create redis-data # 创建数据卷 docker run -d --name redis -p 6379:6379 -v redis-data:/data redis:latest redis-server --appendonly yes docker volume ls # 查看数据卷列表 docker volume rm redis-data # 删除数据卷(数据会被清除,谨慎使用)

5. 网络管理命令

# 查看 Docker 网络列表 docker network ls # 创建自定义网络(容器间通信更安全) docker network create my-network # 启动容器并加入自定义网络 docker run -d --name redis --network my-network redis:latest

四、实战:Redis 容器完整部署(含持久化)

1. 启动带持久化的 Redis 容器

docker run -d ` --name redis ` -p 6379:6379 ` -v redis-data:/data ` redis:latest ` redis-server --appendonly yes --requirepass "yourpassword"
  • --appendonly yes:开启 AOF 持久化,数据写入文件
  • --requirepass "yourpassword":设置 Redis 访问密码(建议生产环境使用)

2. 验证 Redis 连接

# 宿主机测试连接(需安装 Redis 客户端) redis-cli -h localhost -p 6379 ping # 无密码时返回 PONG redis-cli -h localhost -p 6379 -a yourpassword ping # 带密码连接

五、常见问题排查

1. 拉取镜像超时 / 失败

  • 检查镜像源配置是否生效(docker info查看 Registry Mirrors)
  • 切换镜像源顺序,优先使用https://docker.xuanyuan.me
  • 重启 Docker 服务(托盘图标 → Restart)

2. 容器端口无法访问

  • 检查端口是否被占用:netstat -ano | findstr 6379
  • 确认防火墙未拦截 Docker 端口
  • 检查容器是否正常运行:docker ps

3. 容器重启后数据丢失

  • 未配置数据持久化,需添加-v参数挂载宿主机目录或数据卷
  • 容器被删除重建,数据卷未被删除(docker volume ls查看)

六、进阶:Dockerfile 自定义镜像示例

1. 基础 Redis 自定义镜像(带配置文件)

创建Dockerfile文件:

FROM redis:latest COPY redis.conf /usr/local/etc/redis/redis.conf CMD ["redis-server", "/usr/local/etc/redis/redis.conf"]

构建并启动镜像:

docker build -t my-redis:v1 . docker run -d --name my-redis -p 6379:6379 my-redis:v1

七、常用命令清单(可直接复制使用)

# 查看 Docker 版本 docker --version # 启动/停止 Docker Desktop(PowerShell 管理员) Start-Process "C:\Program Files\Docker\Docker\Docker Desktop.exe" Stop-Process -Name "Docker Desktop" -Force # 一键清理所有未使用的镜像、容器、数据卷 docker system prune -a --volumes
← 返回列表