日々ブログ

当サイトは、アフィリエイトプログラムにより商品をご紹介しています

【プログラミング】docker desktopの有償回避方法とその代替案

docker desktopが有料化されましたね〜。
docker 使いの方にとっては、影響が大きいんじゃないでしょうか。
今回は、有料化による影響内容とその代替案について記述したいと思います。

そもそもDocker Desktopとは

まずは、主題であるDocker Desktopについてですね。
こちらについて公式的な説明があります。

Docker Desktop enables developers to locally build, share, and run containerized applications and microservices.
Docker Desktop includes Docker Engine, Docker CLI client, Docker Build/BuildKit, Docker Compose, Docker Content Trust, Kubernetes, Docker Scan, and Credential Helper. 
Docker Desktop is for Mac and Windows and includes the Docker Dashboard for working with local and remote container images, Dev Environments and more new features are being delivered every month such as Volume Management.

端的に言うと、Docker Desktop はMacWindows向けに開発されたDockerを備えた開発環境ですね。
開発のための管理ダッシュボードだったり、開発環境を提供する便利なサービスもあるので、お世話になった方も多いのでは無いでしょうか。

有料化の範囲

早速、本題の有料化の範囲を見ていきます。 例によって原文を確認します。 有料化に関して色々な解説記事が出ていますが、記事作成者の解釈が含まれてしまうので、誤った情報が含まれていたり、解釈が誤っていたりするので、こういう時は原文です。

Our Docker Subscription Service Agreement includes a change to the terms for Docker Desktop
It remains free for small businesses (fewer than 250 employees AND less than $10 million in annual revenue), personal use, education, and non-commercial open source projects.
It requires a paid subscription (Pro, Team or Business), for as little as $5 per user per month, for professional use in larger businesses.
The effective date of these terms is August 31, 2021. There is a grace period until January 31, 2022 for those that will require a paid subscription to use Docker Desktop.
The Docker Pro, Docker Team, and Docker Business subscriptions now include commercial use of Docker Desktop.
Check out our FAQ for more information. Or read our latest blog.

要点ごとに箇条書きで記述すると以下でしょうか。

  1. 小規模のビジネス(従業員数250人以下かつ年間収益が100万ドル以下)、個人利用、教育目的および非商用のOSS開発のいずれかの場合は無償で使用してもよい
  2. 上記よりも大きなビジネスやプロ版の利用をしたい場合は、利用者一人ごとに毎月5ドル以上のサブスクリプション契約が必要
  3. 上記の内容は2021年8月31日から有効で、2022年1月31日まで移行猶予期間を設ける。
  4. Docker Pro、 Docker Teamおよび Docker BUsinessはDocker Desktopの商用利用権を含んでいる

以上ですかね。 円安の今だと従業員数250人以下かどうかがライセンス費用が必要かどうかの分け目なような気がします。
ただ、グループ企業の場合はどうするのかとかそういった解釈が明確では無いので、親会社がいるソフトウェア開発の会社は支払いが必要になるかもしれないのでご注意を。

代替案の前に前提条件の確認

代替案を根拠づけるためにもライセンスの状況を整理したいと思います。

要点1:docker Desktopは便利ツールを組み合わせただけである

冒頭に述べた公式の見解を改めて確認するとdocker Desktopは複数のツールを組み合わせたものです。具体的には、Docker Engine, Docker CLI client、 Docker Build/BuildKit、 Docker Compose、 Docker Content Trust、 Kubernetes、 Docker Scan、そして Credential Helperですね。これらを良い感じに組み合わせて使いやすく整えたものが、docker Desktopなわけです。

Docker Desktop includes Docker Engine, Docker CLI client, Docker Build/BuildKit, Docker Compose, Docker Content Trust, Kubernetes, Docker Scan, and Credential Helper. 
要点2:docker Engine自体が有料化されたわけではない

有料化に関するよくある誤解ポイントの一つですが、docker自体が有料化されたわけではありません。
dockerコンテナを管理・開発するための開発ツールが有料化されただけなので、docker使ってるからお金を払う必要はないわけです。
linux上で誰かが作ったdocker コンテナを利用している場合は、有料化の対象にはならないわけですね。

要点3:本来DockerはwindowsMac上では動作しない

上の2つの要点は、有償を回避するための要点でしたが、3つめは注意点です。回避したと思ったけど実は回避できなかったという羽目にならないようにするために知っておいてほしいことですね〜。 本題に戻ると、Dockerは本来Linux上でしか動作しません。詳細な仕組みの解説は長くなるので控えますが、Dockerはコンテナ技術を使いやすくしているだけで、コンテナ技術はLinuxに搭載されている機能です。Linux上で確保されているコンテナ用のシステム領域についてがあるのですが、セキュリティとか権限の管理が厳密に管理されて使いづらいので、Dockerはユーザーが使いやすいような仕組みを設けてくれているというようにイメージいただけると良いかと思います。

でも、windowsMacでDockerを使えているけど?と思われる方が多いかもしれませんが、これはDocker Desktopが仮想技術を用いて、WindowsMacの内部でLinuxを動かしてくれているんですね〜。 Docker をそのままwindowsにインストールするといったことは事実上難しいということが大事な要点となります。

有償回避方法

以上を踏まえて、Docker Desktopを無料で使うためには以下に気をつけましょう。
以下のことを守っていると大きなビジネスでは使えないので、Docker Desktopの代替案を利用するのがおすすめです。

  • 従業員数250人以下かつ年間収益が100万ドル以下の組織で利用する
  • 教育目的として利用する
  • 非商用のOSSの開発に利用する

代替案1 仮想マシン上でDockerコンテナを構築する

一つ目は、仮想マシン上でDockerを構築していまいましょう。
要点3で述べたとおり、仮想マシン部分を自作で構築してしまって、Docker Desktopの役割を自分で構築してやろうという発想です。
これならば、Docker Desktopとは管毛ない利用できます。個人的なおすすめはVirtualboxを用いてUbuntuを用いることでしょうか。
仮想環境の構築方法については下記の記事を参照いただければ嬉しいです。

xinformation.hatenadiary.com

代替案2 対抗馬であるRancher Desktopを使用する

次は、Rancher Desktopを使う方法です。
Rancher Desktop はいわばdocker Desktop の対抗馬ですね~。
Docker Desktop と同じくコンテナを管理するためのツールです。
弱点といえば使用例が少なく、使い方の情報を入手しづらいことでしょうか。
加えて、導入時にコマンドを打ち込む必要があるので少々面倒ですね~。
とはいえ、Docker Desktopが有償化された今、Rancher Desktopが有名になる可能性が高いので今のうちに移行するのも良いと思います。

rancherdesktop.io

代替案3 WSL上でDockerコンテナを構築する

Windows限定の方法ではありますが、WindowsのWSL(Windows Subsystem for Linux)上でコンテナを構築する方法です。
代替案1とは違い、windowsの標準機能で実現する方法ですね。
WSLは、Windows上で、Linuxを動かすための仕組みで、Appstoreからインストールすることで利用可能となります。
利用できるdockerのコンテナ数に制限はありますが、手軽さで言えば、この方法が一番おすすめです。
またECSなどを使用すれば、dockerと似たようにコンテナの設定を予め作成して、自動でコンテナを生成するマシンとかも作れます。
用途は、若干限られますが、そうしたサービスを使用するのもありです。

WSLとvirtualboxの併用はできない

私も記事を作成していて知ったのですが、WSLとvirtual boxは併用できないようです。
詳しくは下記の記事をご覧ください。
なので、代替案1か2のどちらかを選択する必要がありそうですね。
個人的には、仮想環境の方が便利なので代替案1がおすすめです。

xinformation.hatenadiary.com

代替案4 クラウドサービスを利用する

少々お金はかかりますが、AWSのEC2上で実現する方法です。
vscode で接続すれば、ローカル上で構築したのと同じ利便性を維持できます。
作成方法のコツをつかむのが大変ですが、一度慣れてしまえば取り回しが効きやすくておすすめです。
ローカルマシン以上のリソースがすぐに構築できたり、要らなくなったらすぐに廃棄できるので管理も楽です。
若干、内容から外れますが、コンテナを使用するとコンテナ自体にマルウェアが入っていたりするので、クラウド上に構築してしまえばそういったリスクからも解放されます。
そういった面でも、クラウド上で構築する価値はあると思います。

代替案5 開発マシンをLinuxにする

Dockerについて何も悩みたくない場合は、WindowsMacを切り捨ててLinuxに乗り換えることでしょうか。
昨今、OSSの商用利用化が活発で今回もその煽りの一つなわけですが、OSSというかOSS開発者の特徴として「営利団体によるOSSの利益独占を嫌う」という特徴があります。
簡単に言えば、特定の会社のために汗水垂らしてOSSを開発しているわけでは無いんだ!という精神が根強いわけですね。
そうなると、windowsMacは名だたる企業が開発しているのでやり玉にあげられることが多いわけです。
Linuxは20年以上オープンソースですし、商用利用を嫌うライセンス(GPL)されていますから余程のことが無い限り、有料化しないでしょう。

最終案 コンテナを使わない

元も子も無いですが、コンテナを使わなければ、関係なくなります。
Dockerファイルを読み解けばほとんどのコンテナは自作できるので、その利便性さえ諦められないか検討するのも一案です。
こういう便利ツールに頼ると、プログラミングの知識がつかなくて応用力に乏しくなったりしますからね~。
プログラミングを勉強したいという方は、自分の使っているコンテナの内容を自力で再現するだけでかなり仕組みに詳しくなるはず。