這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)怎么在Docker容器中自啟動(dòng)應(yīng)用服務(wù),文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)專注于平和企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,電子商務(wù)商城網(wǎng)站建設(shè)。平和網(wǎng)站建設(shè)公司,為平和等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站開(kāi)發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
編寫服務(wù)自啟動(dòng)腳本(dockerd)
(tomcat為例)
#!/bin/bash # # # # chkconfig: 345 98 30 # description: tomcat program. # processname: tomcat # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. #. /etc/sysconfig/network prog="tomcat" checkprocess() { chkret=`ps -ef |grep $prog |grep -v "grep" |wc -l` return $chkret } start() { cd /usr/local/tomcat/bin/ ./startup.sh echo "Service $prog started!" } #/usr/sbin/nscd & /usr/sbin/sshd -D & while [ true ] do DNSIP=172.18.3.179 ping=`ping -c 3 $DNSIP|awk 'NR==7 {print $4}'` if [[ $ping -eq "3" ]] then break fi sleep 3 done while [ true ] do checkprocess if [[ $chkret -eq "0" ]] then start #nscd -i hosts else echo "Service $prog is running." fi sleep 60 done exit 0
編寫Dockerfile
FROM tomcat MAINTAINER liu "350142639@qq.com" ADD dockerd /etc/rc.d/init.d/ RUN chmod 777 /etc/rc.d/init.d/dockerd ENV JAVA_HOME /usr/local/jdk1.6.0_30 ENV PATH $JAVA_HOME/bin:$PATH ENV CLASSPATH .:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar CMD /etc/rc.d/init.d/dockerd
其中,ADD將同級(jí)目錄下的腳本加入鏡像的指定位置,ENV設(shè)置java的環(huán)境變量(很重要,不寫這句自啟動(dòng)腳本無(wú)法執(zhí)行成功)CMD命令只能有一個(gè),用來(lái)在容器啟動(dòng)時(shí),執(zhí)行命令。也可以是腳本。
重構(gòu)鏡像
**通過(guò)
docker build -t 新的鏡像名 .
成功制作新的鏡像
開(kāi)啟容器
docker run -d -h=”s” –name=”s” 新的鏡像名
然后,發(fā)現(xiàn)tomcat已經(jīng)開(kāi)啟
上述就是小編為大家分享的怎么在Docker容器中自啟動(dòng)應(yīng)用服務(wù)了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。