Docker-compose: возможность автоматического удаления контейнера после запуска в docker-compose.yml

ДВУ: Это все еще невозможно 2018-11; использовать docker-compose down или docker-compose run --rm

Я хочу дать обновленный ответ на этот вопрос, потому что прошло почти 3 года. Это избавит других от некоторых поисков.

У меня был тот же вопрос, и вот найденные мной обходные пути (в том числе из самого вопроса):

docker-compose down

который выполняет следующее:

Останавливает контейнеры и удаляет контейнеры, сети, тома и образы, созданные up.

По умолчанию удаляются только следующие элементы:

- Containers for services defined in the Compose file- Networks defined in the networks section of the Compose file- The default network, if one is used

Сети и тома, определенные как внешние, никогда не удаляются.

Хотя вы не можете объявить это в docker-compose.yml это избавит вас от некоторых хлопот, особенно с объемами и сетями.

docker-compose run --rm

--rm - Удалить контейнер после запуска. Игнорируется в отключенном режиме.

Выполняет одноразовую команду для службы. Например, следующая команда запускает веб-службу и запускает bash в качестве ее команды.

docker-compose run web bash

[...] команда, переданная с помощью run переопределяет команду, определенную в службе конфигурация.

[...] команда не создает ни один из портов указанный в конфигурации службы. Это предотвращает коллизии портов с уже открытыми портами. Если вы действительно хотите, чтобы порты службы были созданы и сопоставленный с хостом, укажите --сервис-порты флаг

docker-compose rm -f

-f, --force Не запрашивать подтверждение удаления