在 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原生环境相同的开发体验,这无疑将推动跨平台开发的进一步发展。我们期待微软在未来继续推动技术的界限,为开发者社区提供更多的支持和便利。

相关推荐
蓝染k9z1 小时前
在Ubuntu上使用Docker部署DeepSeek
linux·人工智能·ubuntu·docker·deepseek+
张文君2 小时前
docker直接运行arm下的docker
arm开发·docker·容器
月上柳青4 小时前
docker gitlab arm64 版本安装部署
docker·容器·gitlab
神秘剑客_CN4 小时前
使用windows笔记本让服务器上网
运维·服务器·windows
star010-5 小时前
【视频+图文详解】HTML基础4-html标签的基本使用
前端·windows·经验分享·网络安全·html·html5
飞火流星020276 小时前
docker安装Redis:docker离线安装Redis、docker在线安装Redis、Redis镜像下载、Redis配置、Redis命令
redis·docker·docker安装redis·redis镜像下载·redis基本操作·redis配置
基哥的奋斗历程6 小时前
Docker 常用命令
运维·docker·容器
HEX9CF8 小时前
【Docker】快速部署 Nacos 注册中心
运维·docker·容器
小Tomkk8 小时前
Docker 部署 ClickHouse 教程
clickhouse·docker·rpc
明 庭10 小时前
通过 Docker 部署 pSQL 服务器的教程
服务器·docker·容器