像例如,如果我使用命令docker run -it alpine /bin/sh
它啓動一個終端之後,我可以安裝包和所有。現在當我使用exit
命令時,它會返回到終端。 (主要的)如何使用「退出」後保留碼頭高山容器?
那麼我怎樣才能再次訪問相同的容器? 當我再次運行該命令時,我得到一個新的阿爾卑斯山。
請幫
像例如,如果我使用命令docker run -it alpine /bin/sh
它啓動一個終端之後,我可以安裝包和所有。現在當我使用exit
命令時,它會返回到終端。 (主要的)如何使用「退出」後保留碼頭高山容器?
那麼我怎樣才能再次訪問相同的容器? 當我再次運行該命令時,我得到一個新的阿爾卑斯山。
請幫
容器住,只要在指定運行命令進程仍在運行。當你指定運行/bin/sh
時,一旦你退出,sh進程將會死亡,你的容器也會死掉。
如果你想保持你的容器運行,你必須保持進程內運行。對於你的情況(我不知道你想acheive什麼,我以爲你只是測試),下面就然後你就可以sh
入容器使用保持運行
docker run -d --name alpine alpine ping localhost
docker exec -it alpine sh
所以我怎麼能讓它保持運行,並在以後回覆 –
@ user8094908回答udpated。 – yamenk
這是我想要做的...我想在docker中運行alpine,然後在該命令行上安裝git,ant和maven。所以當我退出容器時,安裝的東西應該留下,當我回來時我可以繼續我的工作... –
你應該做的是低於
docker run -d --name myalpine alpine tail -f /dev/null
這將確保你的容器不會死亡。現在,每當你需要安裝在你裏面包的容器內只得到使用SH
docker exec -it myalpine /bin/sh
如果由於某種原因,你的容器死了,你仍然可以再次使用
docker start myalpine
這只是迴應單詞myalpine,並沒有啓動容器... –
它在背景中啓動它。我用'-d'替換了'-it',這意味着分離模式。 '-d,--detach在後臺運行容器並打印容器ID' –
非常感謝。我想有很多方法可以做到這一點。我也會檢查這個方法。 –
您應該使用docker start
啓動它,它允許你啓動一個停止的容器。如果您未指定容器名稱,則需要使用docker ps
來獲取名稱/ ID。
例如,
$docker ps
CONTAINER ID IMAGE COMMAND
4c01db0b339c alpine bash
$docker start -i -a 4c01db0b339c
只是打印容器ID,什麼都不做 –
@ user8094908啊哎呀!這只是啓動容器。你也需要重視它。我已經更新了我的答案。 – logix
非常感謝我將此頁面加入書籤以供進一步參考。 –
的可能的複製[如何保持碼頭工人容器中運行啓動服務後?(https://stackoverflow.com/questions/25775266/how-to-keep-docker-container - 運行後啓動服務) –