zoukankan      html  css  js  c++  java
  • 如何在一个Docker中同时运行多个程序进程?

    那么基本思路是在Dockerfile 的CMD 或者 ENTRYPOINT 运行一个”东西”,然后再让这个”东西”运行多个其他进程 简单说来是用Bash Shell脚本或者三方进程守护 (Monit,Skaware S6,Supervisor),其他没讲到的三方进程守护工具同理

    Bash Shell脚本

    入口文件运行一个Bash Shell 脚本, 然后在这个脚本内去拉起多个进程 注意最后要增加一个死循环不要让这个脚本退出,否则拉起的进程也退出了 run.sh

    #!/bin/bash
     
    # start 1
    start1  > /var/log/start1.log 2>&1 &
    # start 2
    start2 > /var/log/start2.log 2>&1 &
     
    # just keep this script running
    while [[ true ]]; do
        sleep 1
    done

    在Dockerfile的入口中运行run.sh

    ENTRYPOINT  ["run.sh"]

    用Bash Shell 的方式,任意发行版的linux都支持,缺点是不能拉起crash的进程,也就是只能拉起运行不能”守护” 如果不关心进程crash问题那么可以用这种方式

    启动脚本范例:

    #!/bin/bash
    
    # short for Host Home
    HH="/home/work/s2"
    
    # short for Container Home
    CH="/home/work/app/s2"
    
    #==============env start===============#
    
    DOCKER_ENV=""
    
    # 时区
    DOCKER_ENV=" -e TZ=Asia/Shanghai $DOCKER_ENV "
    
    # 中文支持
    DOCKER_ENV=" -e LC_ALL=C.UTF-8 $DOCKER_ENV "
    
    # gpu
    DOCKER_ENV=" -e CUDA_VISIBLE_DEVICES=${cuda.visible.devices} $DOCKER_ENV "
    
    # CAFFE_PREDICT_DEVICEID
    DOCKER_ENV=" -e CAFFE_PREDICT_DEVICEID=0 $DOCKER_ENV "
    #==============env end=================#
    
    
    #==============volumes start===============#
    
    DOCKER_VOLUMES=""
    
    # 配置文件挂载
    DOCKER_VOLUMES=" -v $HH/data/data:$CH/data/ $DOCKER_VOLUMES "
    # 日志文件挂载
    DOCKER_VOLUMES=" -v $HH/logs:$CH/log $DOCKER_VOLUMES "
    
    #==============volumes end=================#
    
    docker run --restart=always --runtime=nvidia -ti -d --security-opt seccomp:unconfined --cap-add SYS_PTRACE -p $${serverId}:8120 --name content-ocr-s2-${serverId} $DOCKER_ENV $DOCKER_VOLUMES $DOCKER_IMAGE
    联系方式:emhhbmdfbGlhbmcxOTkxQDEyNi5jb20=
  • 相关阅读:
    EntityFramework查询联合查询(Join,GroupJoin)
    浏览器向服务器请求页面的原理
    如何获取浏览器类型和版本
    64位Win7下32位IE无法启动问题
    jQuery 收藏
    JavaScript五种继承方式[转]
    针对模板页面的数据爬虫实现方法探讨
    ArcGISFlexSDK中关于切换地图问题(不同范围)
    NodeJS缓存文件夹遍历
    高通配置uart
  • 原文地址:https://www.cnblogs.com/zl1991/p/14680181.html
Copyright © 2011-2022 走看看