windows系统的WSL的Ubuntu安装docker

前提条件

  • 已安装WSL
  • 已安装Ubuntu

PowerShell管理员运行,检查WSL环境状态

复制代码
# 检查WSL版本
wsl -l -v

进入Ubuntu系统

复制代码
wsl -d ubuntu20
# 检查系统信息
lsb_release -a
uname -a

更新系统包管理器

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

配置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

安装Docker CE、Docker CLI 和containerd.io

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

配置iptables为legacy模式(WSL 1环境需要配置,WSL2忽略)

由于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

配置Docker镜像加速器

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

启动Docker服务

复制代码
# 启动Docker服务
sudo service docker start
 
# 检查Docker服务状态
sudo service docker status

配置Docker服务随系统启动(未配置)

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

将当前用户添加到docker组,避免每次使用sudo(未配置)

复制代码
# 将用户添加到docker组
sudo usermod -aG docker $USER

验证Docker安装

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

常用docker命令

复制代码
# 启动Docker服务
sudo service docker start
 
# 停止Docker服务
sudo service docker stop
 
# 重启Docker服务
sudo service docker restart
 
# 查看Docker服务状态
sudo service docker status
相关推荐
Suroy14 小时前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker
云恒要逆袭14 小时前
运行你的第一个Docker容器
后端·docker·容器
Web3探索者1 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo1 天前
Linux系统中网线与USB网络共享冲突
linux
宋均浩2 天前
# Docker 镜像瘦身实战:从 1.2G 到 80MB 的五个优化步骤
ci/cd·docker
程序员老赵2 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程
WangMingHua1112 天前
LM Studio Docker 部署——本地大模型一键启动
docker
Sokach10153 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux
AlfredZhao3 天前
Docker 容器时区不对,`timedatectl` 不存在怎么办?
linux·timezone
曲幽4 天前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate