Docker 容器內服務自啓動

使用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 .

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章