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=
  • 相关阅读:
    测开之路一百一十:bootstrap图片
    测开之路一百零九:bootstrap列表
    测开之路一百零八:bootstrap表格
    测开之路一百零七:bootstrap排版
    测开之路一百零六:bootstrap布局
    学生管理之原生分页方法
    Ajax文件上传三式
    学生管理之模板继承
    Django之Models的class Meta
    [C++]指针/指针数组/数组指针/多维指针/单值指针/多值指针
  • 原文地址:https://www.cnblogs.com/zl1991/p/14680181.html
Copyright © 2011-2022 走看看