[WSL] Ubuntu 22.04 のインストールと構成ドッカー

序文

WSLは穴場だ!
WSLは穴場だ!
WSLは穴場だ!

私が初めて Ubuntu をインストールして使用したのは、デュアル システムがインストールされた最初のノートブックで、バージョンは 18.04 LTS でしたが、当時は機械式ハードディスクしか持っていなかったので、Ubuntu デスクトップは非常に固まっていました。

いろいろ調べてみると、中学生の頃に Microsoft の WSL2 がとても便利だったので、Linux の勉強のためにインストールしようと思い、もちろん当時最新の Ubuntu 22.04 LTS を選びました。最近、仕事でDockerの知識を学ぶ必要があります。そこでWSLにdockerをインストールしようと計画し、その期間中にいくつか穴を踏んだのでここに記録しておきます。

インストール

Dockerリポジトリを使用してインストールする

apt パッケージのインデックスを更新する

$ sudo apt-get update

apt 依存関係パッケージをインストールして、HTTPS 経由でウェアハウスを取得します

$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common

Docker の公式 GPG キーを追加する

$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

次のコマンドを使用して安定したリポジトリをセットアップします。

$ sudo add-apt-repository \
   "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
  $(lsb_release -cs) \
  stable"

インストール後の出力は次の図のようになります。

安定したリポジトリをセットアップする

Docker Engine のインストール - コミュニティ

ここで最新バージョンの Docker Engine-Community とcontainerdを直接インストールします。

$ sudo apt-get install docker-ce docker-ce-cli containerd.io

出力は図のようになります。

最新バージョンのDocker Engine-Communityとcontainerdをインストールします。
インストールは基本的にこれで完了です。次のコマンドを入力して、最初のコンテナーを実行してみてください。

sudo docker run hello-world

操作の出力は次のとおりです。

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

質問

docker コマンドは sudo で実行する必要があります

デフォルトでは、Unix ソケットはユーザー root によって所有され、他のユーザーは sudo を使用してのみアクセスできます。Docker デーモンは常に root ユーザーとして実行されます。

毎回 sudo を追加しないようにするには、現在のアカウントに docker 権限を追加する必要があります

Dockerユーザーグループを作成する

$ sudo groupadd docker

現在のユーザーを docker ユーザー グループに追加します

$ sudo usermod -aG docker $USER

現在のシェルを終了し、再度ログインします

Docker ブートは手動で開始する必要があるため、自己起動を作成できません

この問題はまだ解決していませんが、WSL にいくつかのコンポーネントが欠けているのではないかと思います。今後の参考のために、この問題を解決する手順をここに記録します。

私のwslバージョンは次のとおりです。

WSL 版本: 1.0.3.0
内核版本: 5.15.79.1
WSLg 版本: 1.0.47
MSRDC 版本: 1.2.3575
Direct3D 版本: 1.606.4
DXCore 版本: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows版本: 10.0.19045.2604

自己起動の追加を使用する必要がありますsystemctl。WSL の最新バージョンでは、デフォルトでは systemd が使用されません。次の手順で設定して使用できます。

WSL でターミナルを開き、sudo vim /etc/wsl.conf編集を使用して (または別の使い慣れたテキスト編集コマンドを使用して)、次のような内容を追加します。

[boot]
systemd=true

必要に応じて systemctl もインストールします

ただし、起動時に自動的に開始するように docker.service を追加したとしても、実際に docker を自動的に開始する方法はありません。systemmd の使い方を勉強する時間があります。

現時点では、Ubuntu を起動した後、次のコマンドを入力して Docker サービスを開始する必要があります。

sudo service docker start

その後の docker コマンドの実行では、sudo を呼び出す必要はありません。

おすすめ

転載: blog.csdn.net/qq_37387199/article/details/129100486