Windows 11 の「WSL2」に「AlmaLinux」をインストーした後に、その AlmaLinux に「Docker」をインストールし Docker 環境を構築します
WSL2 機能を有効化
Windowsロゴ + R キーを押下し、「ファイル名を指定して実行」を起動
以下を入力し、Enter キー
optionalfeatures
以下の機能にチェックを入れて「OK」をクリック
- Linux 用 Windows サブシステム
- 仮想マシンプラットフォーム
PC の「再起動」を実施
PC 再起動後「コマンドプロンプト」を起動し、以下のコマンドを実行
wsl --set-default-version 2
これは、新しい Linux ディストリビューションのインストール時に、どのバージョンの WSL を既定値にするかを指定しています。
AlmaLinux インストール
▼「Microsoft Store」を起動
▼ 検索ボックスに「almalinux」と入力
「AlmaLinux 9」をクリック
▼「入手」をクリック
▼「開く」をクリック
▼ 新規に作成するユーザーの「ユーザー名」を入力
▼「パスワード」を入力
▼ もう一度「パスワード」を入力
▼ プロンプトが表示された
▼ とりあえず以下のコマンドでアップデートを実施。
sudo dnf update -y
▼ リポジトリを追加
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
▼ Docker パッケージのインストール
sudo dnf install -y docker-ce docker-ce-cli containerd.io
※上記「リポジトリの追加」と「Docker パッケージインストール」については、以下のサイトを参考にさせていただきました。感謝。WSL2:AlmaLinux 8.5にdockerを用意した時の記録
Docker Desktop for Windows インストール
以下の URL より Docker Desktop Installer をダウンロードし、Docker Desktop for Windows をインストールします。
https://www.docker.com/products/docker-desktop/
▼ Hyper-V ではなく WSL2 を使うようにするため、以下にチェックを入れたままにします。
「Use WSL 2 instead of Hyper-V (recommended)」
▼ インストールが開始されます。
▼ インストールは数分で完了します。
▼ Docker Desktop を起動します。
▼「Accept」をクリック
▼「あなたの仕事は何ですか?」と問われますが「Skip」でいいでしょう。
▼「設定(歯車)」アイコンをクリック
Windows 起動時に Docker Desktop を自動起動するよう以下にチェックを入れておきます。
「Start Docker Desktop when you log in」
▼ AlmaLinux 9 を Docker と統合させます。
「Resources」→「WSL Integration」
「AlmaLinux9」を オン。
「Apply & restart」をクリック
Docker環境の確認
▼「ターミナル」アプリ(AlmaLinux)を起動します。
以下のコマンドを実行し「hello-world」イメージを Docker Hub から pull(引っ張ってくる)します。
docker run hello-world
docker run コマンドは、「docker create」と「docker start」を合わせ持ったコマンドです。
ローカル PC に docker イメージがない場合は、Docker Hub からイメージの取得(pull)もしてくれます。
Docker 環境ができた。
Dockerコマンドで状態確認
Dockerイメージの確認
PC ローカルに存在する Docker イメージを確認するコマンドです。
▼ コマンド
docker images
Dockerコンテナ状態の確認
作成されたコンテナを一覧表示するコマンドです。
▼ コマンド(-a オプションで停止中コンテナ含む)
docker ps -a
CentOS 8 のコンテナ作成とコマンド解説
CentOS 8 のコンテナを作成するコマンド例です。
▼ コマンド
docker run -it --name mycentos centos:8 /bin/bash
-it オプション
例) docker run -it
interactive の「i」
コンテナの標準入力にアタッチします。
接続されていない場合でも STDIN を開いたままにしておきます。
簡単に言うと、ホストからの入力を受け付けるようにします。
TTY の「t」
コンテナに、「擬似 TTY」を割り当てます。
「-it」オプションは、ホストからコンテナにコマンドを送信し、コンテナ側を直接操作したい時によく使うオプションです。
コンテナ側を直接操作したい場合は、必ず指定しておきましょう。
また、docker run コマンドでコンテナ作成時に「-it」オプションを付けず作成した場合、そのコンテナの終了後に、再スタート(docker start)させたとしても、コンテナが起動しませんでした。
docker run コマンドでコンテナ作成時に「-it」オプションを付けてコンテナ作成した場合は、そのコンテナの終了後に、docker start コマンドを実行することで、コンテナが起動しました。
--name オプション
例) --name mycentos
コンテナに自分の好きな、または分かりやすい名前を付けます。
この名前は「コンテナ ID」と同様に、docker start や docker rm コマンドの引数として利用できます。
コンテナを利用する上で、名前を付けておく方がコマンド操作などが楽になります。
イメージ指定:タグ
例) centos:8
「centos」がイメージ名で、「8」がタグ(主にバージョンを明記)です。
タグを指定しない場合、「latest」(最新バージョン)が pull されます。
/bin/bash
例) /bin/bash
ここにはコマンドを指定するようです。
「/bin/bash」を指定しなくても、bash が起動しましたが、とりあえず指定しておいた方が良いかと思います。
dockerコマンド一覧
docker run
docker run コマンドは、「docker create」と「docker start」 を一連の流れで実施します。
コンテナを作成し、コンテナを起動します。
また、指定したイメージがローカルにない場合、Docker Hub からダウンロード(pull)もしてくれます。
docker ps
稼働中のコンテナ一覧を表示します。
-a オプションを付けると、非稼働のコンテナも含めて表示します。
docker images
ダウンロード(pull)したイメージ一覧を表示します。
「docker images」は、旧コマンドです。
新コマンドは「docker image ls」です。
docker rm
停止中のコンテナを削除するコマンドです。
「docker rm」は、旧コマンドです。
新コマンドは「docker container rm」です。
docker rmi
イメージを削除するコマンドです。
「docker rmi」は、旧コマンドです。
新コマンドは「docker image rm」です。
docker build
「Dockerfile」からイメージを作成するコマンドです。
参考書
Docker を操作するにあたって、以下の本も購入しました。
図が多く、説明が分かりやすいです。
Docker / Kubernetes 初心者にはおすすめの本です。
こちらは、解説が丁寧で分かりやすい実践的な Docker の基礎本です。