2017-09-25 29 views
0

這可能是重複的,但是我看到的所有答案都不適用於我。快速碼頭容器刷新工作流程

我在使用docker(17.06.2-ce),docker-compose(1.16.1)。

我有一個solr的圖像,我用於開發和測試目的(也在CI上)。 當對圖像進行更改時,我需要重新生成圖像並重新創建容器,以便容器使用最新的可能圖像,然後該圖像從本地回購中獲取最新的可能代碼。

我已經創建了基於官方solr-docker圖像的自己的圖像。回購是一個包含額外步驟的文件夾,我將其應用於圖像,例如複製文件並使用sed對現有配置進行更改。

我在回購工作,並有容器在後臺運行。

當我需要刷新的容器,我通常執行這些命令

sudo docker-compose stop sudo docker rm $(sudo docker ps -a -q) sudo docker rmi $(sudo docker images -q) sudo docker-compose up

上述4個命令是唯一途徑它爲我工作。我嘗試過的所有其他方法都不會重建圖像,也不會基於新的重建圖像創建容器。換句話說,圖像中的代碼將是陳舊的。

問題:

  1. 是否有可能刷新圖像+使用更少的命令重建容器?
  2. 每次我運行4個以上的命令時,docker會下載〜500MB的依賴關係。有沒有可能不下載它們,只是使用更新的本地代碼和現有的緩存依賴性重建圖像?
+0

下載的依賴關係是什麼?由於碼頭工人在本地緩存基礎鏡像,因此他們不應該是圖像 – yamenk

回答

1

我通常做docker-compose rm && docker-compose build && docker-compose up重新創建碼頭集裝箱:它不會下載500MB。

0

您可以使用docker-compose down其執行以下操作:

down   Stop and remove containers, networks, images, and volumes 

因此使用該命令將是:docker-compose down --rmi local && docker-compose up

--rmi local選項將刪除內置的圖像,從而迫使上up

重建