news 2026/5/22 8:10:14

WSL Ubuntu 安装 Docker 操作指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
WSL Ubuntu 安装 Docker 操作指南

环境信息

  • 操作系统:Windows 10/11
  • WSL版本:WSL 1 或 WSL 2
  • Linux发行版:Ubuntu 24.04 LTS
  • Docker版本:29.1.4

前提条件

  • 已安装WSL
  • 已安装Ubuntu 24.04发行版
  • 具有sudo权限的用户账户

安装步骤

1. 检查WSL环境状态

首先检查WSL的运行状态和Ubuntu版本:

# 检查WSL版本 wsl -l -v # 进入Ubuntu系统 wsl -d Ubuntu-24.04 # 检查系统信息 lsb_release -a uname -a

2. 更新系统包管理器

更新apt包索引并安装必要的依赖:

# 更新包索引 sudo apt-get update # 安装必要的依赖包 sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release

3. 配置Docker镜像源

创建Docker仓库配置文件:

# 创建Docker仓库文件 sudo sh -c 'echo deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu noble stable > /etc/apt/sources.list.d/docker.list' # 下载并添加Docker的GPG密钥 sudo sh -c 'curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg' # 更新包索引 sudo apt-get update

4. 安装Docker引擎

安装Docker CE、Docker CLI和containerd.io:

# 安装Docker相关包 sudo apt-get install -y docker-ce docker-ce-cli containerd.io

5. 配置iptables为legacy模式(WSL 1环境)

由于WSL 1环境不完全支持nftables,需要将iptables配置为legacy模式:

# 设置iptables为legacy模式 sudo update-alternatives --set iptables /usr/sbin/iptables-legacy sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy

6. 配置Docker镜像加速器

创建Docker配置文件,使用国内镜像加速器:

# 创建Docker配置目录 sudo mkdir -p /etc/docker # 创建daemon.json配置文件 sudo tee /etc/docker/daemon.json <<EOF { "registry-mirrors": [ "https://docker.1panel.live", "https://fw97fchg.mirror.aliyuncs.com", "https://mirror.ccs.tencentyun.com", "https://docker.m.daocloud.io" ] } EOF

7. 启动Docker服务

启动Docker服务并验证:

# 启动Docker服务 sudo service docker start # 检查Docker服务状态 sudo service docker status

8. 配置Docker服务随系统启动

将Docker服务添加到启动脚本中:

# 将Docker启动命令添加到.bashrc echo 'echo 160523 | sudo -S service docker start' >> ~/.bashrc

9. 配置用户权限

将当前用户添加到docker组,避免每次使用sudo:

# 将用户添加到docker组 sudo usermod -aG docker $USER

注意:组权限更改需要重新登录才能生效。

10. 验证Docker安装

验证Docker是否正确安装:

# 检查Docker版本 docker --version # 检查Docker Compose版本 docker compose version # 检查Docker信息 docker info # 检查Docker服务状态 sudo service docker status

11. 测试Docker功能

拉取并运行测试镜像:

# 拉取Python镜像 sudo docker pull python:3.9-slim # 运行测试容器 sudo docker run --rm python:3.9-slim python --version # 拉取hello-world镜像 sudo docker pull hello-world # 运行hello-world容器 sudo docker run hello-world

常用Docker命令

服务管理

# 启动Docker服务 sudo service docker start # 停止Docker服务 sudo service docker stop # 重启Docker服务 sudo service docker restart # 查看Docker服务状态 sudo service docker status

镜像管理

# 拉取镜像 docker pull <镜像名>:<标签> # 查看本地镜像 docker images # 删除镜像 docker rmi <镜像ID> # 搜索镜像 docker search <关键词>

容器管理

# 运行容器 docker run [选项] <镜像名> # 查看运行中的容器 docker ps # 查看所有容器(包括停止的) docker ps -a # 停止容器 docker stop <容器ID> # 删除容器 docker rm <容器ID> # 查看容器日志 docker logs <容器ID>

Docker Compose命令

# 启动服务 docker compose up # 后台启动服务 docker compose up -d # 停止服务 docker compose down # 查看服务状态 docker compose ps # 查看服务日志 docker compose logs

配置文件说明

Docker配置文件

位置:/etc/docker/daemon.json

常用配置选项:

{ "registry-mirrors": [ "https://docker.m.daocloud.io", "https://dockerhub.azk8s.cn" ], "data-root": "/var/lib/docker", "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } }

常见问题及解决方案

1. Docker服务无法启动

问题:启动Docker服务时出现错误

解决方案

# 检查iptables配置 sudo update-alternatives --config iptables # 确保使用legacy模式 sudo update-alternatives --set iptables /usr/sbin/iptables-legacy

2. 权限被拒绝

问题:运行Docker命令时提示权限不足

解决方案

# 将用户添加到docker组 sudo usermod -aG docker $USER # 重新登录WSL exit wsl -d Ubuntu-24.04

3. 镜像拉取失败

问题:无法拉取Docker镜像

解决方案

# 检查网络连接 ping www.baidu.com # 检查镜像加速器配置 cat /etc/docker/daemon.json # 重启Docker服务 sudo service docker restart

4. WSL 1网络问题

问题:WSL 1环境中Docker网络连接异常

解决方案

# 确保iptables使用legacy模式 sudo update-alternatives --set iptables /usr/sbin/iptables-legacy sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy # 重启Docker服务 sudo service docker restart

卸载Docker

如果需要卸载Docker:

# 停止Docker服务 sudo service docker stop # 卸载Docker包 sudo apt-get purge docker-ce docker-ce-cli containerd.io # 删除Docker相关文件 sudo rm -rf /var/lib/docker sudo rm -rf /etc/docker sudo rm -rf /var/run/docker.sock

参考资源

  • Docker官方文档:https://docs.docker.com/
  • Docker Hub:https://hub.docker.com/
  • WSL官方文档:https://docs.microsoft.com/en-us/windows/wsl/
  • 阿里云Docker镜像:https://cr.console.aliyun.com/
  • DaoCloud镜像加速器:https://www.daocloud.io/mirror

注意事项

  1. WSL版本:建议使用WSL 2以获得更好的Docker支持
  2. 网络配置:WSL 1环境需要配置iptables为legacy模式
  3. 权限管理:将用户添加到docker组后需要重新登录
  4. 镜像加速器:使用国内镜像加速器可以提高镜像拉取速度
  5. 系统资源:Docker会占用一定的系统资源,请确保系统配置足够

总结

通过以上步骤,您已经成功在WSL Ubuntu环境中安装和配置了Docker。现在可以使用Docker来构建、运行和管理容器化应用程序了。

如有任何问题,请参考常见问题部分或查阅Docker官方文档。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/14 3:42:39

STM32F4上实现USB2.0全速传输手把手教程

手把手教你用STM32F4实现稳定高效的USB 2.0全速通信你有没有遇到过这样的场景&#xff1a;项目需要实时上传大量传感器数据&#xff0c;但UART太慢、SPI又不方便接电脑&#xff0c;Wi-Fi功耗太高&#xff1f;这时候&#xff0c;USB就成了嵌入式开发者的“终极武器”——即插即用…

作者头像 李华
网站建设 2026/5/11 6:22:06

WS2812B动态色彩调节技术:图解说明时序协议

WS2812B动态色彩调节实战指南&#xff1a;从时序协议到稳定驱动你有没有遇到过这样的场景&#xff1f;精心写好的灯光渐变程序&#xff0c;结果灯带一通电就乱闪&#xff0c;颜色完全不对——红的变绿、绿的发蓝&#xff0c;甚至整条灯带像“癫痫发作”一样跳动。如果你用的是W…

作者头像 李华
网站建设 2026/5/12 6:45:09

Proteus仿真51单片机定时器配合外部电路设计要点

用Proteus玩转51单片机定时器&#xff1a;从精准延时到外设协同的实战设计你有没有遇到过这种情况——在Proteus里仿真一个简单的LED闪烁程序&#xff0c;结果发现亮灭周期和代码算好的完全对不上&#xff1f;明明写了1秒翻转一次&#xff0c;可示波器一看&#xff0c;实际是2.…

作者头像 李华
网站建设 2026/5/9 5:51:40

STM32固件库引入后Keil代码提示失效的排查与修复

STM32固件库引入后Keil代码提示失效&#xff1f;别急&#xff0c;一文讲透排查与修复全流程在嵌入式开发的世界里&#xff0c;STM32 Keil 的组合几乎是每个工程师的“入门标配”。但你是否也遇到过这样的场景&#xff1a;刚把 HAL 库或标准外设库加进工程&#xff0c;信心满满…

作者头像 李华