Windows系统安装docker教程

news/2024/11/28 0:22:32/

使用WSL 2安装docker

一.安装wsl2

1.在任务管理器中,检查系统虚拟化是否开启

2.以管理员身份运行cmd.

3.输入:wsl --install

4.启用wsl功能

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

5.重启,再次管理员打开命令窗口,输入下面的命令

wsl --install -d Ubuntu
6.输入用户名和密码

二.安装docker(主要)

1. 清理之前的操作

首先,清理之前可能的错误安装和配置:

a. 移除旧版本 Docker

如果系统中已经安装了旧版本的 Docker 或其依赖,先移除:

sudo apt remove -y docker docker-engine docker.io containerd runc

b. 删除旧的 Docker 源

清除可能存在的无效源文件:

sudo rm -f /etc/apt/sources.list.d/docker.list sudo apt update

c. 检查是否有遗留的 Docker 文件

确保系统中没有遗留文件或配置:

sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd


2. 添加 Docker 的官方源

a. 安装依赖

确保系统具备添加源所需的软件:

sudo apt update sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

b. 添加 GPG 密钥

添加 Docker 官方的 GPG 密钥:

sudo mkdir -p /etc/apt/keyrings curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

c. 添加源地址

将阿里云镜像作为源,专为 Ubuntu 20.04(代号 focal):

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu focal stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null


3. 安装 Docker

a. 更新包索引

更新系统软件包列表:

sudo apt update

b. 安装 Docker

安装最新版本的 Docker 和相关组件:

sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin


4. 验证安装

a. 检查 Docker 版本

运行以下命令确认 Docker 安装成功:

docker --version

b. 测试 Docker 是否正常运行

运行测试镜像 hello-world

sudo docker run hello-world

输出应包含以下内容,表示 Docker 安装成功:

Hello from Docker! This message shows that your installation appears to be working correctly.


5. 配置非 root 用户使用 Docker

为避免每次运行 Docker 都需要使用 sudo

  1. 将当前用户添加到 docker 用户组:

    sudo usermod -aG docker $USER

  2. 退出当前终端并重新登录以生效。
  3. 测试运行:

    docker run hello-world


6. 启动和设置 Docker 开机启动

确保 Docker 服务已启动并设置为开机自动启动:

sudo systemctl start docker sudo systemctl enable docker


7. 常见问题排查

a. 如果安装包未找到
  • 确认 apt-cache policy docker-ce 的输出中有可用版本。
  • 如果仍未找到,检查 /etc/apt/sources.list.d/docker.list 是否正确配置了 focal 作为版本代号。
b. 如果无法访问镜像
  • 确保可以访问阿里云镜像,或者尝试其他国内源,如:
    • 清华大学镜像

      https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu


http://www.ppmy.cn/news/1550472.html

相关文章

基于 Spring AOP (面向切面编程) 的切面类--自定义方法注解的方式打印日志

java每日一学 ---- 面向切面编程 怎么通过方法注解的方式打印日志呢?自定义注解 1、首先定义一个ExecuteLog 注解类 Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) public interface ExecuteLog {/*** 执行方法的描述,默认方法名**…

计算机网络 第4章 网络层

计算机网络 (第八版)谢希仁 第 4 章 网络层4.2.2 IP地址**无分类编址CIDR**IP地址的特点 4.2.3 IP地址与MAC地址4.2.4 ARP 地址解析协议4.2.5 IP数据报的格式题目2:IP数据报分片与重组题目:计算IP数据报的首部校验和(不正确未改) …

SQL for XML

关系数据模型与SQL SQL for XML 模式名功能RAW返回的行作为元素,列值作为元素的属性AUTO返回表名对应节点名称的元素,每列的属性作为元素的属性输出输出,可形成简单嵌套结构EXPLICIT通过SELECT语法定义输出XML结构PATH列名或列别名作为XPAT…

C++中虚继承为什么可以解决菱形继承的数据冗余问题

在C中菱形继承会有数据冗余的问题发生,我们可以使用虚继承来解决,那虚继承的原理是什么,为什么它可以解决这个问题。 菱形继承的数据冗余问题 class A { public:int data; };class B : public A {};class C : public A {};class D : public…

eduSRC挖洞思路

声明 学习视频来自 B 站UP主泷羽sec,如涉及侵权马上删除文章。 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。 ✍🏻作者简介:致…

重写get方法导致json序列化之后值改变的问题

重写get方法导致json序列化之后值改变的问题 问题描述 在开发中,我发现有一个接口某一个字段返回的值和数据库中的实际值并不一样 数据库中值: id diameter 1 10接口返回值: {"id": 1,"diameter": 5 }问题排查 发现,在getDiame…

10 —— Webpack打包模式

开发模式:development ;场景:本地开发 生产模式:production ; 场景:打包上线 这两种模式如何设置给webpack: 方式1.webpack.config.js 配置文件设置mode选项 module.exports { mode:produc…

tsx中使用el-dialog设置visible.sync,解决弹窗右上角叉号失效问题

在 TSX 中使用 el-dialog 设置 visible.sync 在 Vue 2 中,.sync 修饰符用于在父子组件之间同步属性值。然而,在 TSX 中并没有类似的 .sync 修饰符。如果要在 TSX 中实现类似的功能,需要手动实现。具体来说,可以通过监听 update:v…