WSL 与 Docker 简介

Windows Subsystem for Linux (WSL) 允许在 Windows 上运行 Linux 环境,无需双系统或虚拟机。Docker 是一个开源平台,用于自动化应用程序的部署、扩展和管理。结合 WSL 和 Docker 可以在 Windows 上高效运行容器化应用。

安装 WSL

打开 PowerShell 作为管理员,运行以下命令启用 WSL 功能:

wsl --install

重启计算机完成安装。默认安装 Ubuntu 发行版,可通过以下命令列出可用发行版并安装其他版本:

wsl --list --online
wsl --install -d <发行版名称>

安装 Docker Desktop

下载并安装 Docker Desktop for Windows,安装时勾选“Use WSL 2 based engine”选项。安装完成后启动 Docker Desktop,确保任务栏图标显示 Docker 已运行。

配置 WSL 与 Docker 集成

打开 Docker Desktop 设置,导航到“Resources” > “WSL Integration”,启用希望与 Docker 集成的 WSL 发行版。确保 WSL 2 为默认版本:

wsl --set-default-version 2

验证安装

在 PowerShell 或 WSL 终端中运行以下命令,验证 Docker 是否正确安装:

docker --version
docker run hello-world

若看到欢迎消息,说明安装成功。

部署简单应用

创建一个简单的 Python Flask 应用。在 WSL 中新建目录并创建 app.py 文件:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello from Docker in WSL!"

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

创建 Dockerfile

FROM python:3.8-slim
WORKDIR /app
COPY . .
RUN pip install flask
EXPOSE 5000
CMD ["python", "app.py"]

构建并运行容器:

docker build -t flask-app .
docker run -p 5000:5000 flask-app

访问 http://localhost:5000 即可看到应用输出。

常见问题解决

若遇到网络问题,检查 WSL 和 Docker 的网络配置。确保防火墙允许 Docker 通过。若性能不佳,确认 WSL 2 已启用并分配足够资源。

资源清理

停止并删除容器:

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

删除镜像:

docker rmi flask-app

更多推荐