在 Windows WSL Ubuntu 上安装原生Docker

最近我们成功地在Windows的WSL(Windows Subsystem for Linux)Ubuntu系统上安装了Linux原生的Docker。这一成就不仅标志着技术的进步,而且为使用Windows系统且依赖容器环境的开发者们打开了新的大门。本文将详细介绍安装过程,并讨论这一功能的重要性以及它对微软团队开发效率的积极影响。

关键事件:WSL开始支持systemd

WSL(Windows Subsystem for Linux)开始支持systemd是在2022年9月21日。这一支持首先在Windows 11中提供,使得WSL的体验更加接近于使用裸机Linux。Systemd是许多流行Linux发行版(如Ubuntu、Redhat等)使用的初始化系统和服务管理器。对于那些需要systemd来管理服务的应用来说,这是一个重要的进步,因为它允许在WSL中使用如snap和LXD等依赖于systemd的Linux应用。 这项改变对WSL架构有所影响,因为systemd需要作为PID 1运行,这要求WSL init过程成为systemd的子进程。这一改变确保了系统的干净关机,并且对WSL init过程做了一些调整,以适应这种新的层级结构。尽管systemd需要作为PID 1运行以提供系统和服务管理的功能,实际上WSL的架构调整使得WSL的init进程成为systemd的子进程,而不是直接替换为PID 1。这种架构上的调整是为了保持Linux和Windows组件之间通信的基础设施,同时也考虑到了清洁关机和与WSLg(运行Linux图形用户界面应用的WSL组件)的兼容性。

systemd-support-is-now-available-in-wsl

​​wsl systemd

这意味着,虽然你可能观察到/sbin/init仍然作为1号进程存在,但实际上systemd已经通过WSL的调整被有效地支持和集成,允许使用systemd管理的服务。

对于想在WSL上使用原生Docker的用户来说,这一支持无疑是一个好消息。Docker和许多其他服务可以利用systemd进行管理,提高了WSL在进行容器化开发时的便利性和实用性。通过启用systemd,开发人员可以在WSL上更有效地管理服务,实现更接近Linux的使用体验。

如果我们的系统尚未启用systemd,可以通过修改/etc/wsl.conf文件并添加[boot] systemd=true配置来启用它。这需要WSL的版本至少为0.67.6或更新版本。

这项功能的支持,确实为使用Windows系统且依赖容器环境的开发者带来了便利,使得在Windows上的Linux开发体验更加完整和高效。

安装过程回顾

安装Linux原生Docker在WSL的Ubuntu上的过程可以概括为以下几个步骤:

  1. 更新系统包列表并安装必要的包:
bash 复制代码
apt update && apt -y install --no-install-recommends apt-transport-https ca-certificates curl gnupg2
  1. 添加Docker的官方APT仓库信息:

    bash 复制代码
    echo "deb [arch=$(dpkg --print-architecture)] https://download.docker.com/linux/ubuntu jammy stable" | tee /etc/apt/sources.list.d/docker.list
  2. 导入Docker的官方GPG密钥,以确保软件包的真实性:

    bash 复制代码
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | tee /etc/apt/trusted.gpg.d/docker.asc
  3. 再次更新系统包列表,并安装Docker CE(社区版)、CLI工具、containerd.io、以及Docker的其他插件:

    bash 复制代码
    apt update && apt -y install --no-install-recommends docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

功能的意义

在WSL上安装Linux原生的Docker,为依赖容器化技术的开发者们提供了极大的便利。以往,Windows用户要么选择安装Docker Desktop,这是一个重量级的解决方案,要么面临无法直接在WSL中运行Docker的局限。现在,通过原生安装,开发者可以在更接近Linux的环境中运行Docker,享受更轻量、更快速、更灵活的开发体验。

微软团队的开发效率

此次技术突破也是对微软团队高效开发能力的证明。通过不断更新和改进WSL,微软不仅增强了其与Linux生态系统的兼容性,还促进了开发工具和环境的多样性。这表明微软致力于满足开发者社区的需求,无论是通过引入新功能,还是通过改善现有系统的性能和兼容性。

结语

微软在WSL2中加入对Systemd的支持,不仅提高了与Linux应用的兼容性,也大大简化了在Windows上使用Linux原生Docker的过程。这一进步对于依赖容器化开发环境的开发者来说意义重大,它不仅展示了微软对开发者社区需求的重视,也进一步加深了Windows与Linux生态系统之间的整合。现在,开发者可以在Windows上享受到几乎与Linux原生环境相同的开发体验,这无疑将推动跨平台开发的进一步发展。我们期待微软在未来继续推动技术的界限,为开发者社区提供更多的支持和便利。

相关推荐
老大白菜9 分钟前
Windows 11 安装 Dify 完整指南 非docker环境
windows·docker·容器
VinciYan3 小时前
基于Jenkins+Docker的自动化部署实践——整合Git与Python脚本实现远程部署
python·ubuntu·docker·自动化·jenkins·.net·运维开发
ue星空4 小时前
Windbg常用命令
windows
tntlbb4 小时前
Ubuntu20.4 VPN+Docker代理配置
运维·ubuntu·docker·容器
Gabriel_liao5 小时前
Docker安装Neo4j
docker·容器·neo4j
豆豆豆豆变8 小时前
Docker轻量级可视化工具Portainer
docker·容器·自动化运维
大熊程序猿8 小时前
xxl-job docker 安装
运维·docker·容器
泰勒今天不想展开8 小时前
jvm接入prometheus监控
jvm·windows·prometheus
shelby_loo8 小时前
使用 Docker 在 Ubuntu 下部署 Cloudflared Tunnel 服务器
服务器·ubuntu·docker
咏颜9 小时前
Ubuntu离线安装Docker容器
linux·运维·服务器·经验分享·ubuntu·docker