Dockerコンテナのメリット

GNS3では、Dockerコンテナもサポートされています。DockerコンテナでCPUやメモリのリソース消費が小さいホストをGNS3プロジェクト上で扱えるようになります。ホストとしてVPCSを利用してもいいのですが、VPCSは機能的に制約があります。

このページでは、DockerコンテナのLinux(Alpine Linux)ホストを追加する方法について解説します。軽量なLinuxホストを利用していろんな検証をしやすくなります。

リンク

GNS3のオフィシャルサイトを参考にしています。 Docker support in GNS3

Alpine Linuxオフィシャルサイト

Dockerコンテナを追加する手順

DockerコンテナのLinuxホストを追加する手順は次の通りです。

  1. コンテナテンプレートの作成(Alpine Linux)
  2. プロジェクトにDockerコンテナホストを追加
  3. ホストのネットワーク設定

なお、このページは以下の環境に基づいています。

ホストOSWindows10 Pro
GNS3バージョン2.2.17
GNS3 VMバージョン2.2.17
仮想化ハイパーバイザVMware Workstation 16.6.2

コンテナテンプレートの作成(Alpine Linux)

まず、Alpine LinuxのDockerコンテナのテンプレートを作成します。GNS3上で[Edit]→[Preference]→[Docker Containers]から[New]をクリックします。

[Run this Docker container on the GNS3 VM]を選択して[Next]をクリックします。

[New Image]を選択して、[Image name]に「alpine:latest」と入力して[Next]をクリックします。

続いて、コンテナの表示名を入力して[Next]をクリックします。

そして、ホストのネットワークインタフェース(Adapters)の数を決めて、[Next]をクリックします。

起動時に実行するコマンドを入力します。シェルを起動するように「sh」と入力します。

コンソールタイプを指定します。通常のCLIであれば、デフォルトの「telnet」のままで大丈夫です。

必要ならば環境変数を指定できます。[Finish]でテンプレートの作成終了です。

プロジェクトにDockerコンテナホストを追加

Alpine LinuxのDockerコンテナのテンプレートを作成すると、[End Device]のツールバーに表示されます。

Alpine Linuxのテンプレートをワークスペースにドラッグ&ドロップします。docker pullのコマンドが自動的に実行されて、テンプレートで指定したコンテナイメージがDocker HubからGNS3 VMにダウンロードされます。コンテナイメージのダウンロードは、初回のみです。docker pullコマンドを実行しているログがGNS3のコンソール上に表示されます。

あとは、ルータなどとDockerコンテナのLinuxホストとのリンクを設定すればOKです。

そして、コンテナを起動して、アイコンをダブルクリックすればCLIにアクセスできます。

ホストのネットワーク設定

ネットワークの設定は、/etc/network/interfacesのファイルを編集します。Alpine LinuxのCLIから編集してもよいのですが、ワークスペースに配置したアイコンを右クリックして[Edit Config]からGNS3上で編集できます。

リンク

Alpine Linuxのネットワーク設定について、以下のWebサイトがとてもわかりやすいです。