とことんDevOps | 日本仮想化技術のDevOps技術情報メディア

DevOpsに関連する技術情報を幅広く提供していきます。

日本仮想化技術がお届けする「とことんDevOps」では、DevOpsに関する技術情報や、日々のDevOps業務の中での検証結果、TipsなどDevOpsのお役立ち情報をお届けします。
主なテーマ: DevOps、CI/CD、コンテナ開発、IaCなど

開催予定の勉強会

読者登録と各種SNSのフォローもよろしくお願いいたします。

Docker Desktop 4.22.0がリリースされていたので使ってみた

Docker Desktop 4.22.0が8月3日にリリースされていたようなのでアップデートしてみようとしたところ、手元の環境ではこんな感じの画面になってしまってアップデートされないのに気が付きました。

ダウンロードして

しばらくするとこのような画面に...

Docker Desktopのリリースノートを見るとちょっと面白そうなことも書かれているので、新しいバージョンが触りたいんですよね。

docs.docker.com

試しに、Docker Desktopを再起動してみたのですが、古いバージョンのままでした。

そういえばこの環境はHomebrewでDocker Desktopをインストールしているのでした。 そこでbrew infoで確認したところ、HomebrewにはDocker Desktop 4.22の情報がが登録されているようです。

$ brew info homebrew/cask/docker
==> docker: 4.22.0,117440 (auto_updates)
https://www.docker.com/products/docker-desktop
/opt/homebrew/Caskroom/docker/4.21.1,114176 (120B)
From: https://github.com/Homebrew/homebrew-cask/blob/HEAD/Casks/d/docker.rb
==> Names
Docker Desktop
Docker Community Edition
Docker CE
==> Description
App to build and share containerized applications and microservices
==> Artifacts
Docker.app (App)
Docker.app/Contents/Resources/bin/docker-compose -> /usr/local/bin/docker-compose (Binary)
Docker.app/Contents/Resources/bin/docker-compose-v1/docker-compose -> /usr/local/bin/docker-compose-v1 (Binary)
Docker.app/Contents/Resources/bin/docker-credential-desktop -> /usr/local/bin/docker-credential-desktop (Binary)
Docker.app/Contents/Resources/bin/docker-credential-ecr-login -> /usr/local/bin/docker-credential-ecr-login (Binary)
Docker.app/Contents/Resources/bin/docker-credential-osxkeychain -> /usr/local/bin/docker-credential-osxkeychain (Binary)
Docker.app/Contents/Resources/bin/docker-index -> /usr/local/bin/docker-index (Binary)
Docker.app/Contents/Resources/bin/hub-tool -> /usr/local/bin/hub-tool (Binary)
Docker.app/Contents/Resources/bin/kubectl -> /usr/local/bin/kubectl.docker (Binary)
Docker.app/Contents/Resources/etc/docker-compose.bash-completion -> /opt/homebrew/etc/bash_completion.d/docker-compose (Binary)
Docker.app/Contents/Resources/etc/docker.zsh-completion -> /opt/homebrew/share/zsh/site-functions/_docker (Binary)
Docker.app/Contents/Resources/etc/docker-compose.zsh-completion -> /opt/homebrew/share/zsh/site-functions/_docker_compose (Binary)
Docker.app/Contents/Resources/etc/docker.fish-completion -> /opt/homebrew/share/fish/vendor_completions.d/docker.fish (Binary)
Docker.app/Contents/Resources/etc/docker-compose.fish-completion -> /opt/homebrew/share/fish/vendor_completions.d/docker-compose.fish (Binary)
Docker.app/Contents/Resources/bin/com.docker.vpnkit -> /usr/local/bin/vpnkit (Binary)
Docker.app/Contents/Resources/bin/com.docker.cli -> /usr/local/bin/com.docker.cli (Binary)
Docker.app/Contents/Resources/etc/docker.bash-completion -> /opt/homebrew/etc/bash_completion.d/docker (Binary)
Docker.app/Contents/Resources/bin/docker -> /usr/local/bin/docker (Binary)
==> Analytics
install: 17,651 (30 days), 54,525 (90 days), 98,087 (365 days)

と言うわけで手動でアップグレードを実施。Docker Desktopがなぜbrew upgradeで更新されなかったかは謎です。

$ brew upgrade homebrew/cask/docker
...
==> Purging files for version 4.21.1,114176 of Cask docker
🍺  docker was successfully upgraded!

無事、Docker Desktop 4.22に更新されたようです。

4.21からの更新点として、Docker Engineが24.0.5、Docker Composeが2.20.2、 Docker Buildxが0.11.2にそれぞれ更新された点、Resource Usage拡張機能がGAになった点、 各OS別に様々なバグ修正が行われたほか、DockerでWasmの利用がcontainerd image storeを使う設定にすると利用可能にある機能が追加されているようです。

Docker DesktopでWasmもcontainerd image storeによるイメージダウンロードとコンテナ作成の高速化をどっちも試してみたかったので、設定を変更してみました。

すると次のようなメッセージが表示されました。

なお、このメッセージが表示されてインストールを実行したにもかかわらず、DockerでWASMランタイムを使おうとするとエラーとなる場合は、もう一度「Enable WASM」を一旦オフにしてオンにし直してみてください(私はそれで使えるようになりました)。

containerd image store機能を試す

この機能を有効にすると、確かにイメージのダウンロードは並列化されるので速いですし、コンテナ作成も速いですね。

$ docker image pull nginx:alpine

$ docker container run --name=cont1 -d -p 8080:80 -it nginx:alpine

DockerでWASMアプリを動かしてみる

先ほどWASMの設定をしたので、Docker DesktopでWASMアプリを動かすこともできるようになります。 いつものDockerコマンドに--runtime--platformでWASMを指定しているのがポイントです。

$ docker container run \
  --runtime=io.containerd.wasmedge.v1 \
  --platform=wasi/wasm \
  secondstate/rust-example-hello
Hello WasmEdge!

DockerのWASMについてはそのうち、また取り上げる予定です。

Docker Desktopの検索機能

Docker Desktopの検索機能も、触っていないうちに関連ドキュメントの検索もできるようになったようですね。

Docker Desktopも着実に良くなっています。