news 2026/6/10 23:11:19

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/6/10 12:31:20

STM32CubeMX安装步骤系统学习:配套工具链配置

STM32CubeMX安装与工具链配置全解析&#xff1a;从零搭建高效嵌入式开发环境 你是不是也曾遇到这样的情况&#xff1f;刚下载好STM32CubeMX&#xff0c;双击启动却弹出“ No Java virtual machine was found ”&#xff1b;或者好不容易打开界面&#xff0c;想生成Keil工程时…

作者头像 李华
网站建设 2026/6/10 14:35:59

STM32新手必看:Keil5代码自动补全设置手把手教程

让Keil5像现代IDE一样聪明&#xff1a;STM32开发中代码自动补全的真正打开方式你有没有过这样的经历&#xff1f;在写HAL_GPIO_的时候&#xff0c;脑子里明明记得有个初始化函数&#xff0c;但就是拼不对——是_Init()还是_Initialize()&#xff1f;大小写对吗&#xff1f;参数…

作者头像 李华
网站建设 2026/6/10 14:46:28

RabbitMQ 集群部署方案

RabbitMQ 一、安装 RabbitMQ 二、更改配置文件 三、配置集群 四、测试 环境准备&#xff1a;三台服务器&#xff0c;系统是 CentOS7 IP地址分别是&#xff1a; rabbitmq1&#xff1a;192.168.152.71rabbitmq2&#xff1a;192.168.152.72rabbitmq3&#xff1a;192.168.152.…

作者头像 李华
网站建设 2026/6/10 14:34:56

从零实现framebuffer显示:裸机环境下简单图形输出教程

点亮第一行像素&#xff1a;在裸机中实现Framebuffer图形输出的硬核实践你有没有试过&#xff0c;在一块全新的开发板上电后&#xff0c;除了串口打印出几行冰冷的“Hello World”&#xff0c;屏幕却始终漆黑一片&#xff1f;这种“看得见摸不着”的调试困境&#xff0c;正是许…

作者头像 李华
网站建设 2026/6/10 12:31:47

RabbitMQ 的介绍与使用

一. 简介 1> 什么是MQ 消息队列&#xff08;Message Queue&#xff0c;简称MQ&#xff09;&#xff0c;从字面意思上看&#xff0c;本质是个队列&#xff0c;FIFO先入先出&#xff0c;只不过队列中存放的内容是message而已。 其主要用途&#xff1a;不同进程Process/线程T…

作者头像 李华