1. 程式人生 > >11、CentOS7 安裝Docker之擴充套件(儲存開發環境狀態)

11、CentOS7 安裝Docker之擴充套件(儲存開發環境狀態)

儲存開發環境狀態

 

如果你曾經開發過軟體,你可能至少一次地像這樣呼叫過,”奇怪了,之前明明正常的!”不過沒辦法快速地恢復到之前的正常狀態,你只能匆忙地去修改程式碼以儘快完成任務而不至於延期。這就浪費了許多時間。
版本控制軟體已經能幫助你快速恢復到指定的正常版本,不過但下面的兩個特殊情況會存在問題:

·  程式碼無法體現你工作環境系統的狀態

·  你可能還不願意提交程式碼

第一個問題比第二個值得關注。雖然像Git這樣的現代原始碼控制工具可以輕鬆地建立分支,不過捕獲整個開發檔案系統的狀態不是Git的目的。
Docker通過它的commit

功能提供了一個成本低廉和快速的方法來儲存容器開發系統的狀態,這就是我們下面將要探討的。

問題

你想儲存你開發環境的狀態。

解決方法

使用docker commit儲存狀態

討論

假如你對你的to-do應用做更改。ToDoCorp的CEO對瀏覽器顯示的標題”Swarm+React – TodoMVC.”不滿意,要改為“ToDo- Corp’s ToDo App”。
你不確定如何完成這個任務,所以你可能需要啟動應用,並更改檔案做試驗看會怎樣:

$ docker run -d -p 8000:8000 --name todobug1 dockerinpractice/todoapp  3c3d5d3ffd70d17e7e47e90801af7d12d6fc0b8b14a8b33131fc708423ee4372

$ docker exec -i -t todobug1 /bin/bash

docker run命令後臺(-d)啟動to-do應用容器,對映容器的8000埠到主機的8000埠(-p 8000:8000),命名為todobug1(–name todobug1)。
第二個命令在已執行的容器中啟動/bin/bash。-i啟用互動模式,-t建立一個TTY。
現在你已經進入容器了,所以試驗前先安裝編輯器。我們喜歡用vim,所以用以下命令:

apt-get update

apt-get install vim

經過了一翻努力你意識到需要更改local.html,因為你更改如下:

不過CEO想讓標題使小寫字元,因為她聽說這看起來更現代。你想把現在的更改儲存下,在另一個終端執行如下命令:

$ docker commit todobug1

ca76b45144f2cb31fda6a31e55f784c93df8c9d4c96bbeacd73cad9cd55d2970

你現在已經提交了剛才的更改,所以之後你可以從映象執行包含此更改的容器。
下一步你更改local.html:

再次提交:

$ docker commit todobug1

071f6a36c23a19801285b82eafc99333c76f63ea0aa0b44902c6bae482a6e036

現在在我們這個示例已經有兩個映象ID(ca76b45144f2cb31fda6a31e55f784c93df8c9d4c96bbeacd73cad9cd55d2970和071f6a36c23a19801285b82eafc99333c76f63ea0aa0b44902c6bae482a6e036)。當CEO來評估她想要哪個時,你可以執行任意一個映象來讓你決定。
你可以在新終端執行如下命令來啟動兩個映象:

$ docker run -p 8001:8000 ca76b45144f2cb31fda6a31e55f784c93df8c9d4c96bbeacd73cad9cd55d2970

$ docker run -p 8002:8000 071f6a36c23a19801285b82eafc99333c76f63ea0aa0b44902c6bae482a6e036

這樣你可以開啟http://localhost:8001顯示大寫的標題頁面和http://localhost:8002顯示小寫頁面。
你肯定想知道有沒有更好的方法來引用這兩個映象,而不是需要輸入這麼長的ID。下一篇文章我們會給這些映象一個名稱來更好的引用它。

 

轉載地址:https://www.centos.bz/2016/11/save-the-state-of-development-environment/