• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Docker容器内应用服务自启动的方法示例

    如果想把Docker容器内的应用服务随着容器开启时自启动。只需要将服务启动的脚本写在Dockerfile里,然后用Dockerfile重构镜像即可实现:

    编写服务自启动脚本(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将同级目录下的脚本加入镜像的指定位置,ENV设置java的环境变量(很重要,不写这句自启动脚本无法执行成功)CMD命令只能有一个,用来在容器启动时,执行命令。也可以是脚本。

    重构镜像
    **通过
    docker build -t 新的镜像名 .
    成功制作新的镜像

    开启容器

    docker run -d -h=”s” –name=”s” 新的镜像名

    然后,发现tomcat已经开启

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    上一篇:shell脚本定时统计Nginx下access.log的PV并发送给API保存到数据库
    下一篇:docker的高可用配置详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    Docker容器内应用服务自启动的方法示例 Docker,容器,内,应用服务,