再见虚拟机!聊聊 PC 端运行 Docker 的正确姿势!
1. 前言
大家好,我是安果!
在相当长的一段时间里,PC 端要使用 Linux 系统的方案都是:WMware/Oracle VM VirtualBox + Linux
而现在 Win10 可通过启动 WSL2 来运行 Linux 系统,相当于在 Windows 运行 Linux 子系统,相比传统的虚拟方案运行更流畅
众所周知,Docker 作为一种常见的容器,必须部署在 Linux 内核的系统上
本篇文章,将和大家聊聊 Windows 运行 Docker 的正确姿势
2. 实战一下
详细实现步骤如下
2-1 开启 WSL
PS:WSL2 仅适用于 Windows10 18917 及更高版本
查看系统版本可以通过 Win + R 快捷键,输入 winver 命令查看
确定版本满足后,以管理员权限运行 Windows PowerShell,然后执行下面两条命令开启 WSL
- # 开启WSL
- dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
- dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
2-2 安装子 Linux 系统
在 Windows 应用商店搜索关键字 Linux,选择一个系统进行下载
这里,我们下载常用的 Ubuntu 作为子 Linux,运行在 Windows 下
PS:安装完成后,启动子 Linux 后需要按需求输入用户名及密码
2-3 切换 WSL2
通过下面的命令可以查看当前 WSL 的版本
- C:Usersxingag>wsl -l
- 适用于 Linux 的 Windows 子系统分发版:
- Ubuntu-18.04 (默认)
- # 查看版本
- C:Usersxingag>wsl -l -v
- NAME STATE VERSION
- * Ubuntu-18.04 Stopped 2
如果版本号为 1,使用 wsl --set-version 命令设置版本为 2,切换到 WSL2
- # 切换版本
- wsl --set-version Ubuntu-18.04 2
需要注意的是,如果切换版本失败,可能需要下载更新 WSL2 的内核组件
下载地址:
https://docs.microsoft.com/en-us/windows/wsl/install-win10#step-4---download-the-linux-kernel-update-package
2-4 启动子 Linux 系统
启动子 Linux 系统有两种方式
- 命令行输入 wsl 命令
- 程序菜单启动
启动系统后,就可以像普通 Linux 一样完成其他操作了
2-5 安装 Docker
进入到 Linux 子系统,就可以利用命令安装 Docker 了
这里以开源镜像站点提供的 curl 命令安装 Docker
- # 安装docker
- curl -skSL https://mirror.azure.cn/repo/install-docker-ce.sh | sh -s -- --mirror AzureChinaCloud
接着通过命令启动 Docker 容器
- # 切换root权限
- xingag@LAPTOP-ETHCQ2HI:~$ sudo su
- # 启动docker
- root@LAPTOP-ETHCQ2HI:/home/xingag# service docker start
- * Starting Docker: docker
- # 查看docker版本
- docker version
3. 最后
文章详细描述了 Windows 通过安装子 Linux 系统完成 Docker 安装的详细步骤
实际使用过程中,一些依赖 Linux 环境的项目,完全可以使用这种方式去部署调试
相关文章
- 程序员画图软件推荐
- C++ 地球人口承载力
- 状态模式
- 对ChatGPT的几个提问,当码农小帮手可行
- LOJ 3395 集训队作业 Yet Another Permutation Problem 题解 (生成函数技巧)
- readelf命令读取elf文件的详细信息
- 导出域用户hash姿势总结
- 《Towards Cooperation in Sequential Prisoner’s Dilemmas: a Deep Multiagent Reinforcement Learning Approach》 2018-arxiv(未收录)
- 基于声网互动白板实现一个多人数独游戏
- 项目终于用上了低代码,才知道为什么真香了!
- 【算法训练营day42】01背包问题基础 LeetCode416. 分割等和子集
- 化繁为简|AIRIOT智慧水务信息化建设解决方案
- 算法学习笔记(17): 快速傅里叶变换(FFT)
- OpenMMLab AI实战营 第六课笔记
- Spring配置类理解(Lite模式和Full模式)
- 网络协议-ssh基础
- if else 代码优化实战
- Copula
- 【Rust入门】(一)构建自己的第一个Rust项目
- .Net6对AOP的多种支持之IAsyncResourceFilter