Windows 11 专业版 23H2 Docker Desktop 下载 安装 配置 使用

2024-04-01 18:44

本文主要是介绍Windows 11 专业版 23H2 Docker Desktop 下载 安装 配置 使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

博文目录

文章目录

  • Docker Desktop
  • 准备
    • 系统要求 (WSL 2 backend)
    • 在 Windows 上打开 WSL 2 功能
      • 先决条件
      • 开启 WSL 2
  • WSL
  • 下载安装
  • 启动
  • 配置
  • 使用
    • 镜像 Image
    • 卷积 Volumes
    • 容器 Containers
  • 命令
    • Redis
    • MySQL
    • PostGreSQL


Docker Desktop

Overview of Docker Desktop
Docker Desktop 疑难解答 虚拟化

Docker Desktop for Windows, 可以在 Windows 上创建 Docker 环境, 支持在 CMD 中运行 docker 命令, 提供了简单的 GUI 界面, 方便管理镜像, 容器, 数据卷等内容

准备

在 Windows 安装 Docker Desktop 有两种选择

  • WSL 2 backend
  • Hyper-V backend and Windows containers

Docker Desktop 推荐使用 WSL 2 backend, 因为 WSL 2 比 Hyper-V backend 有更好的性能. 后续内容都是基于 WSL 2 来说明

系统要求 (WSL 2 backend)

  • WSL 版本 1.1.3.0 或更高
  • Windows 11 64 位
    • 21H2 或更高版本
  • Windows 10 64 位
    • 建议使用 22H2(内部版本 19045)或更高版本
    • 最低要求 21H2(内部版本 19044)或更高版本
  • 在 Windows 上打开 WSL 2 功能

在 Windows 上打开 WSL 2 功能

先决条件

  • 具有二级地址转换 (SLAT) 的 64 位处理器, 只要电脑不是老古董, 通常都满足
  • 空余的 4GB 系统内存
  • 在 BIOS 中启用硬件虚拟化, 可通过如下方式确认是否已启用虚拟化在这里插入图片描述

开启 WSL 2

开启 WSL 2 有两种方式

  • 以管理员方式运行 wsl --install 并重启系统, 此命令将启用运行 WSL 所需的功能, 并默认安装 Linux 的 Ubuntu 发行版. Docker Desktop 其实并不依赖任何 Linux 发行版, 所以通过该命令安装的 Ubuntu 其实是不必要的
  • 手动分步开启 WSL 2
    • 启用 适用于 Linux 的 Windows 子系统虚拟机平台 两个可选功能, 如果是专业版或企业版系统, 还可以启用 Hyper-V 可选功能, 然后必须重启系统在这里插入图片描述
    • 执行 wsl --update 更新 WSL 到当前最新版, 执行 wsl --status 查看默认版本是否为 2, 如果不是则执行 wsl --set-default-version 2 将默认版本设置为 2

WSL

什么是 WSL
比较 WSL 版本
Docker Desktop WSL 2 backend on Windows

WSL 全称为 Windows Subsystem for Linux, 官网译为: 适用于 Linux 的 Windows 子系统 (WSL)

WSL 是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双引导。 WSL 旨在为希望同时使用 Windows 和 Linux 的开发人员提供无缝高效的体验。

WSL 目前有两个模式, 分别是 WSL 1 和 WSL 2, WSL 2 使用最新最好的虚拟化技术在轻量级实用工具虚拟机 (VM) 内运行 Linux 内核. 简单来说, WSL 2 在大多情况下比 WSL 1 性能好兼容性好, 所以默认情况下都是使用 WSL 2 模式

Docker Desktop 不需要我们在 WSL 中安装任何 Linux 发行版。因为 Docker Desktop 自带两个专用的内部 Linux 发行版, 两者是 Docker Desktop 专用的, 不能用作其他用途

  • docker-desktop, 用于运行 Docker 引擎 ( dockerd )
  • docker-desktop-data, 用于存储容器和映像
# 查看 wsl 相关内容的版本
wsl --version
# 查看 wsl 当前状态
wsl --status
# 检查 wsl 各 Linux 发行版的运行模式是 wsl 1 还是 wsl 2
wsl -l -v

下载安装

官网下载

当前 Docker Desktop for Windows 版本是 4.28.0 (139021)

在这里插入图片描述

Docker Desktop 推荐使用 WSL 2 代替 Hyper-V, 默认勾选不要取消, 等待安装完成即可

在这里插入图片描述

启动

在这里插入图片描述

接收 Docker 协议

在这里插入图片描述

先选择不登录, 然后随便选两个角色, 就可以进入 Containers 面板

在这里插入图片描述

如果启动一直卡 Starting the Docker Engine 转圈, 可能是准备工作没有做好, 对照步骤检查一下

配置

在这里插入图片描述

其实也没什么好配置的, 镜像保存位置可以改一改, 这个内容我们也无法直接查看, 而且我只有一个 C 盘, 所以就不改了, 没有必要

有人会在 Docker Engine 配置项中配置镜像加速, 但是我体验下来感觉都不行, 都无法直接在 Docker Desktop 里搜索镜像, 结合我之前使用经验来看, 加速仓库的镜像不够新, 有些版本的镜像不存在, 而且现在拉取镜像好像不需要魔法速度就很快, 所以我觉得使用 Docker Desktop 搜索镜像的时候开一下魔法即可, 选择一个 Tag 版本, 然后通过命令行的方式去拉取镜像

使用

最佳实践

安装 Docker Desktop for Windows 后, 就可以像在 Linux 一样在 CMD 里执行 docker 命令, GUI 算是一个补充功能, 能简化一些操作, 但是一些复杂操作或者特殊操作或者是 GUI 无法做到的操作, 都可以通过命令行得方式来执行. GUI 和 CMD 都是 Docker Engine 的一个操作入口, 其状态是完全一致的

镜像 Image

在这里插入图片描述

在不开魔法的情况下, 搜索不到镜像, 即使配置了镜像加速也没有效果, 所以我推荐这里开魔法

在这里插入图片描述

打开魔法之后, 可以正常搜索到镜像, 比如第一个就是官方提供的 Redis 镜像

在这里插入图片描述

这里有一个问题, 提供的 Tag 列表里没有 latest, 可能是因为该列表只显示最近的几个 Tag 而不是完整 Tag 列表, 可以点开 Redis 去看详细信息

在这里插入图片描述

点开详情后, 我们看到是有 latest Tag 的, 且 latest 版本就是 7.2.4 (一行的多个 Tag 都是同一个版本), 这时候我们可以关闭魔法, 通过 CMD 执行 docker pull redis:7.2.4 来拉取最新的 Redis 镜像, 速度非常快

在这里插入图片描述
在这里插入图片描述

拉取成功后, 在 Docker Desktop 的 Images 面板中就会显示出来

卷积 Volumes

在这里插入图片描述

在 Volumes 面板可以创建 Volume, 等效于执行 docker volume create 命令, 创建的 Volume 印射在 Windows 的 \\wsl.localhost\docker-desktop-data\data\docker\volumes 路径, 有读写权限, 可以通过 Windows 资源管理器 直接操作

docker run -v <host-path>:<container-path>, Docker Desktop 建议 host-path 使用 Linux 容器中的路径而不是 Windows 路径, 这样可以充分利用文件系统性能. 由于我们不是直接使用 Linux 环境, 不确定 -v 参数指定 Linux 文件路径是否可行, 而 Volume 由 Docker 控制, 使用的是 Linux 容器中的路径, 而且也印射到了 Windows 资源管理器, 所以我认为使用 Volume 是比较好的方式

在这里插入图片描述

容器 Containers

在这里插入图片描述

在 Images 面板可以点击 Action 的 Run 按钮来创建并启动一个容器, 在这里, 我设置容器名称为 redis, 印射的主机端口为 6379, 印射的主机路径为一个名为 redis 的 volume, 而不是一个 Windows 路径, 印射的容器路径为 /data, 然后启动容器, 等效于执行如下命令, 使用的是 Redis 默认配置

docker run --name redis -p 6379:6379 -v redis:/data redis:7.2.4 redis-server

通常我们启动 Redis 容器会指定一个自定义的配置文件 redis.conf, 该配置文件放到 redis 这个 volume 下, 用于控制 Redis 的行为, 执行命令如下, 这种后面带参数的命令, 通过 GUI 无法做到, 所以需要通过 CMD 来执行

docker run -d --name redis -p 6379:6379 -v redis:/data redis:7.2.4 redis-server /data/redis.conf

在这里插入图片描述

在 Container 面板, 可以看到各容器的状态, 能够简单操作容器, 比如启动, 停止, 删除等

在这里插入图片描述

点到容器内, 可以直接看到容器执行日志 Logs

在这里插入图片描述

容器的信息 Inspect, 可以点击 Platform, Cmd, State 等标签直接跳转到信息的对应位置查看关键信息

在这里插入图片描述

容器的文件 Files, 可以看到容器内的文件系统

在这里插入图片描述

容器的状态 State, 可以看到容器的运行情况, 资源占用情况等信息

在这里插入图片描述

可以在容器的 Exec 里执行命令, 相当于执行了 docker exec -it redis /bin/bash 命令进入了容器, 进而在容器内部执行命令

命令

Redis

redis.conf, 放到卷 redis 中

# bind 127.0.0.1 # 解除只允许环回地址访问的限制
daemonize no # 修改为yes会使docker使用配置文件方式启动redis失败
save 900 1 # 如果上个900秒内有超过1次写操作,则保存快照
save 300 10
save 60 10000
requirepass Mrv587.. # 密码
docker run \
-d \
--name redis \
-p 6379:6379 \
-v redis:/data \
redis:7.2.4 \
redis-server /data/redis.conf
docker run -d --name redis -p 6379:6379 -v redis:/data redis:7.2.4 redis-server /data/redis.conf

MySQL

my.cnf, 放到卷 mysql.config 中

[mysql]
# 设置mysql客户端默认字符集
default-character-set=UTF8MB4
[mysqld]
# 设置3306端口
port=3306
# 服务端使用的字符集
character-set-server=UTF8MB4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
docker run \
-d \
--name mysql \
-p 3306:3306 \
-v mysql:/var/lib/mysql \
-v mysql.config:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=Mrv587.. \
mysql:8.3.0
docker run -d --name mysql -p 3306:3306 -v mysql:/var/lib/mysql -v mysql.config:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=Mrv587.. mysql:8.3.0

PostGreSQL

docker run -d --name postgres -p 5432:5432 -e POSTGRES_PASSWORD=Mrv587.. -e ALLOW_IP_RANGE=0.0.0.0/0 -v postgres:/var/lib/postgresql/data postgres:16.2

修改 pg_hba.conf 里的 host all all all scram-sha-256host all all all trust 才能连接

这篇关于Windows 11 专业版 23H2 Docker Desktop 下载 安装 配置 使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/867879

相关文章

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

使用Python绘制蛇年春节祝福艺术图

《使用Python绘制蛇年春节祝福艺术图》:本文主要介绍如何使用Python的Matplotlib库绘制一幅富有创意的“蛇年有福”艺术图,这幅图结合了数字,蛇形,花朵等装饰,需要的可以参考下... 目录1. 绘图的基本概念2. 准备工作3. 实现代码解析3.1 设置绘图画布3.2 绘制数字“2025”3.3

Jsoncpp的安装与使用方式

《Jsoncpp的安装与使用方式》JsonCpp是一个用于解析和生成JSON数据的C++库,它支持解析JSON文件或字符串到C++对象,以及将C++对象序列化回JSON格式,安装JsonCpp可以通过... 目录安装jsoncppJsoncpp的使用Value类构造函数检测保存的数据类型提取数据对json数

python使用watchdog实现文件资源监控

《python使用watchdog实现文件资源监控》watchdog支持跨平台文件资源监控,可以检测指定文件夹下文件及文件夹变动,下面我们来看看Python如何使用watchdog实现文件资源监控吧... python文件监控库watchdogs简介随着Python在各种应用领域中的广泛使用,其生态环境也

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

mac安装redis全过程

《mac安装redis全过程》文章内容主要介绍了如何从官网下载指定版本的Redis,以及如何在自定义目录下安装和启动Redis,还提到了如何修改Redis的密码和配置文件,以及使用RedisInsig... 目录MAC安装Redis安装启动redis 配置redis 常用命令总结mac安装redis官网下

springboot整合 xxl-job及使用步骤

《springboot整合xxl-job及使用步骤》XXL-JOB是一个分布式任务调度平台,用于解决分布式系统中的任务调度和管理问题,文章详细介绍了XXL-JOB的架构,包括调度中心、执行器和Web... 目录一、xxl-job是什么二、使用步骤1. 下载并运行管理端代码2. 访问管理页面,确认是否启动成功

最新版IDEA配置 Tomcat的详细过程

《最新版IDEA配置Tomcat的详细过程》本文介绍如何在IDEA中配置Tomcat服务器,并创建Web项目,首先检查Tomcat是否安装完成,然后在IDEA中创建Web项目并添加Web结构,接着,... 目录配置tomcat第一步,先给项目添加Web结构查看端口号配置tomcat    先检查自己的to

使用Nginx来共享文件的详细教程

《使用Nginx来共享文件的详细教程》有时我们想共享电脑上的某些文件,一个比较方便的做法是,开一个HTTP服务,指向文件所在的目录,这次我们用nginx来实现这个需求,本文将通过代码示例一步步教你使用... 在本教程中,我们将向您展示如何使用开源 Web 服务器 Nginx 设置文件共享服务器步骤 0 —

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者