Dockerコンテナーは、その中で実行するサービスをシステムの他の部分から分離するために使用されます。その意味では、VM(仮想マシン)と違いはありません。
必要なサービス、たとえばmysqlをコンテナにインストールする必要があります。VMを使用する場合と違いはありませんが、VMにはオペレーティングシステムもインストールする必要があります。そのため、Dockerには大きなサイズの利点があります(多くの場合、数GB)。
Dockerコンテナでシングルサーブを実行する場合、完全なオペレーティングシステムに付属しているすべてのパッケージは必要ありません。サービスを実行するために必要なものをインストールするだけです。
コンテナの作成に使用するDockerfileは、コンテナにインストールするものを正確に指定します。サーバーまたはデスクトップシステムにパッケージを追加するのと同じ方法で、必要なものを追加できます。
新しいコンテナを作成すると、Dockerは同じベースコンテナを使用する既存のコンテナも「再利用」します。たとえば、最初のコンテナは300MBを占有する場合がありますが、同じベースコンテナを持つ後続のコンテナは数MBしか使用しない場合があります。
2つの同一または類似のVMを作成する場合、それらは常にフルサイズになります。
Dockerサイトのこの記事では、Dockerイメージとコンテナーの構築方法について説明しています。
Dockerコンテナが完全なオペレーティングシステムなしで実行できる理由については、https://serverfault.com/q/755607/388193を参照してください。