2015-02-07 524 views
2

我有一個以前用過的Wordpress容器。由於鏈接容器的變化,Wordpress容器現在不能再啓動了(EntryPoint代碼有錯誤)如何在已停止的Docker容器上運行命令?

由於Wordpress容器包含一些未存儲在主機文件系統中的配置,我不應該現在重做docker run。相反,我希望bash進入已停止的容器,檢查所有已更改的文件,並首先備份這些文件。

有沒有辦法在停止的容器上執行bash?如何做?

回答

4

更自然的方法是使用docker diff來檢查對容器文件系統的更改。 - 只會顯示更改文件的名稱。

如果您很幸運能夠使用成熟的容器,並且對捲進行了更改,則可以使用--volumes-from <stopped container>啓動一個新的容器。

或者,你可以start停止的容器,然後做exec進入它。

第三種選擇是將停止的容器作爲圖像提交併從中啓動一個新的容器。

+0

我做了'碼頭差異',但只看到一些變化。正確的,'/ wp-content/uploads'文件夾中必須有相當多的圖像。 'docker diff'總是顯示與初始圖像相比容器中所有已更改的文件嗎? – 2015-02-07 11:18:54

+0

我無法'開始',然後'執行'。如果你沒有看到帶有'docker diff'的文件,'start'會提前終止容器(由於EntryPoint中的錯誤),之後我有機會'exec' – 2015-02-07 11:20:02

+1

,那麼它們仍然存在於捲上。您可以通過執行docker run -it -volumes-from ubuntu'來輕鬆恢復它們。 – 2015-02-07 11:24:10

0

搬運工運行-v/MYDATA --name MYDATA的Ubuntu /斌/假

然後......如果沒有運行:-(

泊塢窗EXEC MYDATA觸摸/ MYDATA /富#不起作用

一個很好的解決辦法是要附加到數據容器,每次運行一個一次性的容器。在這種情況下,數據容器本身可能是完全空的,作爲臨時容器將有操作系統的工具。

$ docker run --rm --volumes-from mydata -it ubuntu bash 
[email protected]:/# ls /mydata 
[email protected]:/# touch /mydata/foo 
[email protected]:/# exit 
exit 
相關問題