見出し画像

Docker Desktop有料化? Dockerが無料で使えなくなったの?

Dockerはタダで使えないの?→結論

2021年9月よりライセンスが変更されたDocker Desktop。新ライセンス自体はよくある感じですが、こうしたライセンスにあまり詳しくない人が、結構勘違いしているケースを見かけるので、若干遅いですがまとめておきます。

1)今回ライセンスが変更されたのはDocker Desktop
まず、Dockerは、「Docker Engine」をインストールして使います。このDocker Engineに関するライセンスの変更はありません。
ただ、Dockerには、「Docker Desktop(以下デスクトップ版)」と呼ばれるWindowsやMacで使えるものがあります。本来、DockerはLinux上でしか動きませんが、WinやMacでも使えるようにしたものです(ザックリ言うと)。
ライセンスが変更されたのは、このDocker Desktopです。Docker本体(Engine)ではありません。

※現在、Linux用デスクトップ版が開発中です。現在のデスクトップ版では、GUI(画面での操作)が提供されているので、デスクトップ版=GUI版くらいの意味になるのかも。

2)個人で使う分には無料
下に詳しく書きましたが、基本的に個人で使う分には無料です。有料になるのは、ザックリ言うと大企業です。中小企業(Small Business)も無料です。
まあ、中くらいの企業は有料かもしれないけど、小さい企業は無料。詳しくは以下。

ライセンスってどう変わったの?

2021年9月よりライセンス大幅に変わったDocker Desktop。
Docker Desktop 4.0によって何が変わったか、今まで無償で使用してきた人はこれにより何ができて何ができなくなった(有償となった)かまとめてみましょう。

1)Docker社提供リソースのライセンスが変更になった

実をいうと、Docker Desktopが4.0になってDocker Desktopというソフトウェアに使用制限がかかったというよりは、Docker社によるDocker社提供のリソース、つまりDocker Hubの利用を含むDocker関連全体に見直しがかかったという感じです。

見直し後のライセンス体系は https://www.docker.com/pricing で確認できます。
「Personal」「Pro」「Team」「Business」の4種類があり、「Persoal」はDocker ID(ユーザ登録。登録のみは無料)を持っているか、匿名利用かで影響範囲が異なります。
つまり、Dockerの利用者は必然的に
 ・Persoalライセンス(匿名)
 ・Persoalライセンス(ユーザ登録者)
 ・Proライセンス(ユーザ登録者)
 ・Teamライセンス(ユーザ登録者)
 ・Businessライセンス(ユーザ登録者)
のどれかに分類されます。

2)Persoal(個人)ライセンスは無償

このうち、Persoalライセンスは無償で利用可能ですので、これまで無償で使用してきたユーザはDocker IDを使用するかどうかにより「Persoalライセンス(匿名)」もしくは「Persoalライセンス(ユーザ登録者)」のどちらかのユーザとして引き続き無償で利用できます。
なお、これだけですと「結局はDocker Desktopはどうなの?」と思うかもしれません。でもご安心ください。PersoalライセンスにはDocker Desktopを使用する権利もありますので、引き続きDocker Desktopを無償で利用することができます。

3)大企業が商用目的で使うなら有料

とは言ってもやはり締めてくるところは締めてきます。
では逆に制限がかかる部分を見ていきましょう。
Docker Desktopの無償利用は個人、教育関係者、非営利のオープンソースコミュニティ関係者、中小企業(※)に限られています。そのため、個人の学習用として利用する分には問題ありませんが、中小企業を除く企業が商用開発目的でDocker Desktopを利用する場合には有償ライセンスが必要となりますのでご注意ください。
※従業員250人未満かつ年間収益1000万ドル未満の事業者および個人

画像1

Docker Hubも有料化?

続いてDocker Hubの利用ですが、ここでもPersoalライセンスでの制限がかかります。特に匿名とユーザ登録者では大きな違いが生じます。
Persoalライセンスで一番大きな影響はdocker pullコマンドを使用した際にDocker Hubからpullできる回数に制限がかかり、6時間あたり匿名ユーザで100回、ユーザ登録者で200回までとなります。
この100回、200回という回数は、Dockerの学習をする上で数時間程度試行錯誤していれば、個人でも案外到達するレベルの回数です。そしてもう一つ重要なこととしてpull数のカウントの仕方ですが、匿名ユーザの場合、カウントはIPアドレス単位で行われます。そのため、個人では100回到達まで数時間レベルであっても、会社などで同じIPアドレス(グローバルIPアドレス)で複数名が利用していた場合はあっという間に上限に達します。
そして、pullに対する回数制限はDocker Desktopに限定した話ではなく、LinuxのDockerでも同様です。
これを避けるためにはDocker Hubにユーザ登録を行い、Docker IDをDocker利用時に設定して利用すればカウントはID単位となりますので上限に到達しにくくなります。
なお、Pro以上のライセンスは1日5000回までとなり、普通に使用している分には問題ないレベルです(回数の基準がPersoalは6時間あたり、Pro以上は1日あたりとなりますが誤植ではありません)。
ただし、これはDocker Hubからpullする場合です。Amazon ECRなど他のリポジトリからpullする場合には影響ありません(厳密には使用するリポジトリのルールに準じることになります)。

また、Docker Hubにはユーザ側が作成したカスタムイメージをDocker Hub上にアップできる機能があります。基本的にPublicリポジトリ(誰でも利用できるリポジトリ)にアップすることは無制限で利用できますが、Privateリポジトリ(個人で利用するための非公開リポジトリ)にアップできる数は1つに制限されています。
これがPro以上になればPrivateリポジトリは無制限になります。
また、PersonalではDocker Hub上でのビルドができませんでしたが、Pro以上では可能になります(同時ビルド可能数はライセンスにより変わります)。

他にも細かい違いはありますが、無償版と有償版で大きな違いはこのような感じです。

なお、有償ライセンスについては、主に下記の通りです。

「Pro」…ライセンス最低数1名からで1名当たり$5/月。主に個人レベルで商用開発するユーザを対象。
「Team」…ライセンス最低数5名からで1名当たり$7/月。「Pro」の全機能に加え、チーム開発を想定し、チーム内ユーザの役割に対するアクセス制限をかけることができるなど、複数名開発を前提とした機能が追加される。
「Business」…50名以上推奨。1名当たり$21/月。大規模な開発プロジェクトユーザを想定し、「Team」の全機能に加えユーザを一元管理できる機能やセキュリティ機能などを提供。

上記はおおよその内容となりますが、細かいところは公式ホームページで確認するとよいでしょう。https://www.docker.com/pricing

ライセンスの変更はDocker Desktopであって、Docker Engineではない

このようにDocker Desktopを無償で使用するには制限がありますが、この制限はDocker Desktopに対してのみです。
そのため、デスクトップ版を使わずに、Windows上で無償でDockerを使用するには、Windows上にLinux環境を用意して、そこにDockerをインストールして行う方法もあります。
具体的には、

・仮想環境を用意し、Linuxサーバを構築する
・Windows のWSL機能を使用し、Windows StoreからLinuxをダウンロードしてLinuxサーバを構築する。
・Minicubeという、小さなDocker開発環境ソフトウェアをインストールする

などがあります。

ただし、これらはLinuxでの動作、つまりCUIベースとなり、Docker Desktopのようなグラフィカルなダッシュボードインターフェースはありませんので少し慣れが必要かも知れません。


無償でDocker Desktopを使用できない場合、上記のような回避方法がありますが、TeamやBusinessの固有の機能が必要なければ$5/月のProライセンスで今まで通りの使用が可能です。
そのため、自分の利用環境に合わせて適切なライセンスを選ぶと良いかと思います。(文責 浅居尚/小笠原種高)
※この記事は2021年11月時点の内容なので、未来のあなたが読んでいる場合は、自分で最新のソースを確認してね。

この記事が気に入ったらサポートをしてみませんか?