我們有一個場景,我們建立一個使用多個碼頭圖像和集裝箱的產品。我們的Jenkins環境構建單個組件,將它們打包到容器中,然後(通常)將它們部署到測試實例中。不幸的是,讓這些測試實例變得清潔已經成爲我遇到問題時遇到的問題。通過jenkins外殼在奴隸上清潔碼頭集裝箱
奴隸是Ubuntu 14.04和16.04 LTS。 Docker是這些版本的最新穩定版本(1.12.3) 假設jenkins用戶已正確連接到從屬設備,並通過sudoers文件擁有sudo權限來運行docker命令。用戶也在碼頭組中。因爲我們開始與正在運行的一套經泊塢窗,撰寫創建容器,我們停止容器作爲詹金斯shell腳本開始
泊塢窗,撰寫停止
然後我們去掉那些容器和相關卷與
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'(有點慢) '泊塢窗PS -qa | xargs docker rmi -f' – Rik
容器是否與圖像具有相同的散列?我一直認爲他們是兩個獨立的實體,但也許我沒有仔細閱讀文檔。 – Kevin
對不起,我是他們的錯。所以它是'docker images -qa | xargs docker rmi -f'和'docker ps -qa | xargs docker rm -f' – Rik