找回密码
 注册
首页 ≡≡网络技术≡≡ 服务器 windows10基于wsl2安装docker详细过程及问题解决 ...

windows windows10基于wsl2安装docker详细过程及问题解决

灰儿 2023-6-18 16:23:18
一、Docker是什么?
Docker 是一个开放源代码软件,是一个开放平台,一个应用打包、分发、部署的工具, Docker允许用户将基础设施(Infrastructure)中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。

Docker容器与虚拟机类似,但二者在原理上不同。容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、高效地利用服务器。 容器更多的用于表示 软件的一个标准化单元。由于容器的标准化,因此它可以无视基础设施(Infrastructure)的差异,部署到任何一个地方。另外,Docker也为容器提供更强的业界的隔离兼容。

你也可以把它理解为一个轻量的虚拟机,它只虚拟你软件需要的运行环境,多余的一点都不要,而普通虚拟机则是一个完整而庞大的系统,包含各种不管你要不要的软件。

跟普通虚拟机的对比
特性普通虚拟机Docker
跨平台通常只能在桌面级系统运行,例如 Windows/Mac,无法在不带图形界面的服务器上运行支持的系统非常多,各类 windows 和 Linux 都支持
性能性能损耗大,内存占用高,因为是把整个完整系统都虚拟出来了性能好,只虚拟软件所需运行环境,最大化减少没用的配置
自动化需要手动安装所有东西一个命令就可以自动部署好所需环境
稳定性稳定性不高,不同系统差异大稳定性好,不同系统都一样部署方式

打包、分发、部署
打包:就是把你软件运行所需的依赖、第三方库、软件打包到一起,变成一个安装包
分发:你可以把你打包好的“安装包”上传到一个镜像仓库,其他人可以非常方便的获取和安装
部署:拿着“安装包”就可以一个命令运行起来你的应用,自动模拟出一摸一样的运行环境,不管是在 Windows/Mac/Linux。

Docker 通常用来做什么
1.应用分发、部署,方便传播给他人安装。特别是开源软件和提供私有部署的应用
2.快速安装测试/学习软件,用完就丢(类似小程序),不把时间浪费在安装软件上。例如 Redis / MongoDB / ElasticSearch / ELK
3.多个版本软件共存,不污染系统,例如 Python2、Python3,Redis4.0,Redis5.0
4.Windows 上体验/学习各种 Linux 系统

重要概念:镜像、容器
镜像:可以理解为软件安装包,可以方便的进行传播和安装。
容器:软件安装后的状态,每个软件运行环境都是独立的、隔离的,称之为容器。

二、安装Docker
1. 安装 Docker 前的准备:Docker for windows 安装和其他软件安装是一样的,但是有个前提,就是电脑必须启用虚拟化功能,在Windows没有推出WSL2之前,你可能需要借助专业版Windows的Hyper-V,但是有了WSL2之后,可以不用安装Hyper-V等任何虚拟机了。

另外有一点很重要,就是微软要求 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11。

以基于WLS2安装Docker for windows为例,首先需要在Windows的程序与功能中启用Windows的Linux子系统和虚拟机功能平台:

开启windows功能.png
备注:如果用wsl1需要打开Hyper,只用wsl2不打开Hyper也可以。

重启后,打开任务管理器查看是否有虚拟化启用

02.png

2. 安装WSL2
WSL,即Windows Subsystem on Linux,中文叫“适用于 Linux 的 Windows 子系统”。可以在windows里,直接启动一个linux系统。因为docker依赖linux内核,只能在linux下使用,windows就需要安装linux虚拟机来运行,而微软已经在win10内置了一个轻量级虚拟机,WSL2 便是运行在虚拟机上的一个完整的 linux 内核,所以需要利用WSL2安装docker。

下载wsl2需要的linux内核:
网址: https://docs.microsoft.com/zh-cn/windows/wsl/wsl2-kernel

更新WSL地址:
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

点击下载最新的更新包,下好后双击运行安装即可。

将WSL2设置为默认版本:管理员身份运行Windows PowerShell,运行下面的命令。

  1. wsl --set-default-version 2
复制代码

01.png

3. 安装Docker Desktop for Windows

下载安装包Docker for windows下载地址:  
https://desktop.docker.com/win/main/amd64/Docker Desktop Installer.exe

下好后直接双击运行安装即可,以下为安装界面

001.png

安装完成后启动成功的界面如下:

docker界面.png

启动Docker Desktop for Windows,选择 Settings --> General,启动基于WSL2的引擎复选框(Use the WSL 2 based engine),一般默认已勾选了。

wsl2.png

用PowerShell运行 wsl -l -v会发现已经创建了两个发行版了

03.png

到这儿安装就完成啦

更改镜像源
在国内从官方的Docker Hub拉取镜像经常会比较感人,所以我们需要利用国内的镜像源或者加速器

科大镜像:https://docker.mirrors.ustc.edu.cn/
网易:https://hub-mirror.c.163.com/
  1. "registry-mirrors": [
  2.         "https://docker.mirrors.ustc.edu.cn",
  3.         "https://registry.docker-cn.com",
  4.         "http://hub-mirror.c.163.com",
  5.         "https://mirror.ccs.tencentyun.com"
  6.     ]
复制代码

165859b9989il7yksl3jpk.png

当配置某一个镜像源地址之后,若发现拉取不到镜像,切换一个地址就行。

三、使用Docker
Docker提供了许多命令和选项,以帮助你运行和管理容器。下面是一些常用的命令:
docker pull <镜像名称>     #从Docker镜像仓库中获取镜像。
docker images    #列出当前系统上所有的镜像。
docker ps           #列出当前正在运行的所有容器。
docker run        #使用指定的镜像在新的容器中运行一个命令。
docker stop <容器ID>      #停止一个正在运行的容器。
docker rm <容器ID>       #删除一个停止的容器。

docker run 命令的 -i -t -d 选项的作用
'-d'告诉Docker在后台分离并运行,'-i'开始交互式会话,'-t'模拟一个终端。
docker run -d ubuntu /bin/bash      #-d为后台启动,exit 退出后容器不会关闭
docker run -it ubuntu /bin/bash      # -it为交互式启动,exit 退出后容器会被关闭
docker run -dit ubuntu /bin/bash    #-dit为 -d 和 -it 联用
安装一个镜像:


启动nextcoud实例设置图形界面:
docker实例设置.png



您需要登录后才可以回帖 登录 | 注册
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。