入手Docker容器注意事項:命令結束容器退出


在沒有 docker 容器的時候,在終端(terminal)中運行 shell 命令,我們知道當終端退出時(比如關閉終端窗口或退出 ssh 會話),終端中執行的命令也會結束。所以,當我們在終端中執行持續運行的任務或服務時,我們需要讓其跳出當前 shell 進程,在后台運行(比如以 daemon 方式運行)。

在最近剛接觸 docker 容器時,我誤以為 docker 容器是一個輕量級的虛擬機(vm),容器啟動后,只要我不把容器關閉,可以在其中任意執行 shell 命令,想干啥就干啥。於是,遇到了容器啟動后自動退出的問題,比如:如何讓docker容器在執行shell命令后不退出運行

后來明白了,docker 容器不是一個輕量級的虛擬機(vm),而是一個輕量級的終端(terminal):

1)它是一個只給你一次機會運行 shell 命令的終端

2)它是一個與其中運行的 shell 命令共存亡的終端(命令結束容器退出,命令運行容器運行)。

如果一個容器啟動后不運行任何 shell 命令怎么辦,可以通過 docker run -t 命令或 docker compose 文件中的 tty: true 配置解決。

如果一個容器啟動后其中運行的 shell 命令會結束怎么辦,想盡一切辦法不讓 shell 命令結束。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM