Как очистить сиротские контейнеры Docker?

У меня есть установка, при которой пользователи входят в хост-машину через 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, и контейнеры остаются сиротскими.

У вас есть идеи, как сделать контейнеры для на самом деле быть удаленными в этом случае или, по крайней мере, как я могу найти сиротские и вычистить их?

Спасибо.

0
задан 15 September 2017 в 10:26
2 ответа

Мое решение заключалось в том, чтобы поместить запуск докера в сценарий с ловушкой, что-то вроде

trap "if docker ps | grep -c ${CONTAINER_NAME}; then docker stop ${CONTAINER_NAME}; fi" 0 1
0
ответ дан 5 December 2019 в 07:27

docker ps -a поможет вам найти контейнеры, которые не были очищены.

0
ответ дан 5 December 2019 в 07:27

Теги

Похожие вопросы