当前位置: 首页 > news >正文

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官方文档。

http://www.jsqmd.com/news/226932/

相关文章:

  • Python高级之操作Mysql
  • cruise仿真模型,四轮驱动。 轮毂电机,轮边电机驱动cruise动力性经济性仿真模型,ba...
  • 35 岁职场危机?网络安全这行为啥越老越吃香?
  • SpringBoot+Vue 课程答疑系统管理平台源码【适合毕设/课设/学习】Java+MySQL
  • 从零实现framebuffer显示:裸机环境下简单图形输出教程
  • 前后端分离BB平台系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
  • 安全副业指南:漏洞挖掘 / 技术博客 / 竞赛奖金实战,哪个方向更适合你?
  • STM32新手必看:Keil5代码自动补全设置手把手教程
  • Java Web 购物推荐网站系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】
  • uds31服务ECU侧内存访问权限控制解析
  • STM32F4上实现USB2.0全速传输手把手教程
  • 【毕业设计】SpringBoot+Vue+MySQL 知识管理系统平台源码+数据库+论文+部署文档
  • 免费录屏水印工具:自动生成多种类型格式
  • LVGL GUI框架移植:零基础入门必看技术解析
  • 从Boost的设计哲学到工业实践:解锁下一代AI中间件架构的密码
  • SpringBoot+Vue 高校学科竞赛平台管理平台源码【适合毕设/课设/学习】Java+MySQL
  • Keil C51多文件编译策略:8051工程管理完整示例
  • 嵌入式开发避坑指南:HardFault_Handler问题定位核心要点
  • Linux命令-ipcrm命令(删除Linux系统中的进程间通信(IPC)资源)
  • STM32F4开发必备:固件包下载完整指南
  • 为什么“Python 做研究,Java 搞生产”?
  • 探索基于UDS的Bootloader:从功能到源码实践
  • 什么是网关?
  • Java SpringBoot+Vue3+MyBatis 智能推荐卫生健康系统系统源码|前后端分离+MySQL数据库
  • 利用脚本自动化JLink下载过程的工厂实施方案
  • 带宽与网速是一回事吗
  • Linux命令-ipcs命令(报告进程间通信(IPC)设施状态的实用工具)
  • 【大模型越狱】【ICML2025】Weak-to-Strong Jailbreaking on Large Language Models
  • JLink仿真器使用教程:超详细版烧录步骤解析
  • WS2812B动态色彩调节技术:图解说明时序协议