Контейнеры - это просто экземпляр образа, который вы используете для их запуска. Настроение при создании контейнерного приложения заключается не в том, чтобы, например, взять свежий чистый контейнер ubuntu и загрузить в него приложения и конфигурации, которые вы хотите иметь, а затем позволить ему работать.
Вы должны рассматривать контейнер как экземпляр вашего приложения, но ваше приложение встроено в изображение. Правильным использованием будет создание пользовательского образа, в который вы вставляете все свои файлы, конфигурации, переменные среды и т. Д. В образ. Подробнее о Dockerfile и о том, как это делается, читайте здесь.
Как только вы это сделаете, у вас будет образ, содержащий все, и для использования вашего приложения вы просто запустите образ с правильными настройками порта или другими динамическими переменными, используя docker run <your-image>
Запуск контейнеров с --rm
флагом хорош для тех контейнеров, которые вы используете очень короткое время, просто чтобы что-то сделать, например, скомпилировать свое приложение внутри контейнера или просто протестировать что-то, что оно работает, а затем вы знаете, что это недолговечный контейнер, и сообщите своему демону Docker, что после его завершения удалите все, что с ним связано, и сэкономьте место на диске.
--rm
удаляет остановленный контейнер (тот, которыйdocker run
создается), а не образ, на котором он был основан (то, что вы скачали).