1. 程式人生 > >Docker 容器內服務自啟動

Docker 容器內服務自啟動

修改 apach ash 退出 嘗試 auto 內容 啟動腳本 docke

使用Ubuntu鏡像,安裝Apache2後,需要Aapche2隨著容器啟動而啟動。

之前嘗試在/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 build -t auto_service_ubuntu .

Docker 容器內服務自啟動