Docker Desktop有料化の影響

# TL; DR

2021年8月31日にDocker社がDocker Desktopを有料化するという衝撃の発表をしました。

https://www.docker.com/blog/updating-product-subscriptions/

> - We’re introducing a new product subscription, Docker Business, for organizations using Docker at scale for application development and require features like secure software supply chain management, single sign-on (SSO), container registry access controls, and more.
> - Our Docker Subscription Service Agreement includes a change to the terms for Docker Desktop:
>   - Docker Desktop 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), starting at $5 per user per month, for professional use in larger businesses. You may directly purchase here, or share this post and our solution brief with your manager.
>   - While the effective date of these terms is August 31, 2021, there is a grace period until January 31, 2022 for those that require a paid subscription to use Docker Desktop.
> - Docker Pro, Docker Team, and Docker Business subscriptions include commercial use of Docker Desktop.
> - The existing Docker Free subscription has been renamed Docker Personal.
> - No changes to Docker Engine or any upstream open source Docker or Moby project.
> - Check out our FAQ or more information.

筆者による日本語訳

> - 私たちはDocker Businessという、大規模アプリケーション開発のためにDockerを用いており、セキュアなソフトウェアサプライチェーン管理、シングルサインオン、コンテナレジストリアクセス管理等の機能を必要とする組織のための、新しい製品購読を紹介します。
> - 私たちのDocker購読サービス利用規約は以下のDocker Desktopの利用規約の変更を含みます。
>   - Docker Desktopはスモールビジネス（250未満の従業員かつ$10,000,000未満の年間収益）、個人的利用、教育的利用、非商用利用、及びオープンソースプロジェクトに対しては無料のままです。
>   - より専門的で大きなビジネスに対しては一人一ヶ月あたり$5からの有料の購読（Pro, Team, Bussiness)が必要です。あなたはここで直接支払ってもよいですし、またはこの投稿と私たちのソリューションをマネージャに共有することができます。
>   - 新しい利用規約は2021年8月31日から有効ですが、2022年1月31日まで、有料購読するための猶予があります。
> - Docker Pro, Docker Team, Docker Business定期購読ではDocker Desktopを商用利用することができます。
> - 既存のDocker Free購読はDocker Personalと名称変更されました。
> - Docker Engineや上流のオープンソースDockerやMobyプロジェクトに変更はありません。
> - 詳細はFAQをご確認ください

Docker Desktopを商用利用している大規模な企業は、　2022年1月31日までに有料プランの購読か、代替手段への移行が必要です。

# Docker Desktopの有料化の影響
今回有料化されるのはDocker Desktopです。これはWindowsやMacでDockerを管理を行うためのGUIアプリケーションです。

今回の有料化で以下のことは無料ではできなくなります。

- Docker Desktopを用いたDockerのインストール、更新
- Docker DesktopからImage/Volume/設定等の管理

以下のことは引き続き無料で可能です。

- WindowsでWSL2上に直接dockerをインストール
- Macで仮想マシン上にdockerをインストール（M1　Macで可能かはわかりません）
- `docker-cli`を用いたdockerの操作

手動でのDockerのインストールや定期的な更新は地味に手間がかかります。
またMacでVMにアクセスしないとDockerが使えないのは結構困るでしょう。

# 有料プランでは何が可能になるのか
有料プランを定期購読するとDocker Desktopの利用に加えて、以下サービスが可能になります。

- DockerHubでのプライベートレポジトリの利用
- CIでのコンテナイメージのビルド
- DockerHubからのイメージのPull
- イメージの脆弱性スキャン
- アクセス管理機能(Teamの作成やRole-based アクセス管理）

https://www.docker.com/pricing

有料プランを購読する場合はコンテナイメージの管理をDockerHubで行うことにメリットがありそうです。

# 代替案はあるのか

## Podman 
PodmanはDockerの代替ツールです。

https://podman.io/

これはコンテナのランタイムを提供するものなので、Docker Desktopの代替となるかというと難しいところだと思います。

## Docker Machine
Docker MachineはWindowsやMacでVM経由でdockerを動かすツールです。

https://github.com/docker/machine

こちらはオープンソースなので無料で使えますが、開発が止まっています。

# まとめ

Docker Desktop有料化によって以下の二つの選択肢のいずれを選択するか迫られることになりました。

- 有料プランを購読する場合
    - Docker Desktop単体ではコスパはあまり良くないでしょう。DockerHubも積極的に利用したいところです。
- 有料プランを購読しない場合
    - Dockerのインストールやアップデートを手動で行う必要があるため、管理用のツールなどを内製する必要があるでしょう。