解決docker容器啟動后馬上退出的問題
最近在看docker如何讓容器在啟動時直接運行某些進程,后來發(fā)現Dockerfile可以在容器啟動的時候指定容器運行命令。
CMD指定,但是每個Dockerfile只能有一條CMD指令,如果指定了多條CMD指定,只有最后一條會被執(zhí)行。
于是就想了一個辦法,在寫了一個腳本,在腳本里面啟動多個進程,在Dockerfile里運行這個腳本。
最后證明這個方法是可行的,在實驗過程中遇到一個問題,容器啟動后會馬上停止。
經查閱資料:
Docker容器同時只能管理一個進程,如果這個進程退出那么容器也就退出了,但這不表示容器只能運行一個進程(其他進程可在后臺運行),但是要使容器不退出必須有一個前臺執(zhí)行的進程。
解決方法:
腳本中最后一個進程一定要用前臺運行方式即在進程最后不加&(&表示后臺運行),否則容器會退出。
補充知識:在docker容器中使用gdbserver發(fā)生的問題及解決辦法
在docker容器中使用gdbserver時遇到一個問題
linux_ptrace_test_ret_to_nx: Cannot PTRACE_TRACEME:operation not permmit
原因是Docker默認禁用PTRACE功能,需要在容器運行時開啟。
docker run -ti --cap-add=SYS_PTRACE ubuntu
以上這篇解決docker容器啟動后馬上退出的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Docker環(huán)境搭建Jenkins在構建任務時控制臺日志出現中文亂碼的問題
這篇文章主要介紹了Docker環(huán)境搭建Jenkins在構建任務時控制臺日志出現中文亂碼的問題,本文通過圖文并茂的形式給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02