はじめてのDocker Desktop Enterprise: アプリケーションデザイナでDockerfileいらずのLinux/Windowsコンテナアプリを作成! #docker #kubernetes #k8s
この記事は1年以上前に投稿されました。情報が古い可能性がありますので、ご注意ください。
Docker Enterprise 3.0の一部としてお届けしたDocker Desktop Enterpriseは新しい開発者ツールです。Docker Enterpriseプラットフォームを開発者のデスクトップへ拡張し、新しいアプリケーションを市場へ投入するまでの時間を加速しつつ、開発者の生産性を向上します。
IT組織が、レガシーなアプリケーションとモダンなアプリケーションの両方を、セキュリティを統合したアジャイル処理モデルを使って自動化することができる、唯一のエンタープライズ級デスクトッププラットフォームです。これはローカル環境で動くので、開発者はコードやDockerイメージを共有サーバやCIインフラにプッシュする前に高速フィードバックループを活用することができます。
あなたは開発者で、あなたの組織は本番対応環境でDocker Enterpriseを実行していると想像してください。アプリケーションを本番環境にデプロイする際、壊れてしまうAPIや互換性のない機能を使用しないように、開発環境と本番環境で実行しているDocker EEを完全に一致させておきたいはずです。そこがDocker Enterprise 3.0とDocker Desktop Enterpriseの出番です。Docker Desktop Enterpriseは基本的に、開発者のシステム上で直に実行できるDockerエンタープライズコンテナプラットフォームに対する拡張です。開発者が現在使用しているものと同じツールを使って開発環境でコーディングとテストを行い、Docker Desktop Enterpriseを使ってそれらのサイクルを迅速に繰り返し、本番用Docker EEクラスタ向けのコンテナ化サービスを生産することができます。
開発者と運用者のためのエンタープライズ向けソリューション
Docker Desktop Enterpriseはエンタープライズ開発者のための完璧な開発プラットフォームです。これにより、開発者は好みのフレームワーク、言語、IDEから選択することができます。これらの選択肢のおかげで、組織もあらゆるプラットフォームを対象とすることができるのです。よって基本的に、組織は本番向けに承認したアプリケーション設定を含むアプリケーションテンプレートを提供することができ、開発者はそれらのテンプレートを選んで素早く自分のデスクトップに複製し、コーディングを始めることができます。Docker Desktop Enterpriseのグラフィカル・ユーザー・インターフェイス(GUI)があれば、開発者はもはや低レベルのDockerコマンドを知っている必要がなくなり、Dockerアーティファクトと自動生成できるのです。
Docker Desktop Enterpriseならば、IT組織が現在利用しているサードパーティのエンドポイント管理ソリューションで開発者チーム全体にDocker Desktop Enterpriseを簡単に配布・管理することができます。
サードパーティ開発ツールとの完璧な統合
Docker Desktop Enterpriseは、Visual StudioやIntelliJのような既存の開発環境(IDEなど)と統合できるように設計しています。定義済みアプリケーションテンプレートのサポートがあるので、Docker Desktop Enterpriseによって組織はアプリケーションのルック・アンド・フィールを指定することができます。
Docker Desktop Enterpriseの専門機能
Docker Desktop Enterpriseのさまざまな機能についてお話しいたしましょう:
バージョンの選択
設定可能なバージョンパックにより、Docker Desktop Enterpriseのローカルインスタンスを、アプリケーションのデプロイ先である本番環境の完全なコピーとすることができます。そして開発者は、DockerとKubernetesのバージョンをワンクリックで切り替えることができます。
- DockerとKubernetesのバージョンを、UCPクラスタのバージョンと一致できるのです。
- 管理者用コマンドラインツールで、バージョンパックのインストールを簡単に行えます。
アプリケーションデザイナ
アプリケーションのライブラリとサービステンプレートです。これを使って、開発者は迅速に新しいコンテナベースのアプリケーションを作成することができます。アプリケーションテンプレートによって、技術スタックを選択し、ビジネスロジックやコードに集中することができます。しかも、Dockerの文法知識は最低限で構いません。
- テンプレートは.NET、Java Springなどをサポートしています。
- シングルサービスアプリケーションとマルチサービスアプリケーションの両方をサポートしています。
- KubernetesとSwarmのどちらのオーケストレータにもデプロイできます。
- 複数の環境用にアプリケーションのデプロイや設定を引数化するDocker Appフォーマットをサポートしています。
デバイス管理
- Docker Desktop Enterpriseインストーラは標準的なMSI (Windows)とPKG (Mac)として提供しているので、管理者は多数の開発者のワークステーション全体にインストールするためのスクリプトを作成することができます。
管理者による制御
- IT組織は標準化したデプロイ環境を作成するために、ドライブ共有の無効やバージョンパックのインストールの制限を含む、設定パラメータを指定・固定できます。そして開発者は、設定について心配することなくコマンドラインを使ってコマンドを実行できます。
このブログ記事では、Docker Desktop Enterpriseのすばらしい機能を2つ紹介します:
- アプリケーションデザイナ
- バージョンパック
Docker Desktop Enterpriseのインストール
Docker Desktop EnterpriseはMicrosoft WindowsとMacOSの両方で利用できます。次のリンクからダウンロードできます:
このインストーラは次を含んでいます:
- Docker Engine
- Docker CLIクライアント
- Docker Compose
Docker Desktop Enterpriseをインストールする前に、Docker Desktop Community Editionをアンインストールすることをお忘れなく。また、Docker Desktop Enterpriseは、Docker社から別途ライセンスキーを購入する必要があります。
Docker Desktop Enterpriseをインストールするにはmsiファイルやpkgファイルをダブルクリックし、セットアップウィザードを起動します:
"Next"をクリックして先に進み、次のようにエンドユーザライセンスアグリーメントを承認します:
"Next"をクリックしてインストールを続行します。
インストールが完了したら、次のようにWindowsのデスクトップにDocker Desktopのアイコンが表示されます:
ライセンスファイル
前述の通り、Docker Desktop Enterpriseを利用するには、Docker社からDocker Desktop Enterpriseライセンスファイルを購入する必要があります。
ライセンスファイルは次の場所に配置します: C:\Users\Docker\AppData\Roaming\Docker\docker_subscription.lic
ライセンスファイルがなければ、Docker Desktop Enterpriseを実行しようとする際に配置を求めます。ライセンスファイルを配置したら、Docker Desktop Enterpriseは完璧に起動するはずです。
Docker Desktop UIの新機能
Docker Desktop EnterpriseはCommunity版と比較して、いくつかの機能を追加しています。タスクマネージャのくじらアイコンを右クリックして"About Docker Desktop"を選択すると、次のウィンドウが開きます。
Powershellを開いて実行中のDockerのバージョンを確認することができます。"Settings"オプションをクリックすると、「Shared Drive」「Aadvanced」「Network」「Proxies」「Daemon」「Kubernetes」といったセクションが表示されます。
Docker Desktop Enterpriseに導入した新機能の一つは、ログインしたら自動的にDocker Desktopを起動できるようになったことです。この機能は「General」タブの"Start Desktop when you login"を選択することで有効になります。この機能を有効にすることで、アップデートの自動チェックも可能になります。
Docker Desktop Enterpriseは次の図のように、Docker Engineが利用可能なリソースを事前に制限する柔軟性があります。システム設定や実行を計画しているアプリケーションの種類に基いて、リソース制限を増減できます。
Docker Desktop EnterpriseはWindowsラップトップ上で実行できるスタンドアローンのKubernetesサーバを含んでいるので、KubernetesにDockerワークロードをデプロイするテストを行えます。
kubectlは、Kubernetesクラスタに対してコマンドを実行するコマンドラインインターフェイスです。kubectlはデフォルトでDocker Desktopに同梱しているので、次のように実行して検証が可能です:
はじめてのウェブアプリケーションの実行
次のコマンドを使って、カスタムビルドしたウェブアプリケーションの実行を試してみましょう:
ブラウザを起動し、ウェブサーバが次の通り起動していることを確認します:
アプリケーションデザイナ
アプリケーションデザイナは、アプリケーションのライブラリとサービステンプレートです。これを使って、開発者は迅速に新しいDockerアプリケーションを作成することができます。アプリケーションテンプレートによって、技術スタックを選択し、ビジネスロジックやコードに集中することができます。しかも、Dockerの文法知識は最低限で構いません。
アプリケーションデザイナを使ってLinuxベースのアプリケーションを構築
この節では、初めて導入したアプリケーションデザイナをどのように始めたらよいかを見ていきます。
タスクバーのくじらアイコンを右クリックし、"Design New Application"を選択します。クリックすると、次のウィンドウが開きます:
まずはじめに、"Choose a template"をクリックして設定済みアプリケーションセットを使いましょう。
Linuxベースのアプリケーションをテストしてみましょう。"Linux"オプションをクリックして続行します。次のようにさまざまな作成済みテンプレートが開きます:
SpringアプリケーションがDocker Desktop Enterpriseの一部として含まれています。これは次の通り、基本的にSpringフレームワークとPostgreSQLデータベースで構成されているサンプルJavaアプリケーションです:
NginxプロキシとMySQLデータベースで構成されているサンプルpython/Flaskアプリケーションを試してみましょう。希望のアプリケーションテンプレートを選択し、Pythonバージョンと待ち受けポートを選択します。MySQLバージョンとNginxプロキシも選択できます。この例では、Python 3.6、MySQL 5.7を選択し、Nginxプロキシは80番ポートを公開するようにしました。
"Continue"をクリックし、アプリケーションスタックを構築します。アプリケーションスタックが構築できたはずです。
完了しました。"Run Application"をクリックし、ウェブアプリケーションスタックを起動します。
"Run Application"をクリックすると、すぐに次のような出力が表示されます:
前述の通り、コードレポジトリをVisual Studio CodeとWindowsエクスプローラで開くことができます。アプリケーションスタックを起動・停止・再起動するオプションがあります。
動作を確認するために、次のようにウェブアプリケーションを開いてみましょう:
すばらしいでしょう?
アプリケーションデザイナを使ってWindowsベースのアプリケーションを構築
この節では、同じアプリケーションデザイナを使ってどのようにWindowsベースのアプリケーションを構築するかを見ていきます。
先に進む前に、Docker DesktopでWindowsベースのコンテナを実行できるように、次のようにして"Switch to Windows container"を選択する必要があります。
タスクバーのくじらアイコンを右クリックし、"Design New Application"を選択します。クリックすると、次のウィンドウが開きます:
"Choose a template"をクリックし、次の画面で今回はWindowsを選択します:
Windowsをクリックすると、ASP.NetとMS-SQLアプリケーションのサンプルが開きます。
クリックすると、バックエンドとフロントエンドが希望するポートの設定オプションと一緒に開きます。
この例では82番ポートを選択して進みます。"Continue"をクリックし、希望のアプリケーション名を入力します。ここでは"mywinapp2"と命名しました。次に"Scaffold"をクリックしてアプリケーションスタックを構築します。
アプリケーションスタックを作成する一方、次のようにVisual Studioを開いてDocker ComposeやDockerfileのようなファイルを見ることができます:
バックエンドで何が起きているのかを示すログを見ることができます。アプリケーションデザイナで"Debug"オプションを選択し、"View Logs"を開くとリアルタイムでログを閲覧できます。
そろそろ、ウェブブラウザ経由でアプリケーションにアクセスできるようになっているはずです。
バージョンパック
Docker Desktop Enterpriseはデフォルトで、Docker Engine 18.09とKubernetes 1.11.5を含むバージョンパックEnterprise 2.1を同梱しています。こちらのリンクからダウンロードできます。
開発作業のために異なるバージョンのDocker EngineとKubernetesが使いたければ、バージョンパックEnterprise 2.0をインストールしてください。こちらのリンクからダウンロードできます。
バージョンパックは手動インストールするか、管理者用にコマンドラインツールでインストールできます。バージョンパックをインストールすると、Docker Desktop Enterpriseのメニューから選択できるようになります。
バージョンパックの追加インストール
Docker Desktop Enterpriseは C:\Program Files\Docker\Desktop 以下にインストールされます。バージョンパックは.ddvpファイルをダブルクリックすることでインストールできます。バージョンパックをインストールする前にDocker Desktopを停止してください。バージョンパックをインストールする最も簡単な方法は、次のコマンドをCLIで実行することです:
Windows Powershellを"Run as Administrator"で開き、次のコマンドを実行します:
dockerdesktop-admin.exe -InstallVersionPack='C:\Program Files\Docker\Docker\enterprise-2.0.ddvp'
バージョンパックのアンインストール
バージョンパックをアンインストールするには、次の1行コマンドを実行するだけです:
dockerdesktop-admin.exe -UninstallVersionPack <バージョンパック>
次のブログ記事では、アプリケーションデザイナを活用してカスタムアプリケーションをビルドする方法をご紹介します。
参考
- https://goto.docker.com/Docker-Desktop-Enterprise.html
- Docker Desktop Enterprise:アプリテンプレ/CLIいらずのアプリデザイナ/Docker API/Kubernetesバージョン切替機能などを搭載