2017-08-11 119 views
2

像例如,如果我使用命令docker run -it alpine /bin/sh 它啓動一個終端之後,我可以安裝包和所有。現在當我使用exit命令時,它會返回到終端。 (主要的)如何使用「退出」後保留碼頭高山容器?

那麼我怎樣才能再次訪問相同的容器? 當我再次運行該命令時,我得到一個新的阿爾卑斯山。

請幫

+1

的可能的複製[如何保持碼頭工人容器中運行啓動服務後?(https://stackoverflow.com/questions/25775266/how-to-keep-docker-container - 運行後啓動服務) –

回答

0

容器住,只要在指定運行命令進程仍在運行。當你指定運行/bin/sh時,一旦你退出,sh進程將會死亡,你的容器也會死掉。

如果你想保持你的容器運行,你必須保持進程內運行。對於你的情況(我不知道你想acheive什麼,我以爲你只是測試),下面就然後你就可以sh入容器使用保持運行

docker run -d --name alpine alpine ping localhost 

docker exec -it alpine sh 
+0

所以我怎麼能讓它保持運行,並在以後回覆 –

+0

@ user8094908回答udpated。 – yamenk

+0

這是我想要做的...我想在docker中運行alpine,然後在該命令行上安裝git,ant和maven。所以當我退出容器時,安裝的東西應該留下,當我回來時我可以繼續我的工作... –

0

你應該做的是低於

docker run -d --name myalpine alpine tail -f /dev/null 

這將確保你的容器不會死亡。現在,每當你需要安裝在你裏面包的容器內只得到使用SH

docker exec -it myalpine /bin/sh 

如果由於某種原因,你的容器死了,你仍然可以再次使用

docker start myalpine 
+0

這只是迴應單詞myalpine,並沒有啓動容器... –

+0

它在背景中啓動它。我用'-d'替換了'-it',這意味着分離模式。 '-d,--detach在後臺運行容器並打印容器ID' –

+0

非常感謝。我想有很多方法可以做到這一點。我也會檢查這個方法。 –

0

您應該使用docker start啓動它,它允許你啓動一個停止的容器。如果您未指定容器名稱,則需要使用docker ps來獲取名稱/ ID。

例如,

$docker ps 
CONTAINER ID  IMAGE      COMMAND 
4c01db0b339c  alpine      bash  

$docker start -i -a 4c01db0b339c 
+0

只是打印容器ID,什麼都不做 –

+0

@ user8094908啊哎呀!這只是啓動容器。你也需要重視它。我已經更新了我的答案。 – logix

+0

非常感謝我將此頁面加入書籤以供進一步參考。 –

相關問題