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

WSL2上Ubuntu22.04安装Docker

前言

熟悉windows环境的朋友们,很希望能熟悉linux环境的docker容器管理操作。而WSL就提供了一个方便的桥梁,但这个中介使用还有些不方便。下面记录下wsl2环境安装docker的过程和遇到的问题。希望能帮助到你。
我的环境配置是:windows10, wsl安装的是ubuntu22.04。
如何搭建wsl并升级到wsl2, 请自行到网络上搜索,这里不介绍了。

安装准备

  • 设置apt 国内源
    可以按照这里执行。补充一点,建议国内源不要覆盖原来的源配置,将国内源添加到/etc/apt/sources.list末尾即可。有极个别的组件国内源是没有的。
  • 更新包列表
       sudo apt-get update
       sudo apt-get upgrade # 不建议执行。你只是更新本地包列表,不是系统升级。有时候升级不一定合适。
    

安装必要的依赖

sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release

添加Docker的官方GPG密钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

设置Docker的稳定版存储库

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

设置Docker国内源

请参照这里。国内源的优势在于速度。

更新包列表

sudo apt update

安装Docker Engine

sudo apt install -y docker-ce docker-ce-cli containerd.io

验证Docker安装

验证Docker是否安装成功并正在运行:

sudo docker run hello-world

执行错误提示:systemd not running on this host, cannot use systemd cgroups manager
WSL不支持systemd的启动方式,也没有systemctl指令。这是wsl和原生linux的区别。
解决方案,请参考这里

将当前用户添加到docker组(可选)

为了在不使用sudo的情况下运行Docker命令,可以将当前用户添加到docker组。

sudo usermod -aG docker $USER  # 将当前用户添加到docker组
wsl --terminate Ubuntu         # 重新启动WSL2实例以使更改生效
docker run hello-world         # 重新启动WSL2后,再次登录并验证:

启用Docker自动启动(可选)

wsl关闭,docker服务自动停止,启动wsl时需要启动docker服务。如果想每次进入wsl时自动启动docker服务,可以这么做:

vim /root/.bashrc
... # 末尾添加一行代码: service docker start
source ~/.bashrc # 使修改立即生效

docker build构建自己的helloworld

相信大家熟悉了现有的hello-world镜像后,想自己构建一个自己的helloworld。请参照这里。
本机效果:

(base) root@DESKTOP-O1L58GK:~# docker images
REPOSITORY       TAG       IMAGE ID       CREATED         SIZE
my-hello-world   latest    c81964ac3ce4   4 days ago      923MB
hello-world      latest    d2c94e258dcb   20 months ago   13.3kB

至此wsl2搭建docker环境完毕。


http://www.kler.cn/a/454408.html

相关文章:

  • Windows 使用 非安装版MySQL 8
  • Linux网络——TCP的运用
  • QT集成intel RealSense 双目摄像头
  • NLP 中文拼写检测开源-01-基于贝叶斯公式的拼写检查器 CSC
  • Leetcode 394-字符串解码
  • MinIO服务器文件复制(Windows环境Linux环境)
  • LLMs之o3:《Deliberative Alignment: Reasoning Enables Safer Language Models》翻译与解读
  • 基础排序算法
  • 如何使用 Flask 框架创建简单的 Web 应用?
  • LeetCode 3218.切蛋糕的最小总开销 I:记忆化搜索(深度优先搜索DFS)
  • AppAgent源码 (OpenAIModel 类)
  • 连锁餐饮行业数据可视化分析方案
  • CSS学习资源宝库:CSSnippets、CSS-Tricks与CodePen
  • Vite内网ip访问,两种配置方式和修改端口号教程
  • MySQL外键类型与应用场景总结:优缺点一目了然
  • Tomcat原理(6)——tomcat完整实现
  • 【UE5 C++课程系列笔记】14——GameInstanceSubsystem与动态多播的简单结合使用
  • webview+H5来实现的android短视频(短剧)音视频播放依赖控件资源
  • 【02-数据库面试】
  • 新手小白如何挖掘cnvd通用漏洞之存储xss漏洞(利用xss钓鱼)