概要
忘れてしまう前にメモメモ。。。
先日、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
参考情報
過去の記事については、以下のページからご参照下さい。
- いろいろ備忘録日記まとめ
サンプルコードは、以下の場所で公開しています。
- いろいろ備忘録日記サンプルソース置き場