自分用の覚書で、認識が間違っているかもしれませんし、歯抜けでまとまっていませんので、ご参考程度で。
DockerとSnapsの違い
Dockerの特徴
- LinuxやWindowsやmacOSに、Dockerをインストールすることで使用可能。
- 仮想環境のため、たとえばWindowsでUbuntuを動かすことができる。
- UbuntuやMariaDB等の「イメージ」が配布されていて、自動ダウンロードして使いたいシステムを動かす事ができる。
- 「イメージ」は使用したいCPUアーキテクチャに対応したものが必要。x86_64や、arm7l、aarch64等。
- 使いたいサービスは「コンテナ」で管理できる。コンテナにデータが入る感じ。
- サービスのポート番号を容易に変更できるので、たとえば1つのPCで複数のMariaDBやWordpress等を動かすことが可能。「分散化」と呼ばれるようです。
メリットは、仮想環境でいろいろなOSでLinuxを動かせること、コンテナでサービスを管理できるため、バックアップ等が簡単な事などでしょうか。
Snapsの特徴
- Linuxでいろいろなディストリビューションの垣根を超えて利用できる。
- IoTデバイスを対象に、各種アプリけションをインストールして動かす仕組み。
- 基本的にサーバ向けでは無いようです。
- OSの仮想環境とは異なるようです。
- CPUアーキテクチャに依存しない?(勉強中)
- 使いたいサービスはsnapコマンドで管理できる。サービスの停止・起動や設定変更など。
- サービスのポート番号の変更なども、snapコマンドで対応していれば可能。
メリットはシンプルさでしょうか?サービスのインストール、管理、動作環境も/var/snapにまとめられてシンプルな印象です。
Dockerの「コンテナ」による分散化は、データをバックアップしたりサービスのポートを変更する場合に便利な利点です。
一方、仮想環境が不要な場合は、Snapsでも同様な利点が得られそうな・・・・このあたりは勉強しながら調べてゆきたいと思います。