У нас есть сценарий, в котором мы создаем продукт, который использует несколько изображений докеров и контейнеров. Наша среда Jenkins создает отдельные компоненты, упаковывает их в контейнеры, а затем (обычно) развертывает их для проверки экземпляров. К сожалению, заставить эти тестовые экземпляры быть чистыми, стало проблемой, что у меня проблемы с решением проблемы.Очистка контейнеров-докеров через оболочку jenkins на подчиненном устройстве
Рабочие являются ubuntu 14.04 и 16.04 LTS. Docker - самая последняя стабильная версия для этих сборников (1.12.3). . Предположим, что пользователь jenkins правильно вставлен в подчиненное устройство и имеет разрешения sudo через файл sudoers для запуска команд docker. Пользователь также находится в группе докеров. Так как мы начинаем с управлением набором контейнеров, созданных с помощью DOCKER-композа, мы остановить контейнеры как сценарий оболочки Jenkins, начиная с
DOCKER-композом остановкой
Затем удалить эти контейнеры и связанные с ними объемы с
docker-compose rm -fv
Теперь пришло время удалить изображения, потому что мы собираемся ударить новый набор изображений на их место. Здесь мой код развился, но он не сработал.
В настоящее время я сделать следующее:
dockerimagesoutput="$(sudo docker images -q | sort | uniq)"
if [ ! -z "$dockerimagesoutput" ]; then
sudo docker rmi "${dockerimagesoutput}"
fi
Когда это работает на подчиненном, я ветер с
sudo docker images -q
+ sort
+ uniq
+ dockerimagesoutput=01b1b8ea71f4
027c45033c40
0b17fb320c4f
182d60ace820
19a515d76e88
.
.
.
c10984351e73
c2c4b1989875
c95d5afc74e2
ca82cd3aa0d4
d0521df160d4
d99ef18f88fd
e01106d204cb
e0b4f8e0248d
f0a4e63c158c
f14a297b157d
f7dbb67755a8
fe35996d49e9
ff1f30708195
+ [ ! -z 01b1b8ea71f4
027c45033c40
0b17fb320c4f
182d60ace820
19a515d76e88
27f52880c6e2
2af6e3c3e3d7
.
.
.
8d6bfee5cecd
8f244f8ae3db
8f72d2d366e9
9393b391526a
97f2023dcc65
a4d2bb5d4d52
ab4148bd2fb9
aee91e3b71a7
b34b797e9fe6
b4d1c74da310
c10984351e73
c2c4b1989875
c95d5afc74e2
ca82cd3aa0d4
d0521df160d4
d99ef18f88fd
e01106d204cb
e0b4f8e0248d
f0a4e63c158c
f14a297b157d
f7dbb67755a8
fe35996d49e9
ff1f30708195 ]
+ sudo docker rmi 01b1b8ea71f4
027c45033c40
0b17fb320c4f
182d60ace820
19a515d76e88
27f52880c6e2
2af6e3c3e3d7
306ad873c7d8
3258b6beb926
4890da71db50
4aa966f33a88
4f9a28709c33
524ef9a2e9fd
549a9df5d9c4
594ea008ad1c
5ac2e713a1e6
62351a723b50
688715837b4c
.
.
.
9393b391526a
97f2023dcc65
a4d2bb5d4d52
ab4148bd2fb9
aee91e3b71a7
b34b797e9fe6
b4d1c74da310
c10984351e73
c2c4b1989875
c95d5afc74e2
ca82cd3aa0d4
d0521df160d4
d99ef18f88fd
e01106d204cb
e0b4f8e0248d
f0a4e63c158c
f14a297b157d
f7dbb67755a8
fe35996d49e9
ff1f30708195
Error response from daemon: page not found
Там нет никакого способа для меня, чтобы знать, какой образ вызывает эту страницу не найден ошибка, есть? Или есть более чистый способ удалить все изображения с моей подчиненной машины, чтобы начать новую работу?
вы можете использовать 'xargs' (немного медленнее) ' Докер пс -qa | xargs docker rmi -f' – Rik
ли контейнеры имеют одинаковый хэш как изображения? Я всегда считал их двумя отдельными сущностями, но, возможно, я недостаточно читал документы. – Kevin
Извините, моя ошибка. Так что это 'docker images -qa | xargs docker rmi -f' и 'docker ps -qa | xargs docker rm -f' – Rik