Linux用のWindowsサブシステムの2番目のイテレーションであるWSL2を使用すると、仮想マシン(VM)のオーバーヘッドなしで、Windows上でネイティブにLinux環境を実行できます。 Windowsともうまく統合され、Linuxで使い慣れているほとんどのコマンドラインツール、ユーティリティ、およびアプリケーションにアクセスできます。
このガイドでは、WSL2ゲストがpodman
を実行できるようにする方法を説明します。 、skopeo
、またはbuildah
選択したLinuxディストリビューション(Microsoftストアから入手可能)を使用して、Windows内からコマンドを実行します。 Fedora LinuxホストOSの出発点から来て、私はWindows内から最も使い慣れたツールを有効にして使用する方法に興味がありました。
前提条件:WSL 2
WSL 2をインストールするには、WSLインストールページに移動します。
Powershellを使用して、WSL2がデフォルトで有効になっていることを確認します。
PS> wsl –set-default-version 2
WSL1とWSL2の主な違いについては、WSLのドキュメントを参照してください。
Linux用のWindowsサブシステムは長い道のりを歩んできました。 Microsoftは、ホストWindowsOSとゲストLinuxオペレーティングシステムの分離を事実上見えなくするために懸命に取り組んできました。各システムのカーネルにある特別なドライバーにより、さまざまなシェルとコマンドウィンドウ間でコマンドを簡単に実行し、ファイルシステムの相互アクセスを可能にします。
次のコマンドを使用してWSL2カーネルを正しく使用していることを確認し、任意のゲストで出力できます。
$ uname -a
Linux BLD 5.10.16.3-microsoft.standard-WSL2 #1 SMP Fri Apr 2 22:23:49
UTC 2021 x86_64 x86_64 GNU/Linux
WSL 1ゲストは、カーネルバージョンを4.14または同様のものとして報告します。
ゲストに少し手を加えるだけで、さまざまなホームディレクトリファイル(.aws、.sh、.configなど)のシンボリックリンクなど、統合をさらにシームレスにすることができます。 $HOMEディレクトリからこれを実現する方法のヒントがあります。
Linuxディストリビューションをインストールする
Linuxディストリビューションをインストールするには、Microsoftストアでお気に入りを見つけてください。
この記事では、Fedoraを使用していますが、他のディストリビューションを試すことができます。 Podmanはディストリビューション間でうまく機能するため、最も使い慣れたディストリビューションを使用できます。いくつかのマイナーな構成調整が必要になる場合がありますが、それらは通常、ディストリビューションおよびpodmanのドキュメントに記載されています。 Fedoraを選んだのは、最新のpodmanを機能させるために追加のセットアップを必要としないディストリビューションだったからです。
最初の起動時に、VMと関連テクノロジーがインストールされます。最初のユーザー(sudoアクセスを取得)のパスワードを選択するように求められます。
podmanをインストール
Linuxディストリビューションをインストールしてユーザーで構成したら、通常どおりpodmanをインストールできます。
$ sudo dnf install podman
しばらくすると、podmanがインストールされ、準備が整います。すべてが期待どおりに機能していることを確認できます:
$ podman info
host:
arch: amd64
buildahVersion: 1.22.3
cgroupControllers: []
cgroupManager: cgroupfs
cgroupVersion: v1
[...]
version:
APIVersion: 3.3.1
OsArch: linux/amd64
Version: 3.3.1
そこから、通常どおりに画像を作成してpodmanを使用できます。
WSL統合のおかげで、podmanはPowerShellまたはコマンドプロンプトからもアクセスおよび使用できます:
buildah
のインストールと使用 およびskopeo
コマンドはまったく同じプロセスです。
Busyboxテスト
podman
を確認するための簡単なテストとして 職場では、Busyboxコンテナをプルして実行できます。 BusyBoxはオープンソース(GPL)プロジェクトであり、ls, mv, ln, mkdir, more, ps, gzip, bzip2, tar
を含む400近くの一般的なコマンドの簡単な実装を提供します。 、およびgrep
、これにより、コンテナやこのような単純なテストに適した最小限の環境になります。
まず、デフォルトのイメージリポジトリでBusyboxコンテナを検索します。これは、LinuxターミナルまたはPowershellのいずれかで実行できます。
$ podman検索busyboxのINDEX名称説明
docker.io docker.io/library/busybox Busyboxのベースイメージ
docker.io docker.io/radial/busyboxplusフルチェーンを
$ podman search busybox
INDEX NAME DESCRIPTION
docker.io docker.io/library/busybox Busybox base image
docker.io docker.io/radial/busyboxplus Full-chain...
docker.io docker.io/yauritux/busybox-curl Busybox with CURL
試したいものを実行します:
$ podman run -it docker.io/library/busybox
/ #
コンテナを使用し、いくつかのコマンドを実行してすべてが期待どおりに機能することを確認してから、
Linuxコンテナ
- Linuxコンテナとは何ですか?
- コンテナ用語の概要
- ダウンロード:Containers Primer
- Kubernetesオペレーター:コンテナオーケストレーションプラットフォームの自動化
- eBook:クラウドネイティブアプリを設計するためのKubernetesパターン
- Kubernetesとは何ですか?
はじめに
現在のLinuxディストリビューション、podman、およびWindowsサブシステムがここでいかに簡単に連携しているかに驚いたことを認めます。 WindowsのコンテナツールとLinuxとの統合に多くの素晴らしい仕事が費やされたことは明らかです。このガイドが、他の人がこの同じ出発点に簡単に到達し、生産性を高め始めるのに役立つことを願っています。
ボリュームの操作、ゲストとホスト間のネットワークサービスの公開、それらのコンテナーでのLinux機能の公開など、詳細なフォローアップには多くの優れた候補があります。非常に多くのツールが利用可能であるため、コミュニティがそれらを掘り下げる作業を短時間で行うことができると確信しています。