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