Windows 内の Docker 環境を入れ替えてみた(Docker Desktop → Rancher Desktop)

Docker Desktop から Rancher Desktop に引っ越した時の手順をご紹介します。
2022.11.16

はじめに

こんにちは、テクニカルサポートの Shimizu です。

業務で使用している Windows PC に Docker Desktop を導入してコンテナ開発環境を構築していましたが、今回アプリケーションを Rancher Desktop に入れ替える機会があったため、備忘も兼ねて移行手順をご紹介します。

Rancher Desktop を選んだ理由

開発業務上、以下の要件が必須でした。

  • WSL(Windows Subsystem for Linux)上で docker コマンド / docker-compose コマンドを使用できる。

  • Visual Studio Code でコンテナに接続し、内部のファイルを編集できる。

上記の要件を満たし、かつ今まで使用していた Docker Desktop とできるだけ使用感が近い、という観点で Rancher Desktop を選択しました。

移行時の開発環境

OS: Windows 10 Pro
Docker アプリケーション:Docker Desktop 4.11.1
WSL: Ubuntu 20.04 LTS
Visual Studio Code: 1.73.1

それでは以下に移行手順をご紹介します。

step1:Docker コンテナのバックアップ

まずは移行前に、既存のコンテナをバックアップします。
バックアップ方法はローカルPCにファイルを退避する、Dockerfile を作成して Git で管理するなどいくつかの方法がありますが、今回はコンテナをイメージ化し、Docker Hub のプライベートリポジトリに保存する方法をとりました。

※ ここでは詳しく触れませんが、事前に Docker Hub のアカウントとプライベートリポジトリを用意する必要があります。(参考資料[1][2])
この方法を実施する場合は、機密ファイルが含まれるイメージを誤って公開リポジトリに push しないよう注意しましょう。

以下、WSL のコマンドラインで操作を行っていきます。

# 対象コンテナのIDを確認
docker ps -a

# コンテナの停止
docker stop [対象のコンテナID]

# コンテナのイメージ化(しばらく時間がかかります)
docker commit [対象のコンテナID] [リポジトリ名]:[タグ]

# イメージが作成されていることを確認する
docker images 

# dockerhub アカウントにログイン
docker login -u [ユーザー名] -p [パスワード]

# イメージを dockerhub リポジトリに保存する
docker push [リポジトリ名]:[タグ]

docker push コマンドか完了したら、dockerhub 側でイメージが保存されたことを確認します。

これでコンテナのバックアップは完了なので、次は Docker Desktop のアンインストールを行っていきます。

step2:Docker Desktop のアンインストール

まずはコンテナやイメージをすべて削除しましょう。
Docker Desktop のアプリケーション画面を開き、右上のアイコンをクリックして[Clean/Purge data]をクリックします。

次の "Delete the following data set(s)" の画面ですべて選択して[Delete]をクリックします。
「Purge completed」と表示されれば削除完了です。

WSL のコマンドラインから docker ps -adocker images を実行して確認します。
コンテナもイメージも存在していなければ、データは問題なく削除されています。

続いてアプリケーションを削除します。 Windows 設定の「アプリと機能」から Docker Desktop をアンインストールします。

これで Docker Desktop のアンインストールは完了です。

続いて代替アプリケーションの Rancher Desktop をインストールします。

step3:Rancher Desktop のインストール

Rancher Desktop の公式サイトよりインストーラファイルをダウンロードします。

ダウンロードしたインストーラファイルを実行して、アプリケーションをインストールします。
インストールが完了したら、Rancher Desktop アプリケーションを起動します。

今回は Kubernates は使用しないため "Enable Kubernetes" のチェックは外します。
また WSL から docker コマンドを使用したいため "dockerd(moby)" を選択し [Accept] をクリックします。

歯車アイコンをクリックして Preference を開きます。
WSL で Docker を使用するため "Ubuntu" にチェックを入れ、[Apply] をクリックします。

Rancher Desktop の設定は以上です。

次は step1 でバックアップしたイメージからコンテナを復元し、動作確認を行っていきます。

step4:動作確認(コンテナの復元 + VSCode での接続)

WSL のコマンドラインより以下の操作を行います。

# docker と docker-compose のバージョン確認
docker --version
docker-compose --version

# dockerhub アカウントにログイン
docker login -u [ユーザー名] -p [パスワード]

# イメージを dockerhub リポジトリから取得する
docker pull [リポジトリ名]:[タグ]

# イメージが取得されていることを確認する
docker images 

# コンテナの起動
docker run --name "コンテナ名" [リポジトリ名]:[タグ]

step1 でバックアップしたコンテナが正常に復元できていれば、移行完了です!

次に Visual Studio Code でコンテナに接続できるかも確認してみます。
※ ここでは詳しく触れませんが、Visual Studio Code と拡張機能が事前に導入されている前提です。(参考資料[3])

先ほど起動したコンテナが接続先に表示され、コンテナ内部のプロジェクトファイルを編集できることも確認できました!

さいごに

Docker Desktop の一部有償化に伴い、代替の Docker アプリケーションを検討するケースもあるかと思います。 今回の筆者のケースにおいては Rancher Desktop が移行もしやすく、従来の使用感と近い印象でした。
この情報がお役に立てば幸いです!

参考資料

[1] Docker Hub にイメージを保管する — Docker-docs-ja 1.9.0b ドキュメント
[2] docker commit — Docker-docs-ja 20.10 ドキュメント
[3] VSCode+WSL2+Dockerでコンテナ環境へ接続してみた | DevelopersIO
[4] Rancher Desktop
[5] Docker Hub
[6] Visual Studio Code