WSL2 Docker 数据持久化

☸️ WSL2 Docker 数据持久化:docker-desktop-data 缺失导致容器丢失的诊断与修复 📌 一、问题场景 在日常开发中,使用 Docker Desktop + WSL2 后端是一个常见组合。然而部分开发者在执行 wsl --shutdown 后,重新打开终端时发现一个严重问题: 之前创建的所有容器、镜像、数据卷全部消失 。 以下是一个典型的问题复现过程: # 1. 正常使用 Docker,创建测试容器 $ docker run -d --name my-app -p 8080:80 nginx Unable to find image 'nginx:latest' locally latest: Pulling from library/nginx ... cc3c2e0be814: Pull complete Status: Downloaded newer image for nginx:latest a1b2c3d4e5f6... # 容器启动成功 # 2. 确认容器正在运行 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a1b2c3d4e5f6 nginx "/docker-entrypoint.…" 5 seconds ago Up 5 seconds 0.0.0.0:8080->80/tcp my-app # 3. 手动执行 WSL 关闭(或系统重启触发) $ wsl --shutdown # 4. 重新打开终端,检查容器 $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES # 输出为空 —— 所有容器消失! 这个场景的核心问题在于:Docker Desktop 在 WSL2 中的持久化数据没有被正确保存,导致 wsl --shutdown 后所有状态丢失。本文将深入分析根因并提供完整的修复方案。 ...

十月 10, 2022 · 7 分钟 · 1291 字 · yaomingye

从 Docker Compose 到 Kind

☸️ 从 Docker Compose 到 Kind:在 WSL 上用 Kind 入门 Kubernetes 全指南 📌 一、问题切入:你已经会用 Docker Compose,然后呢 假设你在 WSL(Windows Subsystem for Linux,Windows 内置的 Linux 子系统)上维护着一个项目, docker-compose.yml 里定义了 nginx、应用服务、Redis、MySQL 四个容器: version: "3.8" services: nginx: image: nginx:1.25 ports: ["80:80"] volumes: ["./nginx.conf:/etc/nginx/nginx.conf:ro"] app: build: ./app ports: ["5000:5000"] environment: REDIS_HOST: redis MYSQL_HOST: mysql depends_on: [redis, mysql] redis: image: redis:7-alpine mysql: image: mysql:8 environment: MYSQL_ROOT_PASSWORD: secret docker compose up -d 一键启动。但当你需要面对以下需求时,Compose 开始显得吃力: ...

十月 4, 2022 · 18 分钟 · 3803 字 · yaomingye
Cat Radio