Windows + WSL2 の docker インストール方法、python 環境の設定、ファイルの転送、.py スクリプトの実行

1 前に書いた

1.1 ドッカーとは?

ご存知のように、コード再現で一番厄介なのが実行環境の問題で、READMEでは環境が明確に設定されていますが、ライブラリのバージョンやシステム、ハードウェアレベルの違いにより、不可解なエラーが発生することがあります。

そんな状況を一変させたのがdockerプラットフォームの登場で、技術者が開発環境をインストールし、コード開発を完了してパッケージ化したコンテナ(コンテナ)を作成し、ユーザーはイメージ(image)をダウンロードして、この自己完結型の開発環境を再現することができます。プログラムをスムーズに使用できるように、つまり「ビルド、共有、および実行」というスローガン。

1.2 WSL2 とは?

WSL2 (Windows Subsystem for Linux 2) は、2021 年に Windows 10 で最初にリリースされた Microsoft 独自の Linux サブシステムであり、Windows 10 と Windows 11 の両方にインストールして実行できます。

Docker は Linux システムで実行する必要があるため、Windows システムは WSL2 を呼び出して docker を実装する必要があります。

2 インストール

2.1 Windowsサブシステム機能が有効になっているか確認する

  • 左下隅で「Windows の機能の有効化または無効化」を検索します
  • 「Linux用Windowsサブシステム」を見つけます
  • 前のボックスにチェックが入っていることを確認してください

2.2 WSL2 の更新

wsl --set-default-version 2

WSL2 に関するその他のインストールに関する質問については、次を参照してください。

https://learn.microsoft.com/zh-cn/windows/wsl/install-manual#step-4—download-the-linux-kernel-update-package

2.3 Docker のインストール

WSL2 に関するその他のインストールに関する質問については、次を参照してください。

https://docs.docker.com/desktop/install/windows-install/

3 Docker プラットフォーム機能の紹介

3.1 コンテナ、イメージ、およびデータ ボリューム

Docker Desktop を開くと、左側に 3 つの主要な機能があることがわかります。

ここに画像の説明を挿入

  • コンテナ: 実行中のコンテナ
  • 画像: 環境ファイル。右上隅の検索から必要な環境を見つけることができます
  • データ ボリューム (ボリューム): Windows システムとのデータ交換に便利なコンテナーにマウントされたハード ディスク

3.2 Windows Powershell から Docker を制御する

Docker Desktop を使用すると、最近のアクティビティを簡単に表示および削除できますが、操作が明確で明確ではないため、コマンド ラインでコマンドを実行することをお勧めします. 最も一般的なコマンドは次のとおりです。

  • ミラー: docker pull xxx (ダウンロード) / docker run xxx (インストール) / docker image ls (リスト)

  • コンテナー: docker start xxx (開始) / docker stop xxx (停止) / docker container ls (リスト)

  • データボリューム: docker volume create xxx (作成) / docker volume ls (リスト)

3.3 正しい姿勢

  1. 必要なイメージをダウンロードします (Python 3 などの環境)
  2. ボリューム(データディスク)を準備する
  3. 実行するコードとデータをボリュームに入れる
  4. コンテナ(コンテナ)を作成し、環境をインストールし、ボリュームをマウントする
  5. コンテナーで再現可能な環境でコードを実行する

4 独自の Python 環境でコンテナを再現し、コードを実行する

4.1 Python イメージファイルの準備

Docker Desktop に戻り、右上隅で python を検索し、目的のバージョンを選択して、Pull をクリックします。

完了すると、画像にもう 1 つの python が表示されます。

ここに画像の説明を挿入

4.2 データディスクの作成

Windows Powershell を開き、次のコマンドを入力します。

完了すると、Docker Desktop のボリュームに新しく追加されたデータ ディスクが表示されます。

docker volume create --name disk

4.3 転送コードファイル

データ ディスクの実際の場所は、Windows ファイル エクスプローラーからアクセスできます。

\wsl.localhost\docker-desktop-data\data\docker\volumes\disk_data

この時点で、この場所に test.py を作成またはコピーできます。内容は次のとおりです。

print('Hello World!')

答え: この変な道はどうしたの?

WSL2 を使用して Windows によって作成された Linux 環境で動作する docker プラットフォームの原理を思い出してください. つまり、上記のパスは次のように理解できます。

  1. WSL2 は、ネットワークの場所 \wsl.localhost に Linux システムを作成します。
  2. docker プラットフォームはこのシステムにインストールされているため、docker-desktop-data フォルダーに
  3. docker がハードディスクを作成したため、\data\docker\volumes 内にあります

4.4 コンテナの作成、イメージファイルのインストール、データディスクのマウント

Windows Powershell を開き、次のコマンドを入力します。

docker run -it --name test -v disk:/mnt python

この時点で、コンテナの python 環境に入ったことがわかります。コンテナのシステムは Linux システムです。

Python 3.11.0 (main, Nov 15 2022, 19:58:01) [GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

回答: 実行中のパラメータは何ですか?

  • -it: コンテナーをインタラクティブな形式で作成します。そうしないと、Powershell は Linux サブシステムに入ることができません。
  • –name test: コンテナーの名前は test で始まります
  • -v disk:/mnt: 作成したディスク・ハードディスクをコンテナーの /mnt フォルダーにマウントします
  • python: インストールして python 環境に入ります

4.5 データ ディスク内のコードを実行する

この時点で、Docker が提供する Linux サブシステム用のコンテナー テストを準備しました. Python 環境がコンテナーにインストールされ、コンテナーの /mnt フォルダーが、送信されたコードを含むシステムのディスク フォルダーと共にマウントされます。 、さらなる実行を待っています。

最初にこのコンテナーに入ります。

ここに画像の説明を挿入
次に、Linux と同様に、コンテナーの作業ディレクトリを /mnt に切り替えてから、コードを実行します。

cd mnt
python test.py

これで完了です:

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/zfqy2222/article/details/128099845