Docker 容器內服務自啟動
阿新 • • 發佈:2019-05-15
修改 apach ash 退出 嘗試 auto 內容 啟動腳本 docke 使用Ubuntu鏡像,安裝Apache2後,需要Aapche2隨著容器啟動而啟動。
#docker build -t auto_service_ubuntu .
之前嘗試在/etc/rc裏面修改等方法,並不能隨著容器啟動。
然後把啟動寫到CMD["service","apache2","start"] 裏面,容器無法啟動(因為執行完就退出容器了)~
只好在容器裏面寫apache2的自啟動腳本,然後在啟動容器的時候運行該腳本,具體操作如下:
#在容器裏 #vim /etc/apache2/auto_service.sh #!/bin/sh service apache2 start /bin/bash 其中的/bin/bash,就是保持一個終端,免得執行完就結束了。 #chmod 777 /etc/apache2/auto_service.sh 把帶有自啟動腳本的容器封裝為鏡像 #在服務器上 #docker commit demo ubuntu #vim Dockerfile From demo CMD [ "/bin/sh","/etc/apache2/auto_service.sh"] 根據Dockerfile構建新鏡像即可 #docker buitd -t auto_apahce2 .
之後用auto_apache2鏡像啟動的容器,即可自啟動apache2~
當然也可以把自啟動腳本這一步全部寫到Dockerfile裏面:
Dockerfile內容
From ubuntu_demo
RUN echo -e ‘#!/bin/sh\nservice apache2 start\n/bin/bash‘ >/etc/apahce2/auto_service.sh && chmod 777 /etc/apache2/auto_service.sh &&
CMD [ "/bin/sh","/etc/apache2/auto_service.sh"]
根據Dockerfile生成鏡像
Docker 容器內服務自啟動