快速上手: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等࿰…...
ASP.NET 部署到IIS,访问其它服务器的共享文件 密码设定
asp.net 修改上面的 IIS需要在 配置文件 添加如下内容 》》》web.config <system.web><!--<identity impersonate"true"/>--><identity impersonate"true" userName"您的账号" password"您的密码" /><co…...
将自定义函数添加到MATLAB搜索路径的方法
在MATLAB中,将自定义函数添加到搜索路径可以确保你能够方便地调用这些函数,而不必每次都指定完整路径。本文介绍几种将自定义函数添加到MATLAB搜索路径的方法 文章目录 使用 MATLAB 的路径管理工具使用 addpath 命令在启动时自动添加路径使用 genpath 命…...
云原生之运维监控实践-使用Telegraf、Prometheus与Grafana实现对InfluxDB服务的监测
背景 如果你要为应用程序构建规范或用户故事,那么务必先把应用程序每个组件的监控指标考虑进来,千万不要等到项目结束或部署之前再做这件事情。——《Prometheus监控实战》 去年写了一篇在Docker环境下部署若依微服务ruoyi-cloud项目的文章,当…...
什么是MySQL,有什么特点
什么是 MySQL? MySQL 是一个关系型数据库管理系统(RDBMS),由瑞典公司 MySQL AB 开发,后来被 Sun Microsystems 收购,最终成为 Oracle Corporation 的一部分。MySQL 是最流行的关系型数据库之一,…...
初始化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(){// 创建一个字典,键是字符串类型,值是整数类型Dictionary<string, int> studentScores new Dictionary<string, int>();// 向字典中添加键值对// 原理&am…...
CDH安装与配置及相关大数据组件实践
CDH安装与配置及相关大数据组件实践 一、CDH 介绍 CDH(Cloudera’s Distribution Including Apache Hadoop)是一个基于 Web 用户界面的大数据平台版本。它支持大多数 Hadoop 组件,包括 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系列基础(一)卷积神经网络原理详解与基础层级结构说明-CSDN博客 YOLO系列基础(二)Bottleneck瓶颈层原理详解-CSDN博客 YOLO系列基础(三)从ResNet残差网络到C3层-CSDN博客 YOLO系列基础…...
LeetCode100之环形链表(141)--Java
1.问题描述 给你一个链表的头节点 head ,判断链表中是否有环 示例1 输入:head [3,2,0,-4], pos 1 输出:true 解释:链表中有一个环,其尾部连接到第二个节点 示例2 输入:head [1,2], pos 0 输出…...
【ict基础软件赛道】真题-50%openEuler
以下哪个命令可用于查看当前shell的后台任务在openeuler中哪个符号用于创建后台执行进程在openeuler中使用哪个命令查看软件包的详细信息在openeuler中如果想要查看本机的主机名可以使用下面哪个命令在openeuler中使用的包管理器是在openeuler系统中要配置防火墙以允许ssh连接应…...
<AI 学习> 下载 Stable Diffusions via Windows OS
注意: 不能使用 网络路径 不再支持 HTTPS 登录,需要 Token 1. 获得合法的授权 Stability AI License — Stability AI 上面的链接打开,去申请 许可 2. 拥有 HuggingFace 账号 注册:https://huggingface.co/ 3. 配置 Tok…...
计算机图形学在游戏开发中的应用
💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 计算机图形学在游戏开发中的应用 计算机图形学在游戏开发中的应用 计算机图形学在游戏开发中的应用 引言 计算机图形学的基本概念…...
【CubeMX-HAL库】STM32H743II——SDRAM配置所遇问题
推荐的博客和视频: 1、【CubeMX-HAL库】STM32H743—FMC配置SDRAM_stm32h743 sdram 速度-CSDN博客 2、【【STM32CubeMX教程】STM32全外设原理、配置和常用HAL、LL库API使用详解】 3、在百度网盘里有STM32H743的例程:【通过网盘分享的文件:S…...
mac上使用docker搭建gitlab
在 Mac 上搭建 GitLab 可以使用 Docker 来简化安装过程 一、安装详细步骤 1. 安装 Docker 如果你尚未安装 Docker,可以通过以下步骤安装: 下载并安装 Docker Desktop for Mac.安装完成后,启动 Docker Desktop,确保 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高度占位 (1)需要先在App.vue中获取一下 uni.getSystemInfoSync().windowBottom; //返回值是tabBar的高度(2)在app.vue中定义一个全局样式 3、在需要的页面底部,加上一个view&…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
算法:模拟
1.替换所有的问号 1576. 替换所有的问号 - 力扣(LeetCode) 遍历字符串:通过外层循环逐一检查每个字符。遇到 ? 时处理: 内层循环遍历小写字母(a 到 z)。对每个字母检查是否满足: 与…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
