У меня есть настройка, в которой пользователи входят в хост-машину через PuTTY и могут создавать контейнеры Docker для их использования.
Команда Docker выглядит так:
docker run -it --rm -v /home/$USER:/home/$USER -w="/home/$USER" -u $USER --hostname="$USER-gcc463-docked" precise-gcc4 tmux new -s docker-$USER
Как видите, я использовал --rm, поэтому контейнер теоретически должен удаляться при выходе пользователя, но на практике некоторые пользователи закрывают окно PuTTY, и контейнеры остаются сиротскими.
У вас есть идеи, как я могу сделать так, чтобы контейнеры действительно были удалены в этом случае, или, по крайней мере, как мне найти сиротские контейнеры и очистить их?
Спасибо.
Мое решение заключалось в том, чтобы обернуть запуск докера в скрипт с ловушкой, что-то вроде
trap "if docker ps | grep -c ${CONTAINER_NAME}; then docker stop ${CONTAINER_NAME}; fi" 0 1
docker ps -a
поможет вам найти контейнеры, которые не были очищены.