CULTURE
Docker Desktopをアンインストールして、Docker Engineをインストールする
.png)
- プロダクト
- 目次[]
Docker Desktopをアンインストールして、Docker Engineをインストールする
Uniforceのインフラ担当のニシです。
この記事を書いている頃は、コーヒーの粉を水で濃い目に溶かして薄めながら飲むことにハマっています。
甘味はこしあん饅頭です。(甘い飲み物、食べ物、好き🤤)
今回はWSL2環境でDocker DesktopからDocker Engineに切り替えたときのお話です。
なぜ切り替えようと思ったのか
Docker Desktopには次々と新しい機能が追加されていったりプラグインが拡充していったりと、多くの魅力を感じます。
では、なぜDocker DesktopからDocker Engineに切り替えようと思ったのかと言いますと、
個人的な気持ちとしてタスクトレイに常駐しているアプリケーションをなるべく減らしたいからです。
Docker Engineに切り替えたところでDocker Daemonが起動しているじゃないか、と言われればその通りなのですが、
WSL2という仮想環境内で動くので私的にはOKとしています。
ちなみに、UniforceではGatherやSlackを使用していますが、これらのデスクトップアプリケーションは使わずにWebブラウザからアクセスして使用しています。
タスクトレイに常駐するアプリケーションを増やしたくないですし、Webブラウザの方が最新の機能が早く使える感覚があるためです。
それでは話を戻しまして、WSL2環境からDocker Desktopのアンインストール、Docker Engineのインストールまでをお届けします。
今回の環境
今回作業する環境はこちらです。
- OS
- エディション: Windows 11 Pro
- バージョン: 23H2
- WSL2
- ディストリビューション: Ubuntu-22.04
- Docker Desktop
- バージョン: 4.33.1
Docker Desktopをアンインストール
Docker Desktopのアンインストールは公式ドキュメントのUninstall Docker Desktopに載っています。
Windowsの手順を載せておきます。
- Windows のスタートメニューから、[設定] > [アプリ] > [インストールされているアプリ]を選択する
- 「インストールされているアプリ」リストから「Docker Desktop」を選択し、「アンインストール」を選択する
- [アンインストール]を選択する
下記は手動で削除する必要があります。
C:\ProgramData\Docker
C:\ProgramData\DockerDesktop
C:\Program Files\Docker
C:\Users\<your user name>\AppData\Local\Docker
C:\Users\<your user name>\AppData\Roaming\Docker
C:\Users\<your user name>\AppData\Roaming\Docker Desktop
C:\Users\<your user name>\.dockerこれでDocker Desktopをアンインストールできました。
Docker Engineをインストール
それでは、Dokcer Engineをインストールします.今回、WSL2でUbuntuを利用しているので、公式ドキュメントのInstall Docker Engine on Ubuntuに則って作業します。
- APTリポジトリの設定
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL <https://download.docker.com/linux/ubuntu/gpg> -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] <https://download.docker.com/linux/ubuntu> \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update - Docker Packageのインストール
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginインストールコマンドに注目してみると、pluginとしてdocker-composeをインストールしています。
昔はDocker Engineとdocker-composeを別々にインストールしている方も多かったと思いますが、今はdockerコマンドのpluginとしてdocker-composeをインストールできます。
standaloneの場合と異なり、pluginとしてインストールした場合はdockerとcomposeを-(ハイフン)でつなぐのではなく空白で区切ります。
e.g.) コマンド実行例
docker compose up
rootユーザー以外でもDockerを実行
Dockerをrootユーザー以外でも実行できるように公式ドキュメントのLinux post-installation steps for Docker Engineに則ってユーザーをdockerグループに追加します。
- dockerグループの作成 ※作成済みの場合はスキップ
sudo groupadd docker - dockerグループにユーザーを追加
sudo usermod -aG docker $USER - dockerグループへの変更を適用
newgrp docker
Dockerコンテナの起動
Docker Engineを使用する準備が整いましたので、Dockerコンテナを起動してみます。
docker run hello-world
(出力)
error getting credentials - err: exec: "docker-credential-desktop.exe": executable file not found in $PATH, out: ``エラーが発生しました.どうやら、資格情報として"docker-credential-desktop.exe”を探しに行っているが見つからないようです。
すでにDocker Desktopをアンインストールしているので、当然ですね。
エラー内容をもとにインターネット上で調べてみるとDockerコミュニティのフォーラムに同様の事象についてやり取りがされていました。
Docker-credential-desktop.exe executable file not found in $PATH using wsl2
Dockerコミュニティフォーラムの内容をもとにWSL2条で”$HOME/.docker/config.json”を確認してみました。
{
"credsStore": "desktop.exe"
}確かにcredsStoreにdesktop.exeが指定されていましたので、項目を削除して次のようにしました。
{
}その後、あらためてDockerコンテナを起動してみます。
docker run hello-world
(出力)
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
c1ec31eb5944: Pull complete
Digest: sha256:53cc4d415d839c98be39331c948609b659ed725170ad2ca8eb36951288f81b75
Status: Downloaded newer image for hello-world:latest
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/>無事に実行できました😊
(おまけ) Visual Studio CodeでDocker拡張機能をインストール
無事にDocker Engineも動いて嬉しい限りですが、
Docker Desktopをアンインストールしたことにより、視覚的にコンテナや取得しているイメージなどを知ることが難しくなってしまいました。
そこでVisual Studio Codeを使用している場合はDocker拡張機能をインストールすることをオススメします。
Explorerでコンテナやイメージなどの情報を見ることができますし、Dockerファイルやdocker-composeファイルでIntelliSenseが効きますので作業をしやすくなります。
まとめ
今回、Docker DesktopからDocker Engineに切り替えをしてみました。
Docker DesktopのアンインストールとDocker Engineのインストールは公式ドキュメントがわかりやすく、詰まるところがなかったです。
Dockerコンテナを起動してみる際にはエラーが発生しましたが、コミュニティのフォーラムで同様の事象を見つけることができたので、すぐに解決できました。
公式ドキュメントやコミュニティが充実していることは、利用するユーザーにとってはとても嬉しいことですね!
本日の記事はここまでとなります。
最後まで読んでいただきありがとうございました🙌
- Writer
Uniforce株式会社 インフラエンジニア
ニシ






