在Windows系统下进行开发时,借助WSL2(Windows Subsystem for Linux 2)来使用Docker,能带来接近原生Linux环境的体验,极大提升开发效率。本教程将一步步指导你在WSL2中安装和使用Docker。

一、安装Docker

方法一:通过Docker Desktop安装(推荐)

  1. 下载Docker Desktop:访问Docker官方网站的Docker Desktop下载页面 ,下载适用于Windows的Docker Desktop安装程序(Docker Desktop Installer.exe)。
  2. 安装Docker Desktop:双击下载的安装程序,按照安装向导的提示进行安装。在安装过程中,确保勾选“使用基于WSL 2的引擎”选项。安装完成后,启动Docker Desktop。
  3. 配置WSL集成:打开Docker Desktop,点击右上角的设置图标(齿轮形状)。在左侧菜单中选择“资源”>“WSL集成”,确保已安装的WSL2发行版被勾选,这样Docker就可以在对应的WSL环境中运行。
  4. 验证安装:打开你安装的WSL2发行版终端(如Ubuntu终端),执行以下命令查看Docker版本,验证Docker是否安装成功:

    docker --version

    如果安装成功,终端会显示Docker的版本信息。你还可以运行一个简单的Docker容器来进一步验证,执行以下命令:

    docker run hello-world

    如果一切正常,你会看到Docker的欢迎信息,这表明Docker已经在WSL2中正常工作。

方法二:在WSL2发行版中手动安装Docker

  1. 更新系统软件包:打开WSL2发行版终端,执行以下命令更新系统软件包列表:

    sudo apt update
  2. 安装依赖包:安装Docker所需的依赖包,执行以下命令:

    sudo apt -y install apt-transport-https ca-certificates curl gnupg lsb-release
  3. 添加Docker官方GPG密钥:执行以下命令添加Docker官方的GPG密钥,以确保软件包来源的安全性:

    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  4. 添加Docker软件源:不同的Linux发行版,添加软件源的方式略有不同。以Ubuntu为例,执行以下命令添加Docker软件源:

    echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  5. 更新软件包列表并安装Docker:再次更新软件包列表,然后安装Docker引擎、Docker命令行工具和containerd.io,执行以下命令:

    sudo apt update
    sudo apt -y install docker-ce docker-ce-cli containerd.io
  6. 将当前用户添加到docker用户组(可选但推荐):默认情况下,只有root用户可以运行Docker命令。为了避免每次运行Docker命令都需要使用sudo,可以将当前用户添加到docker用户组。执行以下命令,将“你的用户名”替换为你在WSL2中设置的用户名:

    sudo usermod -aG docker 你的用户名

    添加完成后,需要重新登录或执行以下命令使更改生效:

    newgrp docker
  7. 验证安装:执行以下命令查看Docker版本,验证Docker是否安装成功:

    docker --version

    同样,你可以运行docker run hello-world命令来验证Docker是否能正常运行容器。

二、使用Docker

拉取镜像

使用docker pull命令从Docker Hub或其他镜像仓库拉取镜像。例如,拉取官方的Ubuntu镜像,执行以下命令:

docker pull ubuntu

运行容器

  1. 以交互模式运行容器:使用docker run -it命令可以以交互模式运行容器,进入容器内部的命令行环境。例如,运行刚刚拉取的Ubuntu镜像,并进入其命令行:

    docker run -it ubuntu bash

    在容器内部,你可以执行各种命令,就像在一个真实的Ubuntu系统中一样。当你完成操作后,输入“exit”命令退出容器。

  2. 以守护进程模式运行容器:使用docker run -d命令可以让容器在后台以守护进程模式运行。例如,运行一个Nginx容器,并将容器的80端口映射到主机的8080端口,执行以下命令:

    docker run -d -p 8080:80 nginx

    此时,Nginx容器在后台运行,你可以通过浏览器访问http://localhost:8080来查看Nginx的默认页面。

管理容器

  1. 列出容器:使用docker ps命令可以列出正在运行的容器。如果要列出所有容器(包括已停止的容器),可以使用docker ps -a命令。
  2. 停止容器:使用docker stop命令停止正在运行的容器。例如,停止上面运行的Nginx容器,首先通过docker ps命令查看容器的ID或名称,假设容器名称为“nginx”,则执行以下命令停止容器:

    docker stop nginx
  3. 启动容器:使用docker start命令启动已停止的容器。例如,启动刚刚停止的Nginx容器,执行以下命令:

    docker start nginx
  4. 删除容器:使用docker rm命令删除容器。注意,只有停止状态的容器才能被删除。例如,删除上面的Nginx容器,执行以下命令:

    docker rm nginx

    构建镜像

    如果你有自己的应用程序,并且想要将其打包成Docker镜像,可以通过编写Dockerfile来实现。假设你有一个简单的Node.js应用,其目录结构如下:

    my - node - app/
    │
    ├── app.js
    ├── package.json
    └── Dockerfile

    在Dockerfile中,你可以定义如何构建镜像,例如:

    # 使用官方的Node.js运行时镜像作为基础镜像
    FROM node:14
    
    # 设置工作目录
    WORKDIR /app
    
    # 将package.json和package - lock.json复制到工作目录
    COPY package*.json ./
    
    # 安装应用程序的依赖
    RUN npm install
    
    # 将应用程序的所有文件复制到工作目录
    COPY. .
    
    # 暴露应用程序的端口
    EXPOSE 3000
    
    # 定义容器启动时要执行的命令
    CMD ["node", "app.js"]

    然后,在包含Dockerfile的目录下,执行以下命令构建镜像,将“镜像名称”替换为你想要的镜像名称,如“my - node - app:v1”:

    docker build -t 镜像名称.

    推送镜像

    如果你想将自己构建的镜像推送到Docker Hub或其他镜像仓库,首先需要在对应的镜像仓库注册账号。然后,使用docker login命令登录到镜像仓库。例如,登录到Docker Hub:

    docker login

    按照提示输入用户名和密码。登录成功后,使用docker push命令推送镜像。假设你的镜像名称为“my - node - app:v1”,并且你在Docker Hub上的用户名是“你的用户名”,则执行以下命令推送镜像:

    docker push 你的用户名/my - node - app:v1

    注意: 要打开docker desktop,确定设置中已经启用了wsl2集成的docker
    2025-05-09T19:32:20.png

标签: none

上一篇: 优化wsl2上Debian体验
下一篇: 1panel面板

添加新评论