在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面板

添加新评论

已有 3 条评论

  1. 新车即将上线 真正的项目,期待你的参与coinsrore.com

  2. 2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
    新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
    新车首发,新的一年,只带想赚米的人coinsrore.com
    新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
    做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
    新车上路,只带前10个人coinsrore.com
    新盘首开 新盘首开 征召客户!!!coinsrore.com
    新项目准备上线,寻找志同道合的合作伙伴coinsrore.com
    新车即将上线 真正的项目,期待你的参与coinsrore.com
    新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
    新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com

  3. 2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
    新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
    新车首发,新的一年,只带想赚米的人coinsrore.com
    新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
    做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
    新车上路,只带前10个人coinsrore.com
    新盘首开 新盘首开 征召客户!!!coinsrore.com
    新项目准备上线,寻找志同道合的合作伙伴coinsrore.com
    新车即将上线 真正的项目,期待你的参与coinsrore.com
    新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
    新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com