Dockerfile может иметь инструкции для сборки как Linux, так и Windows контейнеров. Для запуска контейнера нужно убедиться, что соответствует аппаратная архитектура контейнера и ОС. Бывает, что контейнеры собираются для множества архитектур одновременно.
Контейнеры Linux можно собрать и запустить в Linux, MacOS, Windows. Контейнеры Windows, если не ошибаюсь, можно запустить только в Windows.
Так что если речь про контейнер Linux, то, как правило, это архитектура amd64. А значит, для запуска контейнера подойдет любой Linux с процессором архитектуры amd64 (server/desktop).
Перед запуском контейнера автоматически устанавливаются недостающие слои. В контейнере принято запускать единственный процесс (порой супервизора процессов).
Например, нужны 2 контейнера: старого приложения на PHP 5 и сервера Mysql 5.5. Тогда в Dockerfile приложения контейнера описывается на каком образе основано приложение (допустим, версия фреймворка) и тогда разработчик с помощью Docker собирает контейнер и запускает его.
Обычно для запуска нескольких контейнеров пишут сценарий для запуска в Docker Compose, в котором описываются различные контейнеры, необходимые для работы приложения и то как они обращаются друг к другу.
И, вообще, есть много ответов в Хабр Q&A и много статей в интернете.