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

快速上手:Docker 安装详细教程(适用于 Windows、macOS、Linux)

### 快速上手:Docker 安装详细教程(适用于 Windows、macOS、Linux)

---

Docker 是一款开源容器化平台,广泛应用于开发、测试和部署。本文将为您提供分步骤的 Docker 安装教程,涵盖 Windows、macOS 和 Linux 系统。

---

## **一、Docker 安装前的准备工作**

在安装 Docker 之前,确保满足以下条件:

1. **操作系统要求**:
   - Windows 10 或更高版本(需启用 WSL 2)。
   - macOS 10.15(Catalina)或更高版本。
   - Linux 支持主流发行版(如 Ubuntu、CentOS)。
   
2. **硬件要求**:
   - 至少 4GB 的内存。
   - 支持虚拟化技术(如 VT-x 或 AMD-V)。

3. **网络需求**:
   - 安装过程中需要稳定的网络连接。

---

## **二、安装步骤**

### **1. Windows 平台**

#### 1.1 下载 Docker Desktop
1. 打开 [Docker 官方网站](https://www.docker.com/products/docker-desktop)。
2. 选择 **Get Docker**,下载适用于 Windows 的安装包。

#### 1.2 安装 Docker Desktop
1. 双击下载的安装文件(如 `Docker Desktop Installer.exe`)。
2. 在安装向导中,勾选 **Enable WSL 2 Features**,确保启用了 WSL 2。
3. 点击安装,等待安装完成。

#### 1.3 启用 WSL 2(若未启用)
1. 打开 PowerShell,以管理员身份运行以下命令,安装 WSL:
   ```bash
   wsl --install
   ```
2. 设置默认 WSL 版本为 WSL 2:
   ```bash
   wsl --set-default-version 2
   ```

#### 1.4 配置 Docker Desktop
1. 安装完成后,启动 Docker Desktop。
2. 登录 Docker Hub 账号(若无账号,可前往 [Docker Hub](https://hub.docker.com/) 免费注册)。
3. 确认 Docker Desktop 显示 **Running** 状态。

#### 1.5 验证安装
在 PowerShell 中运行以下命令,确认 Docker 已正确安装:
```bash
docker --version
```
**示例输出**:
```
Docker version 24.x.x, build xxxxxxx
```

---

### **2. macOS 平台**

#### 2.1 下载 Docker Desktop
1. 前往 [Docker 官方网站](https://www.docker.com/products/docker-desktop)。
2. 选择适用于 macOS 的版本并下载。

#### 2.2 安装 Docker Desktop
1. 下载完成后,双击 `.dmg` 文件。
2. 将 Docker 图标拖入 **Applications** 文件夹。
3. 打开 **Applications**,运行 Docker。

#### 2.3 登录并配置
1. 启动 Docker Desktop 时,可能会提示输入管理员密码,输入后继续。
2. 登录 Docker Hub 账号,完成配置。

#### 2.4 验证安装
打开终端,运行以下命令:
```bash
docker --version
```
**示例输出**:
```
Docker version 24.x.x, build xxxxxxx
```

---

### **3. Linux 平台**

#### 3.1 安装 Docker 引擎(以 Ubuntu 为例)

1. 更新系统软件包:
   ```bash
   sudo apt update
   sudo apt upgrade
   ```
2. 安装必要的依赖项:
   ```bash
   sudo apt install apt-transport-https ca-certificates curl software-properties-common
   ```
3. 添加 Docker 官方的 GPG 密钥:
   ```bash
   curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
   ```
4. 添加 Docker 的软件源:
   ```bash
   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
   ```
5. 更新软件包列表并安装 Docker:
   ```bash
   sudo apt update
   sudo apt install docker-ce docker-ce-cli containerd.io
   ```

#### 3.2 启动并配置 Docker
1. 启动 Docker 服务:
   ```bash
   sudo systemctl start docker
   ```
2. 设置开机自启动:
   ```bash
   sudo systemctl enable docker
   ```
3. 将当前用户加入 `docker` 用户组(可选):
   ```bash
   sudo usermod -aG docker $USER
   ```
   **注意**:执行此命令后需重新登录以生效。

#### 3.3 验证安装
运行以下命令检查 Docker 是否安装成功:
```bash
docker --version
```
**示例输出**:
```
Docker version 24.x.x, build xxxxxxx
```

---

## **三、验证 Docker 是否正常运行**

无论在哪个操作系统上安装完成 Docker,都可以通过以下命令验证其功能:

1. 运行测试镜像:
   ```bash
   docker run hello-world
   ```
2. 如果安装成功,会输出以下内容:
   ```
   Hello from Docker!
   This message shows that your installation appears to be working correctly.
   ```

---

## **四、常见问题及解决方法**

### 1. 启动 Docker 时失败
- **原因**:未启用虚拟化。
- **解决方法**:进入 BIOS,启用 CPU 的虚拟化支持(如 VT-x 或 AMD-V)。

### 2. Linux 下无权限运行 Docker 命令
- **原因**:当前用户不在 `docker` 用户组中。
- **解决方法**:
  ```bash
  sudo usermod -aG docker $USER
  ```

### 3. WSL 2 配置错误(Windows)
- **原因**:WSL 2 内核未正确安装。
- **解决方法**:
  1. 下载 [WSL 2 更新包](https://aka.ms/wsl2kernel)。
  2. 安装后重新启动 Docker Desktop。

---

## **五、后续学习方向**

完成 Docker 安装后,您可以学习以下内容以深入了解 Docker:
1. **常用命令**:如 `docker pull`, `docker build`, `docker run`, `docker ps`, `docker stop` 等。
2. **创建自定义镜像**:学习编写 Dockerfile。
3. **Docker Compose**:管理多个容器的工具。
4. **容器编排**:学习 Kubernetes 等技术。

Docker 是现代开发和部署的核心工具之一,掌握它将极大提高您的工作效率!

相关文章:

快速上手:Docker 安装详细教程(适用于 Windows、macOS、Linux)

### 快速上手:Docker 安装详细教程(适用于 Windows、macOS、Linux) --- Docker 是一款开源容器化平台,广泛应用于开发、测试和部署。本文将为您提供分步骤的 Docker 安装教程,涵盖 Windows、macOS 和 Linux 系统。 …...

kafka消费者出现频繁Rebalance

kafka消费者在正常使用过程中,突然出现了不消费消息的情况,项目里是使用了多个消费者消费不同数据,按理不会相互影响,看日志,发现消费者出现了频繁的Rebalance。 Rebalance的触发条件 组成员发生变更(新consumer加入组…...

rk3399开发环境使用Android 10初体验蓝牙功能

版本 日期 作者 变更表述 1.0 2024/11/10 于忠军 文档创建 零. 前言 由于Bluedroid的介绍文档有限,以及对Android的一些基本的知识需要了(Android 四大组件/AIDL/Framework/Binder机制/JNI/HIDL等),加上需要掌握的语言包括Java/C/C等&#xff0…...

ASP.NET 部署到IIS,访问其它服务器的共享文件 密码设定

asp.net 修改上面的 IIS需要在 配置文件 添加如下内容 》》》web.config <system.web><!--<identity impersonate"true"/>--><identity impersonate"true" userName"您的账号" password"您的密码" /><co…...

将自定义函数添加到MATLAB搜索路径的方法

在MATLAB中&#xff0c;将自定义函数添加到搜索路径可以确保你能够方便地调用这些函数&#xff0c;而不必每次都指定完整路径。本文介绍几种将自定义函数添加到MATLAB搜索路径的方法 文章目录 使用 MATLAB 的路径管理工具使用 addpath 命令在启动时自动添加路径使用 genpath 命…...

云原生之运维监控实践-使用Telegraf、Prometheus与Grafana实现对InfluxDB服务的监测

背景 如果你要为应用程序构建规范或用户故事&#xff0c;那么务必先把应用程序每个组件的监控指标考虑进来&#xff0c;千万不要等到项目结束或部署之前再做这件事情。——《Prometheus监控实战》 去年写了一篇在Docker环境下部署若依微服务ruoyi-cloud项目的文章&#xff0c;当…...

什么是MySQL,有什么特点

什么是 MySQL&#xff1f; MySQL 是一个关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;由瑞典公司 MySQL AB 开发&#xff0c;后来被 Sun Microsystems 收购&#xff0c;最终成为 Oracle Corporation 的一部分。MySQL 是最流行的关系型数据库之一&#xff0c…...

初始化mysql5.7

-- 环境变量 MYSQL_HOME %MYSQL_HOME%\bin -- 新增配置文件 my.ini [mysqld] port 3306 basedir D:/develop/MySQL/mysql-5.7.44-winx64 datadir D:/develop/MySQL/mysql-5.7.44-winx64/data max_connections 200character-set-serverutf8 default-storage-engineINNODB …...

C# 字典应用

using System;using System.Collections.Generic;class Program{static void Main(){// 创建一个字典&#xff0c;键是字符串类型&#xff0c;值是整数类型Dictionary<string, int> studentScores new Dictionary<string, int>();// 向字典中添加键值对// 原理&am…...

CDH安装与配置及相关大数据组件实践

CDH安装与配置及相关大数据组件实践 一、CDH 介绍 CDH&#xff08;Cloudera’s Distribution Including Apache Hadoop&#xff09;是一个基于 Web 用户界面的大数据平台版本。它支持大多数 Hadoop 组件&#xff0c;包括 HDFS、MapReduce、Hive、Pig、HBase、Zookeeper、Sqoo…...

fastapi 调用ollama之下的sqlcoder模式进行对话操作数据库

from fastapi import FastAPI, HTTPException, Request from pydantic import BaseModel import ollama import mysql.connector from mysql.connector.cursor import MySQLCursor import jsonapp FastAPI()# 数据库连接配置 DB_CONFIG {"database": "web&quo…...

YOLO系列基础(六)YOLOv1原理详解,清晰明了!

系列文章地址 YOLO系列基础&#xff08;一&#xff09;卷积神经网络原理详解与基础层级结构说明-CSDN博客 YOLO系列基础&#xff08;二&#xff09;Bottleneck瓶颈层原理详解-CSDN博客 YOLO系列基础&#xff08;三&#xff09;从ResNet残差网络到C3层-CSDN博客 YOLO系列基础…...

LeetCode100之环形链表(141)--Java

1.问题描述 给你一个链表的头节点 head &#xff0c;判断链表中是否有环 示例1 输入&#xff1a;head [3,2,0,-4], pos 1 输出&#xff1a;true 解释&#xff1a;链表中有一个环&#xff0c;其尾部连接到第二个节点 示例2 输入&#xff1a;head [1,2], pos 0 输出&#xf…...

【ict基础软件赛道】真题-50%openEuler

以下哪个命令可用于查看当前shell的后台任务在openeuler中哪个符号用于创建后台执行进程在openeuler中使用哪个命令查看软件包的详细信息在openeuler中如果想要查看本机的主机名可以使用下面哪个命令在openeuler中使用的包管理器是在openeuler系统中要配置防火墙以允许ssh连接应…...

<AI 学习> 下载 Stable Diffusions via Windows OS

注意&#xff1a; 不能使用 网络路径 不再支持 HTTPS 登录&#xff0c;需要 Token 1. 获得合法的授权 Stability AI License — Stability AI 上面的链接打开&#xff0c;去申请 许可 2. 拥有 HuggingFace 账号 注册&#xff1a;https://huggingface.co/ 3. 配置 Tok…...

计算机图形学在游戏开发中的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 计算机图形学在游戏开发中的应用 计算机图形学在游戏开发中的应用 计算机图形学在游戏开发中的应用 引言 计算机图形学的基本概念…...

【CubeMX-HAL库】STM32H743II——SDRAM配置所遇问题

推荐的博客和视频&#xff1a; 1、【CubeMX-HAL库】STM32H743—FMC配置SDRAM_stm32h743 sdram 速度-CSDN博客 2、【【STM32CubeMX教程】STM32全外设原理、配置和常用HAL、LL库API使用详解】 3、在百度网盘里有STM32H743的例程&#xff1a;【通过网盘分享的文件&#xff1a;S…...

mac上使用docker搭建gitlab

在 Mac 上搭建 GitLab 可以使用 Docker 来简化安装过程 一、安装详细步骤 1. 安装 Docker 如果你尚未安装 Docker&#xff0c;可以通过以下步骤安装&#xff1a; 下载并安装 Docker Desktop for Mac.安装完成后&#xff0c;启动 Docker Desktop&#xff0c;确保 Docker 运行…...

二维数组操作

代码结构 main.c #include <stdio.h> #include <stdlib.h>#define LEN 100int main() {//通过指针引用多维数组# if 1//定义多维数组int a[3][5] {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};int row sizeof(a) /sizeof(a[0]);int colum sizeof(a[0]) / sizeof(a[0…...

uniapp设置tabBar高斯模糊并设置tabBar高度占位

1、设置tabBar高斯模糊 2、设置tabBar高度占位 &#xff08;1&#xff09;需要先在App.vue中获取一下 uni.getSystemInfoSync().windowBottom; //返回值是tabBar的高度&#xff08;2&#xff09;在app.vue中定义一个全局样式 3、在需要的页面底部&#xff0c;加上一个view&…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

Unity UGUI Button事件流程

场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...

git: early EOF

macOS报错&#xff1a; Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...

AD学习(3)

1 PCB封装元素组成及简单的PCB封装创建 封装的组成部分&#xff1a; &#xff08;1&#xff09;PCB焊盘&#xff1a;表层的铜 &#xff0c;top层的铜 &#xff08;2&#xff09;管脚序号&#xff1a;用来关联原理图中的管脚的序号&#xff0c;原理图的序号需要和PCB封装一一…...