LoginSignup
0
0

More than 3 years have passed since last update.

Azure VMをVS Code Remote Containers開発環境として使う

Posted at

はじめに

最近はもっぱらVS Code Remote Containersを開発環境として使っています。が、のっぴきならない事情でローカルマシンにDockerが入れられず使えない、という場合もあると思います1

そういう場合に、WindowsのAzure Virtual MachinesにHyper-VとDocker Desktop for Windowsをインストールし、開発環境として使ってみたいと思います。

構成は以下の通りです。ローカルPCはRDP接続元としてしか使わず、Azure上のWindows 10上ですべて開発をする構成です。
image.png

※開発環境自体はリモートにあったとしても、VSCode Remote Containersを使用するにはローカルにもDockerを入れる必要があります

Azure VMでDockerは動くのか?

Azureの一部のVMは、「ネストされた仮想化」をサポートしています。
これにより、Azure VM上でHyper-Vを有効化しDocker Desktop for Windowsを動かすことが可能です。

参考:Nested Virtualization in Azure | Azure Blog and Updates | Microsoft Azure

ちなみに、AWSはおそらく不可です。Hyper-Vを有効にできませんし、そもそもWindows 10のVMを作成できません。Windows ServerにはDocker Desktop for Windowsをインストールできないので、VS Code Remote Containersが使えません。

Windows10 VMの作成方法

Azureポータルから以下の順で選択していきます。

image.png

image.png

image.png

Windows 10のイメージを選択してください。

また、サイズは以下の***が付いているものから選択してください。
参考:Azure コンピューティング ユニットの概要 - Azure Virtual Machines | Microsoft Docs

注意点

ネストされた仮想化未対応のVMでは、Docker Desktop for Windowsが以下のようなエラーを吐いて起動できません。

Docker.Core.HttpBadResponseException:
Unhandled exception: シーケンスに要素が含まれていません

対応VMは結構お高くつくので、私は毎日定時に自動でシャットダウン+グローバルIP固定設定にしています。

試してみる

作成したVMにVS CodeとDocker Desktop for Windowsをインストールし、諸々の設定を行います。

詳細は以下を参照お願いします。
参考:Developing inside a Container using Visual Studio Code Remote Development

image.png

無事VS Codeでコンテナに入ることができました。

おわりに

この結論に至るまでに色々と試行錯誤したので記しました。VS Code Remote Containersは本当に最高なので使ってみてください。


  1. そんなことない?あるんです。 

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0