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

相关文章

C语言中联合体union的使用

本文编辑整理自: http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=179471 一、前言 “联合体”(union)与“结构体”(struct)有一些相似之处。但两者有本质上的不同。在结构体中,各成员有各自的内存空间, 一个结构变量的总长度是各成员长度之和。而在“联合”中,各成员共享一段内存空间, 一个联合变量

ESP32 esp-idf esp-adf环境安装及.a库创建与编译

简介 ESP32 功能丰富的 Wi-Fi & 蓝牙 MCU, 适用于多样的物联网应用。使用freertos操作系统。 ESP-IDF 官方物联网开发框架。 ESP-ADF 官方音频开发框架。 文档参照 https://espressif-docs.readthedocs-hosted.com/projects/esp-adf/zh-cn/latest/get-started/index

Linux 安装、配置Tomcat 的HTTPS

Linux 安装 、配置Tomcat的HTTPS 安装Tomcat 这里选择的是 tomcat 10.X ,需要Java 11及更高版本 Binary Distributions ->Core->选择 tar.gz包 下载、上传到内网服务器 /opt 目录tar -xzf 解压将解压的根目录改名为 tomat-10 并移动到 /opt 下, 形成个人习惯的路径 /opt/tomcat-10

Tolua使用笔记(上)

目录   1.准备工作 2.运行例子 01.HelloWorld:在C#中,创建和销毁Lua虚拟机 和 简单调用。 02.ScriptsFromFile:在C#中,对一个lua文件的执行调用 03.CallLuaFunction:在C#中,对lua函数的操作 04.AccessingLuaVariables:在C#中,对lua变量的操作 05.LuaCoroutine:在Lua中,

uniapp接入微信小程序原生代码配置方案(优化版)

uniapp项目需要把微信小程序原生语法的功能代码嵌套过来,无需把原生代码转换为uniapp,可以配置拷贝的方式集成过来 1、拷贝代码包到src目录 2、vue.config.js中配置原生代码包直接拷贝到编译目录中 3、pages.json中配置分包目录,原生入口组件的路径 4、manifest.json中配置分包,使用原生组件 5、需要把原生代码包里的页面修改成组件的方

Vim使用基础篇

本文内容大部分来自 vimtutor,自带的教程的总结。在终端输入vimtutor 即可进入教程。 先总结一下,然后再分别介绍正常模式,插入模式,和可视模式三种模式下的命令。 目录 看完以后的汇总 1.正常模式(Normal模式) 1.移动光标 2.删除 3.【:】输入符 4.撤销 5.替换 6.重复命令【. ; ,】 7.复制粘贴 8.缩进 2.插入模式 INSERT

VMware9.0详细安装

双击VMware-workstation-full-9.0.0-812388.exe文件: 直接点Next; 这里,我选择了Typical(标准安装)。 因为服务器上只要C盘,所以我选择安装在C盘下的vmware文件夹下面,然后点击Next; 这里我把√取消了,每次启动不检查更新。然后Next; 点击Next; 创建快捷方式等,点击Next; 继续Cont

Lipowerline5.0 雷达电力应用软件下载使用

1.配网数据处理分析 针对配网线路点云数据,优化了分类算法,支持杆塔、导线、交跨线、建筑物、地面点和其他线路的自动分类;一键生成危险点报告和交跨报告;还能生成点云数据采集航线和自主巡检航线。 获取软件安装包联系邮箱:2895356150@qq.com,资源源于网络,本介绍用于学习使用,如有侵权请您联系删除! 2.新增快速版,简洁易上手 支持快速版和专业版切换使用,快速版界面简洁,保留主

如何免费的去使用connectedpapers?

免费使用connectedpapers 1. 打开谷歌浏览器2. 按住ctrl+shift+N,进入无痕模式3. 不需要登录(也就是访客模式)4. 两次用完,关闭无痕模式(继续重复步骤 2 - 4) 1. 打开谷歌浏览器 2. 按住ctrl+shift+N,进入无痕模式 输入网址:https://www.connectedpapers.com/ 3. 不需要登录(也就是

vcpkg安装opencv中的特殊问题记录(无法找到opencv_corexd.dll)

我是按照网上的vcpkg安装opencv方法进行的(比如这篇:从0开始在visual studio上安装opencv(超详细,针对小白)),但是中间出现了一些别人没有遇到的问题,虽然原因没有找到,但是本人给出一些暂时的解决办法: 问题1: 我在安装库命令行使用的是 .\vcpkg.exe install opencv 我的电脑是x64,vcpkg在这条命令后默认下载的也是opencv2:x6