ドッカーの使用
1. ドッカーの概念
通常の仮想マシンとの比較
特性 | 通常の仮想マシン | ドッカー |
---|---|---|
クロスプラットフォーム | 通常、Windows/Mac などのデスクトップ レベルのシステムでのみ実行でき、グラフィカル インターフェイスのないサーバーでは実行できません。 | あらゆる種類の Windows や Linux など、サポートされているシステムは多数あります。 |
パフォーマンス | システム全体が仮想化されるため、パフォーマンスの損失が大きく、メモリの使用量も多くなります。 | 優れたパフォーマンス。ソフトウェアに必要な実行環境のみを仮想化し、無駄な構成を最小限に抑えます。 |
オートメーション | すべてを手動でインストールする必要がある | 1つのコマンドで必要な環境を自動的にデプロイ可能 |
安定性 | 安定性は高くなく、システムごとに大きな違いがあります。 | 優れた安定性、異なるシステムを同じ方法で導入可能 |
コンセプト
Docker はアプリケーションのパッケージ化、配布、展開のためのツールです。
1、镜像Image、容器Container、仓库Repository
- Mirror: これは、簡単に配布してインストールできるソフトウェア インストール パッケージとして理解できます。
- コンテナ: インストール後のソフトウェアの状態であり、各ソフトウェアの実行環境が独立して隔離されており、これをコンテナと呼びます。
- ウェアハウス: 画像は拡散しやすく、ウェアハウスは画像を拡散するための専用の場所で、Github に似ているというか、さまざまな画像を保管するミラー ストアと考えることができます。
2、打包、分发、部署
- パッケージ化: ソフトウェアを一緒に実行するために必要な依存関係、サードパーティのライブラリ、およびソフトウェアをインストール パッケージにパッケージ化することを意味します。
- 配布: パッケージ化された「インストール パッケージ」をミラー ウェアハウスにアップロードすると、他の人がそれを簡単に入手してインストールできます。
- 導入: 「インストール パッケージ」を使用すると、Windows/Mac/Linux のいずれであっても、1 つのコマンドでアプリケーションを実行し、まったく同じ動作環境を自動的にシミュレートできます。
Docker導入のメリット
従来のアプリケーション開発・デプロイ方法:Windows上で自分で開発・テスト→実行環境を構築し、Linuxサーバにデプロイする。
質問: 自分のマシンでの実行には問題ありませんが、サーバーにアクセスするとさまざまな問題が発生します。
Docker を使用してプロセスを開発およびデプロイします。Windows 上で自分で開発およびテストします --> Docker イメージとしてパッケージ化します (ソフトウェア インストール パッケージとして理解できます) --> さまざまなサーバーにデプロイするには 1 つのコマンドのみが必要です
利点: 異なるマシン上で実行する場合でも、一貫した動作環境が保証され、私のマシンは正常に動作しているのに、あなたのマシンに問題が発生するという状況は発生しません。
docker の使い方の簡単な紹介
- プロジェクトに必要な手順は 3 つだけです。現在のディレクトリに dockerfile ファイルを追加します -> docker build でイメージを作成します -> docker run コンテナ コマンドを実行した後、プロジェクトを実行できます。この時点で、コンテナが形成されます。
- ただし、デプロイするたびに、必ず docker build を実行してイメージを作成 -> docker run を実行する必要があり、コンテナを実行するのは非常に面倒なので、dockerfile ファイルに指定して、同時に有効にすることができます
挂载目录
最初の 2 つのコマンドを保存します。 - 1 つのプロジェクトには 1 つのコンテナーがあり、2 つのプロジェクトには 2 つのコンテナーがあります。フロントエンド サービスとバックエンド サービスなど、2 つのコンテナーはどのように通信しますか? 現時点では、2 つのコンテナーが同じ仮想ネットワーク テストを指定できます
创建虚拟网络docker network create test-net
。 docker run. -net を実行して相互に通信します - 2 つのコンテナ: Web プロジェクト + Redis。プロジェクトがより多くのサードパーティ ソフトウェアに依存する場合、より多くのコンテナを管理する必要があります。docker build + docker run を実行し、ネットワークを指定するには、それぞれを個別に構成する必要があります。これはさらに面倒です。プロジェクト
而docker-compose
複数のサービスがまとめられ、ワンクリックで実行されるため、仮想ネットワークを構成する必要がなくなります。docker-compose のすべてのサービスは自動的に同じネットワークを使用し、docker-compose は別の yml ファイルを作成するだけで済みます。 总结下来:创建一个dockerfile文件+一个yml文件+执行docker-compose up -d 命令即可实现多个容器通信
-d 以后台的方式运行容器
dockerfile と docker-compose の違い
要約すると、Dockerfile は单个
コンテナーの構築プロセスとコンテンツを定義するために使用され、docker-compose は関連する複数のコンテナーの構成と操作を定義および管理するために使用されます。この 2 つは一緒に使用でき、Dockerfile によって構築されたイメージを docker-compose の構成で使用できます。
2. docker コマンドの概要:
1. イメージをビルドして実行する
コンパイルdocker build -t test:v1 .
-t
イメージ名とバージョン番号を設定するコマンドリファレンス: https://docs.docker.com/engine/reference/commandline/build/
走るdocker run -p 8080:8080 --name test-hello test:v1
-p
コンテナ内のポートをホストにマッピングする
--name
コンテナ名
-d
バックグラウンドプロセス
コマンドリファレンスドキュメント:
https://docs.docker.com/engine/reference/run/
2. よく使用されるコマンド
docker ps
現在実行中のコンテナを表示する
docker images
画像一覧を見る
docker rm container-id
指定されたIDのコンテナを削除します
docker stop/start container-id
指定したIDのコンテナを停止/起動します
docker rmi image-id
指定したIDの画像を削除します
docker network ls
ネットワークリストを表示する
docker volume ls
ボリュームリストを表示する
docker build -t test:v1 .
コンパイルし、-t
イメージ名とバージョン番号を設定します
3. ミラー加速源
画像アクセラレータ | ミラーアクセラレータのアドレス |
---|---|
Docker China 公式イメージ | https://registry.docker-cn.com |
DaoCloudミラーサイト | http://f1361db2.m.daocloud.io |
アズールチャイナミラー | https://dockerhub.azk8s.cn |
HKUSTミラーサイト | https://docker.mirrors.ustc.edu.cn |
アリ・クラウド | https://ud6340vz.mirror.aliyuncs.com |
キニウユン | https://reg-mirror.qiniu.com |
NetEaseクラウド | https://hub-mirror.c.163.com |
テンセントクラウド | https://mirror.ccs.tencentyun.com |
4. インストール
1. インストールパッケージをダウンロードする
デスクトップ版: https://www.docker.com/products/docker-desktop/
サーバーのバージョン: https://docs.docker.com/engine/install/#server
2. インストール パッケージを開いてしばらくロードすると、通常 2 つのオプションがポップアップ表示されます。古い Windows 10 以前のシステムでは、次の関連プロンプトが表示されます。最初のものを選択し、必要に応じて 2 番目のものを選択できます。
3. Docker デスクトップを開き、イメージをセットアップします
"registry-mirrors": ["https://registry.docker-cn.com"]
5. Dockerクイックインストールソフトウェア
Redis の Docker インストールをデモンストレーションする
Redis公式サイト:https://redis.io/
公式サイトからのダウンロードとインストールのチュートリアルにはソースコードによるインストール方法のみが記載されており、Windows版はありません。Windows バージョンを自分でインストールする場合は、他の人がコンパイルしたインストール パッケージを見つける必要があります。
Redis を見つけるための Docker 公式イメージ リポジトリ: https://hub.docker.com/
実行するコマンド:
docker run -d -p 6379:6379 --name redis redis:latest
# -d:后台运行
# -p:指定容器端口绑定到主机端口
# --name:给自己的容器起名称
コマンドリファレンス: https://docs.docker.com/engine/reference/commandline/run/
この時点で、Docker Desktop を開くと、コンテナーとイメージが表示され、コンテナーのステータスは実行中であることを示します。
Redisコンテナの実行ログが確認できます。
ターミナルに入力してredis-cli
cli モードに入ります
WordPressをインストールする
ファイルを書き込みます:docker-wordpress.yml
version: '3.1'
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wordpress:/var/www/html
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql
volumes:
wordpress:
db:
yaml ファイルと同じディレクトリでコマンドを実行します。
docker-compose -f docker-wordpress.yml -p test_wordpress up -d
# -p 指定项目名称,默认将使用所在目录名称作为项目名 ;
6. Dockerイメージのインストールと操作
1. 現在所有しているイメージを表示します。docker image ls
またはdocker images
私の鏡
2. イメージの削除:docker image rm 镜像名或镜像ID 或 docker rmi 镜像名或镜像ID
イメージを削除するための前提条件は、このイメージを使用しているコンテナがないことです。必要に応じて、最初にコンテナを削除してください。削除しない場合は、エラーが報告されます。
3. イメージをインストールします: docker pull [名称]:[版本]
、Docker インストール イメージの共通検索アドレスに移動します。
docker pull python:3.7
docker pull mongo
docker pull redis
docker pull mysql
docker pull nginx
docker pull node
docker pull centos
4. コンテナを実行します。
docker run [可选参数] 镜像名 [向启动容器中传入的命令] ,如果没有镜像,则会先下载镜像
共通のオプションパラメータ
- -d: デーモン コンテナーがバックグラウンドで実行されるように作成されるため、コンテナーの作成後にコンテナーが自動的にログインされなくなります。
- -p: ポート マッピング、つまりホスト ポート: コンテナ内のポートを示します。例: -p 8080:80 は、コンテナーのポート 80 をホストのポート 8080 にマップします。
- –name: 作成したコンテナに名前を付けます。(名前はデフォルトでランダムに付けられます。漢字はサポートされていません!!!)
- -v: ディレクトリ マッピング関係、つまりホスト ディレクトリ: コンテナ内のディレクトリを示します。注: ディレクトリ マッピングを実行し、ホスト上で変更を加えてから、それをコンテナ上で共有することをお勧めします。
- –network=host: ホストのネットワーク環境がコンテナにマッピングされ、コンテナのネットワークがホストのネットワークと同じになることを示します。各 Docker コンテナには、仮想 LAN に接続された独自のネットワーク接続スペースがあります。このコマンドを使用すると、コンテナとホストがネットワーク スペースを共有します。
- -i: コンテナーを「対話モード」で実行することを示します。
- -t: コンテナーが起動後にコマンド ラインに入るように指定します。これら 2 つのパラメーターを追加すると、コンテナーの作成時にログインできるようになります。つまり、擬似的な端末を割り当てます。
7. 自分だけの鏡を作る
1. docker_all フォルダーと docker_test.py ファイルを作成し、依存パッケージをエクスポートして実行します。pip freeze > requirements.txt
import sys,time
print(sys.version)
print("Hello, World!")
print(time.time())
2. dockerfile ファイルを作成し、プロジェクトが依存するイメージと、それが存在するディレクトリ フォルダーを次のように指定します。
# syntax=docker/dockerfile:1
# 第一行是解析器指令,始终用版本1语法的最新版本
# 指定基础镜像
FROM python:3.7-slim-buster
# 复制代码
ADD . /app
# 设置工作目录文件夹
WORKDIR /app
# 安装依赖
RUN pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
#当启动容器时候,执行程序
CMD ["python", "./docker_test.py"]
3. イメージの作成-t
: イメージ名とバージョン番号を設定します。イメージdocker build -f [dockerfile文件路径名] -t [创建的镜像名]:[tag] .
が 1 つあることに注意してください.
。初めてイメージを作成する場合は時間がかかります。しばらくお待ちください。
docker build -f dockerfile -t demo_1:v0 .
4. 現在所有しているイメージを表示します。docker image ls
図に示すように、イメージは正常に作成されています。
5. コンテナを起動します。docker run --name test_build_docker demo_1:v0
6. 画像を保存します。docker save -o demo.tar demo_1:v0
7. 画像を削除します: docker rmi 镜像id
、またはデスクトップバージョンに移動して画像を削除します
8. ディレクトリのマウント
既存の問題
-
Dockerで実行した後、変更したプロジェクトコードはすぐには反映されず、再コンパイルする必要があり
build
、run
非常に面倒です。-
# build:docker build -f E:\docker_all\dockerfile -t demo_1:v0 . # 未挂载:docker run --name c_test demo_1:v0 # 挂载:docker run --name a_test -v E:\docker_all:/docker_all -d demo_1:v0
-
-
ログ ファイルやデータベース バックアップ ファイルなど、コンテナ内で生成されたデータは、コンテナが削除されると失われます。
いくつかの取り付け方法
bind mount
ホスト ディレクトリをコンテナに直接マップします。コード ディレクトリや構成ファイルをハングするのに適しています。複数のコンテナに吊るすことができますvolume
ホスト上に作成されたコンテナによって作成および管理されるため、コンテナを削除しても失われることはありません。公式に推奨されている、より効率的な Linux ファイル システムで、データベース データの保存に適しています。複数のコンテナに吊るすことができますtmpfs mount
一時ファイルの保存に適しており、ホスト メモリに保存されます。複数のコンテナで共有することはできません。
ドキュメント参照: https://docs.docker.com/storage/
デモをマウントする (実行中にマウント)
bind mount方式:用绝对路径 -v D:/code:/app
volume方式: 只需要一个名字 -v db-data:/app
例:
docker run -p 8080:8080 --name test-hello -v D:/code:/app -d test:v1
スクリーンショットをマウントしないでください
マウント後のスクリーンショット
コマンドを実行してマウントするか、前のケースに従います。
docker run --name a_test -v F:\docker_project\abc:/app -d demo_1:v0
次に、デスクトップ上の Docker コンテナを開いて、[検査] の [マウント] をクリックして確認すると、パスは正常にマウントされています。このとき、ローカル コードを変更すると、コンテナ コードも同時に変更されます。
9. マルチコンテナ通信
仮想ネットワークを作成する
複数のコンテナと通信し、Python コンテナから Redis コンテナにアクセスしたい場合は、それらを同じネットワーク上に配置するだけで済みます。
デモ
# 创建一个名为test-net的网络
docker network create test-net
# 运行 Redis 在 test-net 网络中,别名redis
docker run -d --name redis --network test-net --network-alias redis redis:latest
# 修改python的redis连接地址为网络别名
r = StrictRedis(host='redis', port=6379, db=0, password=None)
# 运行 Python 项目,使用同个网络
docker run -p 8011:8011 --name test -v F:\docker_project\abc:/app --network test-net -d demo_1:v0
Pythonコードは次のように変更されます
# -*- coding: utf-8 -*-
"""
@Time : 2022/12/4
@Author: Shirmay
@Blog: https://blog.csdn.net/weixin_43411585/
@公众号: 逆向OneByOne
uvicorn docker_web:app --reload --host 127.0.0.1 --port 8011
"""
import uvicorn
from fastapi import FastAPI
from redis import StrictRedis
app = FastAPI()
@app.get("/{_word}")
def index(_word):
"""http://127.0.0.1:8011/user"""
print("web_return", _word)
r = StrictRedis(host='redis', port=6379, db=0, password=None)
r.rpush('web_name', _word)
print("redis_llen:", r.llen('web_name'))
return f"{
r.llen('web_name')}_{
_word}"
if __name__ == '__main__':
uvicorn.run("docker_web:app", host='0.0.0.0', port=8011, reload=True)
dockerfileファイルの変更
# syntax=docker/dockerfile:1
# 第一行是解析器指令,始终用版本1语法的最新版本
# 基础镜像
FROM python:3.7-slim-buster
# 设置工作目录文件夹
WORKDIR ./app
# 复制依赖文件
COPY requirements.txt requirements.txt
# 安装依赖
RUN /usr/local/bin/python -m pip install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple/
RUN pip install uvicorn -i https://mirrors.aliyun.com/pypi/simple/
RUN pip install fastapi -i https://mirrors.aliyun.com/pypi/simple/
RUN pip install redis -i https://mirrors.aliyun.com/pypi/simple/
# RUN pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
# 复制其他的脚本文件
COPY . .
#当启动容器时候,执行程序
CMD ["python", "./docker_web.py"]
ビルドと実行コマンドを実行する
次に、http://localhost:8011/aa を開くと、正常にアクセスできることがわかります。
# 1、构建镜像并挂载
docker build -f F:\docker_project\abc\dockerfile -t demo_2:v0 .
# 不设置虚拟网络,直接run
docker run --name d_test -p 8011:8011 -v F:\docker_project\abc:/app -d demo_2:v0
# 2、然后可以浏览器打开 http://localhost:8011/aa 测试看看,会发现一直无法加载,原因是无法连接redis
# 3、下载redis
docker pull redis
# 4、设置网络
docker network create test-net
docker run -d --name redis_net --network test-net --network-alias redis redis:latest
# 5、修改python代码以及redis连接地址
@app.get("/{_word}")
def index(_word):
"""http://127.0.0.1:8011/user"""
print("web_return", _word)
r = StrictRedis(host='redis_net', port=6379, db=0, password=None)
r.rpush('web_name', _word)
print("redis_llen:", r.llen('web_name'))
return f"{
r.llen('web_name')}_{
_word}"
# 6、运行 Web 项目,使用同个网络
docker run -p 8011:8011 --name test2 -v F:\docker_project\abc:/app --network test-net -d demo_2:v0
# 7、再次浏览器打开 http://localhost:8011/aa 测试看看
10. Docker-Compose は複数のコンテナーの実行を管理します
既存の問題
前のセクションでは、Web プロジェクト + Redis という 2 つのコンテナーを実行しました
。プロジェクトがより多くのサードパーティ ソフトウェアに依存する場合は、より多くのコンテナーを管理する必要があります。それぞれを個別に構成して実行する必要があり、ネットワークを指定する必要があります。
このセクションでは、docker-compose を使用してプロジェクトの複数のサービスをまとめ、ワンクリックで実行します。
Docker Compose をインストールする
- Docker のデスクトップ バージョンをインストールする場合は、すでに含まれているため、追加のインストールは必要ありません。
- グラフィカル インターフェイスのないサーバー バージョンの Docker の場合は、インストール ドキュメントを個別にインストールする必要があります。
- 実行して
docker-compose
インストールが成功したかどうかを確認します
脚本
プロジェクトが依存する複数のサービスをまとめるには、プロジェクトがdocker-compose.yml
依存するサービスを説明するファイルを作成する必要があります。
参考ドキュメント: https://docs.docker.com/compose/
version: "3.7"
services: # app服务和redis服务
app: # 服务名字app
build: ./ # 指定使用当前目录中的 Dockerfile 来构建镜像
ports:
- 8011:8011
volumes:
- ./:/docker_all # 挂载目录,把当前目录挂载到/docker_all这个目录下
environment:
- TZ=Asia/Shanghai # 设置容器的环境变量,这里将时区设置为 Asia/Shanghai。
redis: # 服务名字,在python代码中连接redis,host就是填写这个名字(r = StrictRedis(host='redis', port=6379, db=0, password=None))
image: redis:5.0.13
volumes:
- redis:/data # 将一个名为 redis 的卷挂载到容器的 /data 目录中
environment:
- TZ=Asia/Shanghai
volumes:
redis:
走り始める
docker-compose.yml
ファイルが置かれているディレクトリで次を実行するdocker-compose up
と、実行が開始されます。
コマンドリファレンス: https://docs.docker.com/compose/reference/up/
docker-compose その他のコマンド
- バックグラウンドで実行するには、-d パラメータを追加するだけです: docker-compose up -d
- 複数のサービスの現在の実行ステータスを表示します: docker-compose ps
- 実行を停止します: docker-compose stop
- 再起動: docker-compose restart
- 単一のサービスを再起動します: docker-compose restart service-name
- コンテナー コマンド ラインを入力します: docker-compose exec service-name sh
- コンテナーの実行ログを確認します: docker-compose logs [サービス名]
11. リリースと展開
鏡倉庫のご紹介
ミラー ウェアハウスは、構築する「インストール パッケージ」を保存するために使用されます。Docker は公式にミラー ライブラリを提供します。これには、多数のミラーと基本的にさまざまなソフトウェアに必要なすべての依存関係が含まれています。必要なものを直接検索できます。
配布を容易にするために、構築したイメージを docker が提供するイメージ ライブラリにアップロードすることもできます。
もちろん、独自のプライベート画像ライブラリを構築したり、Alibaba Cloud や Tencent Cloud などのさまざまな国内主要メーカーが提供する画像ホスティング サービスを使用することもできます。
画像をアップロードしてください
- まずアカウントを登録する必要があります
- ミラーライブラリを作成する
- ビルドイメージ:
docker build -f E:\docker_all\dockerfile -t test:v1 .
- コマンドラインのログインアカウント:
docker login -u 用户名
- 新しいタグを作成します。名前は登録したアカウントと同じである必要があります
docker tag test:v1 用户名/test:v1
- 押し上げる
docker push 用户名/test:v1
- デプロイして試してみる
docker run -dp 8080:8080 用户名/test:v1
Alibaba Cloud コンテナ ホスティング
Docker の公式イメージ ホスティングでは、アップロードやダウンロードが遅すぎる場合があります。より高速な速度が必要な場合は、Alibaba Cloud の無料イメージ ホスティングを使用できます。Alibaba Cloud
にログインします。
バックアップデータの移行
エラーの報告と解決
1、WSL2のインストールが不完全です。
解決策ステップ 1: [コントロール パネル] -> [プログラム] -> [プログラムと機能] で次のチェック ボックスをオンにします。それでも問題が解決しない場合は、ステップ 2 に進みます。
解決策ステップ 2:リンクをクリックして、WSL2 の最新バージョンをインストールします。ダウンロード アドレス。まだ問題がある場合は、ステップ 3 を参照してください。
解決策ステップ 3: cmd を実行しnetsh winsock reset
、コンピューターを再起動して問題を解決する
2、Docker Desktop がハイパーバイザーを検出できません。
問題は、Hyper-V が無効になっているか、ハイパーバイザー エージェントが実行されていないことです。
オプション 1 (Hyper-V が完全に無効になっているか、インストールされていない場合)
docker デスクトップは Windows hyper-v に基づいているため、hyper-v コンポーネントが有効になっていることを確認する必要があります。以下のPowerShell(管理者)コマンドで起動できます。
1. 管理者として CMD を開きます。
2. Hyper-V を有効にします。
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
または、Windows の機能の有効化と無効化で Hyper-V を無効化し、再起動後に有効化してください。
オプション 2 (Hyper-V 機能が有効になっているが機能しない場合)
hyper-v コンポーネントが有効になったら、そのデーモン プロセスが自動的に実行されることを確認する必要があります (問題はここにあり、デーモン プロセスが実行されていません)。これは、次の PowerShell (管理者) コマンドで開始できます。
bcdedit /set hypervisorlaunchtype auto
コンピューターを再起動し、Docker Desktop を起動すると、正常に実行されます。
3、エラーが発生しました
解決策:
[コントロール パネル] -> [プログラム] -> [Windows 機能の有効化または無効化]、Windows 仮想化と Linux サブシステム (WSL2) の有効化
コマンドラインからLinuxカーネルをインストールする
wsl.exe --install -d Ubuntu
Microsoft Store を開いて Linux を検索してインストールし、最新バージョンの Ubuntu または Debian を選択することもできます。
上記のコマンドをインストールできず、Microsoft ストアを開けない場合があります。この問題が発生した場合は、https://blog.csdn.net/qq_42220935/article/details/104714114 を参照してください。
起動時にハイパーバイザーを設定する
bcdedit /set hypervisorlaunchtype auto
PowerShell を管理者権限で開くように注意してください
BIOS で仮想化がオンになっていることを確認してください。以下のようにオンになっているかどうかを確認します。
無効になっている場合は、起動時に F2 キーを押して BIOS に入り、有効にしてください。設定方法がわからない場合は、自分のマザーボードの設定方法をオンラインで検索できます。Intel および AMD の設定は、わずかに異なります。
ws 機能、Windows 仮想化と Linux サブシステム (WSL2) を有効にする
コマンドラインからLinuxカーネルをインストールする
wsl.exe --install -d Ubuntu
Microsoft Store を開いて Linux を検索してインストールし、最新バージョンの Ubuntu または Debian を選択することもできます。
上記のコマンドをインストールできず、Microsoft ストアを開けない場合があります。この問題が発生した場合は、https://blog.csdn.net/qq_42220935/article/details/104714114 を参照してください。
起動時にハイパーバイザーを設定する
bcdedit /set hypervisorlaunchtype auto
PowerShell を管理者権限で開くように注意してください
BIOS で仮想化がオンになっていることを確認してください。以下のようにオンになっているかどうかを確認します。
無効になっている場合は、起動時に F2 キーを押して BIOS に入り、有効にしてください。設定方法がわからない場合は、自分のマザーボードの設定方法をオンラインで検索できます。Intel および AMD の設定は、わずかに異なります。