web-dev-qa-db-ja.com

Windows 10 Spring update(2018)のWSLでdockerを実行できますか?なぜ?

"WSL UnixソケットのサポートをもたらすWindows 10 Spring Update"

以前は、ソケットエラーのため、DockerサービスをWSLに実行できませんでした。

Unix:///var/run/docker.sockでDockerデーモンに接続できません。 dockerデーモンは実行されていますか?

WSLでdockerを実行するには、新しいWLSスプリング更新機能で十分ですか?

9
Daniel Santos

WSLでDockerを実行するには、新しいWLSスプリング更新機能で十分ですか?

Microsoftは、WSLインスタンス内でのDockerデーモン(サービスとも呼ばれます)の実行をサポートしていません。

Linux用のWindowsサブシステム(WSL)内からdockerを実行することについてよく尋ねられます。 WSLでのdockerデーモンの直接実行はサポートされていません。しかし、できることは、WSLからWindowsで実行されているデーモンを呼び出すことです。これで何ができますか? WSLの快適さから、Dockerファイルを作成、ビルドして、デーモン(WindowsまたはLinux、選択したランタイムに応じて)で実行できます。

[Cross Post] WSLとDockerの相互運用性

Dockerデーモンは、必要なカーネルABIを実装していないため、WSLの下では実行できません。 Docker for Windowsを実行している場合は、管理しているHyper-V仮想マシンに接続している可能性があります

DockerはWSL内で実行されていますか、それともWindowsに接続していますか?

デーモンはWSLインスタンス内では実行できませんが、Docker CLIを使用して、Windowsインストールで実行されているDockerサービスに接続できます。

一般的な設定では、TLSなしでデーモンを公開する必要があります。この手順は、デーモンがTCPエンドポイントでリッスンするために必要です。これを行わないと、WSLから接続できなくなります。

enter image description here

WSL内にDockerをインストールする必要があります。DockerCLIにアクセスできるためです。サーバーを起動する必要はありません。

次の手順はUbuntuに関するものですが、Windowsの2017年秋のアップデート以降、WSLはさまざまなディストリビューションをサポートするようになったため、Ubuntu以外のものを使用した場合は、DockerのインストールドキュメントからディストリビューションのDockerインストールガイドに従ってください。

これにより、エッジチャネルがインストールされ、必要に応じて「エッジ」を「安定」に変更します。 最新リリースに基づいてDocker Composeバージョンを更新することもできます

# Environment variables you need to set so you don't have to edit the script below.
export DOCKER_CHANNEL=Edge
export DOCKER_COMPOSE_VERSION=1.21.0

# Update the apt package index.
Sudo apt-get update

# Install packages to allow apt to use a repository over HTTPS.
Sudo apt-get install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

# Add Docker's official GPG key.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | Sudo apt-key add -

# Verify the fingerprint.
Sudo apt-key fingerprint 0EBFCD88

# Pick the release channel.
Sudo add-apt-repository \
   "deb [Arch=AMD64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   ${DOCKER_CHANNEL}"

# Update the apt package index.
Sudo apt-get update

# Install the latest version of Docker CE.
Sudo apt-get install -y docker-ce

# Allow your user to access the Docker CLI without needing root.
Sudo usermod -aG docker $USER

# Install Docker Compose.
Sudo curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose &&
Sudo chmod +x /usr/local/bin/docker-compose

まず、いくつかのコマンドを実行する必要があるため、WSLターミナルを開きます。

新しいWSL構成ファイルを作成して変更します。

Sudo nano /etc/wsl.conf

# Now make it look like this and save the file when you're done:
[automount]
root = /
options = "metadata"

次回WSLターミナルを起動するときにエラーが発生した場合でも、おかしくなりません。これは18.03のバグであり、簡単に修正できます。 CTRL + Shift + ECSを押してタスクマネージャーを開き、[サービス]タブに移動して、[LxssManager]サービスを見つけて再起動します。

Docker for WindowsとWSLが問題なく動作するように設定する

11
Ramhound