いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

WSL2 with Alpine Linux で WSL Integrationを使えるようにする (alpine-pkg-glibc)

概要

f:id:gsf_zero1:20211029114204p:plain

忘れてしまう前にメモメモ。。。

先日、WSL2でAlpine Linuxのイメージを作った場合、デフォルトではDockerのWSL Integrationがうまく動きません。

$ docker image list
-bash: /usr/bin/docker: No such file or directory

Dockerのドキュメントに以下の記載があります。

The Docker-WSL integration components running in your distro depend on glibc. This can cause issues when running musl-based distros such as Alpine Linux. Alpine users can use the alpine-pkg-glibc package to deploy glibc alongside musl to run the integration.

Docker Desktop WSL 2 backend | Docker Documentation

glibcに依存しているので、Alpineなどの場合は別途 alpine-pkg-glibc をいれてねって書いてありますね。

てことで、インストールしましょう。

$ sudo wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub
$ wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.34-r0/glibc-2.34-r0.apk
$ sudo apk add glibc-2.34-r0.apk

インストールしたら、Docker Desktop の方でもWSL Integrationを有効にして

一度、イメージを再起動

$ wsl -t alpine
$ wsl -d alpine

今度はちゃんと動いてくれます。

$ cat /etc/os-release
NAME="Alpine Linux"
ID=alpine
VERSION_ID=3.15.0
PRETTY_NAME="Alpine Linux v3.15"
HOME_URL="https://alpinelinux.org/"
BUG_REPORT_URL="https://bugs.alpinelinux.org/"

$ docker version
Client: Docker Engine - Community
 Cloud integration: v1.0.22
 Version:           20.10.11
 API version:       1.41
 Go version:        go1.16.9
 Git commit:        dea9396
 Built:             Thu Nov 18 00:37:33 2021
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.11
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.9
  Git commit:       847da18
  Built:            Thu Nov 18 00:35:39 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.12
  GitCommit:        7b11cfaabd73bb80907dd23182b9347b4245eb5d
 runc:
  Version:          1.0.2
  GitCommit:        v1.0.2-0-g52b36a2
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

参考情報

github.com


過去の記事については、以下のページからご参照下さい。

  • いろいろ備忘録日記まとめ

devlights.github.io

サンプルコードは、以下の場所で公開しています。

  • いろいろ備忘録日記サンプルソース置き場

github.com

github.com

github.com