Site cover image

Site icon imageおかしんワークス

ビジネステクノロジーエンジニア @okash1n のブログです

Docker Desktopの有料化が企業に与える影響と、企業における適切なDockerの利用方法

今や世の中のあらゆるシステムの開発現場においてコンテナ技術は無くてはならないものになっています。コンテナ技術の中で最も広く利用されているのはDockerコンテナですが、昨年オープンソースソフトウェアであるDockerを開発しているDocker社が「Docker Desktop」というアプリケーションを有料化しました。

そこで、企業においてはどのように対応すべきか?また回避策はあるのか?を考えてみました。

Docker Desktopとは何か

Docker DesktopはDocker社が提供しているソフトウェアでオープンソースソフトウェアであるDockerをWindowsやMacOSにおいて簡単にインストールし利用できるアプリケーションです。

DockerはLinuxで動くものなので、LinuxではないWindowsやMacOSではこういったアプリケーションが必要になります。よって、WindowsやMacOSを利用している開発者のほとんどはこのDocker Desktopを今まで利用してきました。(Docker Desktop以外にも仮想マシンとしてLinuxを動かし、その中でDockerを動かすという方法があります)

なお、後述しますが最新のWindowsはLinuxカーネルを内包しているのでDockerの利用にDocker Desktopを必要としません。

Docker Desktopの有料化

昨年Docker Desktopの有料化のニュースが出た際には日本のSNSでも「Dockerが有料化!?」というようなワードが並びましたが、あくまでDockerをWindowsやMacOSで動かすための「Docker Desktop」が有料化されただけで、Dockerそのものは無料で使えます。

さて、有料化の内容ですが、以下のような内容です。

Image in a image block
  • 小規模企業(従業員250人未満、年間売上1000万ドル未満)、個人利用、教育、非商用オープンソースプロジェクトには無料で提供される
  • 大企業でプロフェッショナルに使用する場合は、1ユーザあたり月額5ドルからの有償サブスクリプション(Pro、Team、Business)が必要
  • 有償サブスクリプションに切り替える猶予期間は2022年1月31日まで
  • Docker Pro、Docker Team、およびDocker Businessの各サブスクリプションには、Docker Desktopの商用利用が含まれています。

さらなる値上げ

そして、2022年10月18日にはDocker社からこれらのプランの値上げが発表されました。

Teamプラン(年間契約) :月額7ドルから9ドルへBusinessプラン(年間契約):月額21ドルから24ドルへ

また、これまでTeamプランはユーザー数無制限でしたが、最大100名までに制限されることになりました。この100名の制限が企業によってはかなり厳しいものになります。例えば200名ほどでTeamプランを利用していた企業は一人あたり月額7ドル、全体で月額1,400ドルで利用出来ていましたが、Businessプランに移行しなければならない為、一人あたり月額24ドル、全体で月額4,800ドルとなんと従来の3.4倍以上のランニングコストがかかります。頭が痛いですね。

値上げは2022年10月27日からとなります。

企業において必要な対応

有料化および2022年10月27日の価格変更についてまとめると以下のようになります。

  • 従業員数250人以上もしくは年間売上1000万ドル(約15億円)以上の企業がDocker Desktopを商用利用するには、Proプラン以上に加入しなければいけない
  • 利用人数が100名を超える場合はTeam Planは利用できず、Business Planを利用しなければならない(Pro Planが利用できるのかどうかは不明)

ということです。ここで言う商用利用とはどういう意味でしょうか?

商用利用とは、製品やサービスが商業的な利益のために使用される活動のことを指します。この利益とは、金銭的なもの、名誉に関わるもの、その他のもので、最終的にはユーザーの商業活動に利益をもたらすものです。

商用利用について知っておくべきこと|アトラシアン・ブログ (atlasmic.com)

つまり営利企業において業務上こういったツールを利用する場合は厳密に言えば全て「商用利用」にあたると考えて良いでしょう。

利用規約によると、Docker Desktopをダウンロードした時点で利用規約に同意したことになり、支払いが遅延した場合は月々1.5%の延滞利息が発生すると記載されています。月利1.5%は年利約19.56%でサラ金利息制限法の上限ギリギリくらいの利息ですね。

また、Docker社は利用について監査することができ、利用者は3年間分の利用やアクセスについての完全な記録を残すこととされています。もちろん監査の結果ライセンス違反が認められた場合は遡って請求されるかもしれません。

よって、条件に当てはまる企業がDocker Desktopを利用する場合にはProプラン以上を契約する必要があります。

100名以上の場合でProプランの利用を制限するような記述は見当たりませんでしたが、Proプランは請求をまとめたりすることが出来ず、個々人のアカウントに紐づくプランであるため、100名以上利用者がいる企業でProプランを選択するのは現実的では無いでしょう。

実際のところ、特に画像などのアセット系サービスも含めて、こういった「契約しなくても使おうと思えば使えてしまうサービス」は国内でもライセンス違反が横行しているのが現実です。

ですが、上に書いたようにサービス提供者の監査によってライセンス違反が発覚した場合や、第三者や内部告発、会社に不満を持つ退職者による告発などによってライセンス違反が発覚した場合には、遡及して多額の請求を課されたり、企業の社会的信用を失うことにもなりかねません。

いくつか例をあげますと、

サービス提供者の監査ではSalesforce社が特に厳しく、複数の端末で同じアカウントで利用しているとすぐに電話がかかってきてライセンス数の変更を求められたりします。

第三者による告発ですと、例えば昨年退任されたデジタル庁の事務方トップである石黒洋子氏は、アセットストックサービスであるPIXTAのサンプル画像を個人のサイトで利用していたことが第三者からPIXTA社へ告発され、PIXTA社からSNSを通じて指摘されるといったことがありました。

Docker社がそこまでやるかどうかはわかりませんが、企業においては様々なWebサービスやアプリケーションを適切に利用料金を払って利用するというのがやはり基本的な対応ではないでしょうか?

特におなじく有料のWebサービスやアプリケーションを提供している企業において、こういったライセンス違反をするということは自らのビジネスを否定していることにもなると私は思います。

使うなら払う。払わないなら使わない。当たり前のことですね。

Docker Desktopを使わない

さて、冒頭で何度も繰り返した通り、Docker Desktopは有料化されましたが、Dockerそのものは有料化されたわけではありません。

「払わないなら使わない」と書きましたが、「使わないなら払わなくても良い」とも言えます。

Docker Desktopを使わずにDockerによる開発を行うにはどうすれば良いのでしょうか?

以下のようにいくつか方法はあります。

①Linuxを使う

UbuntuなどのLinuxであれば、Docker Desktopが無くても簡単に無料でDockerを使うことができます。弊社の ERDOS Balint はDellのXPSにUbuntuをインストールしそれを業務に利用しています。(開発業務だけでなく全ての業務をUbuntuで行っています。)

とはいえ、企業においてサーバーではなく業務用のクライアントPCとしてLinuxを利用する場合、作り込まずに使えるデバイス管理サービスがあまり豊富で無い為、情シス的には厳しいかもしれません。

ちなみにMicrosoft Defender for EndpointがLinuxにも対応している為、弊社ではこれを利用しています。またMicrosoft Intuneも先日Linuxに対応しました。(こちらは検証中)

②仮想マシンを使う

VMwareやVirtualBox、Parallels、Hyper-Vといった仮想化ツールでLinuxを動かし、その中でDockerを使うという方法もあります。

これも①と同様Docker DesktopがなくてもDockerを利用することが出来ます。

なお、Docker DesktopはWindowsやMacOSでDockerを使う為のソフトウェアであると書いてきましたが、Linuxにおいても使えますし、Dockerイメージの管理などといった便利な機能がたくさんあります。

③WSL(Windows Subsystem for Linux)を使う

実は最新のWindowsでは上述のHyper-V仮想化システムをベースに完全なLinuxカーネルを内包することでWindowsとLinuxを併用することができるWSL(Windows Subsystem for Linux)という仕組みがあります。

「②の仮想化とどう違うの?」と思った方もいるかもしれませんが、Hyper-VはVMwareやVirtualBox、Parallelsといったホスト型の仮想化ソフトウェアとは少し仕組みが違い内部的にはホストOSすらも仮想マシンとして動くハイパーバイザ型仮想化ソフトウェアで、どちらかというとVMware ESXiに近い仮想化システムなのですが本題ではないので割愛します(詳しく書くとこれだけで10記事くらい書くことになるので)

簡単に言うと②はホストOS上でゲストOSのカーネルが仮想的に動きますが、WSLはホストOSであるWindowsの上でゲストOSが動くのではなくWindowsのカーネルとLinuxのカーネルはいずれもHyper-Vというハイパーバイザ型仮想環境上で並列で動いています。

この方法であれば、完全なるLinuxを使いつつも企業でのデバイス管理もしやすいWindowsマシンを使うことが出来ます。

WindowsでDocker Desktopに依存せずにDockerを利用する方法

簡単ですが「③WSLを使う」の方法を解説します。

WSL2のインストール

Windows11の環境を前提に解説します。以前のWSLおよびWSL2はWindowsのオプションコンポーネントとして提供されていたので、Windowsの「機能」からWSLを有効化しないと使えなかったのですが、現在は単体のアプリケーションとして実行できるようになっているので、仮想化プラットフォームの機能さえ有効にしていれば、Microsoft StoreからWSLおよびUbuntuをインストールするだけで利用できます。

Image in a image block

Windowsの機能からWSLを有効化する必要はない

Image in a image block

仮想マシンプラットフォームは必要

今回はストアからインストールしていこうと思います。

Microsoft Storeを開いて、wslとubuntuと検索して「入手」するだけです。

Image in a image block
Image in a image block

詳しい手順をOpenSOPにしましたのでそちらを是非ご覧ください。

Macではどうすれば???

残念ながらMacではWSLのような仕組みは無い為、「②仮想マシンを使う」しか方法がありません。

VirtualBoxなどを利用しましょう。

私は利用したことはありませんがLimaという仕組みがあるようです。

2022-10-24 追記

Rancher Desktopというアプリケーションが、Docker Desktopに使用感が近く、ほとんど同じように使えるとのことでした。内部的には前述のLimaが動いているようです。

あとがき

いかがでしたでしょうか?Docker Desktopの有料化に伴って、企業において適切にDockerを利用する方法を考えてみました。

なお、後半は無料で使い続ける方法をいくつか記載しましたが、LinuxにしろDockerにしろWebやアプリケーションの発展に多大な貢献をしてきたオープンソースソフトウェアです。IT企業は自らの発展のためにも、こういったオープンソースソフトウェアには金銭面も含めて何かしらの貢献をしていくのが良いのではないかなーというのが個人的な意見です。

ちなみに私は最近はWindowsでもMacでもターミナルをほとんど使わなくなりました。全部GitHub Codespaces上で作業しています。実はCodespacesはDockerで動いているのですが、さらにその中でDockerを動かすDocker in Dockerも可能なので、これもDocker Desktopを使わないでDockerを利用するための一つの選択肢かもしれませんね。