方式一:/bin/bash -c 字符串方式

version: '2'
services:prj1:build:context: .dockerfile: Dockerfile.prj1environment:SERVER_LISTEN_URI: "tcp://0.0.0.0:9000"#执行多条指令command: /bin/bash -c "cp /app/dtest/config.default.yml /app/config.yml && python -u /app/dtest/tcc.py"#目录映射volumes:- ..:/app- ./tmp:/var/tmpports:- "9000:9000"links:- redis

另一个示例:

command: /bin/bash -c " while true; do sleep 1; done"

方式二:/bin/bash -c 配置文件方式

1 串行运行

如果这几个命令是没有要求并行运行,则配置如下:

command:- sh- -c - |cmd1cmd2cmd3

如上配置会按顺序执行cmd1,之后再执行cmd2,之后cmd3。对于可以串行的命令,这样即可。

2 并行运行

有时候想配置几个常驻脚本在docker,希望这几个脚本一起跑起来(并行运行),上述1的办法就不行了。
Linux 把命令行扔后台运行的一个办法就是在后面加上 &,但在docker 是否可以如下这样配置?

command:- sh- -c - |cmd1 &cmd2 &cmd3 &

上面是不正确的,在配置时候我就踩了这样的坑,docker 运行起来,就马上结束了。猜测是像程序开发的开多线程一样,“主线程开了线程,不等线程,自己就退出了,由于主线程退出,进程也跟着退出了,导致一个线程都没有跑起来”。

上面cmd 都是要求常驻的,没有顺序要求,那么在命令中,前面的几个都加上&,最后一个命令不加,也就是前面几个扔后台运行,最后一个直接运行,使得docker 和最后一个cmd 一样“生命周期”,这样就做到几个cmd 并行运行了。正确配置如下:

command:- sh- -c - |cmd1 &cmd2 &cmd3

docker-compose command 执行多条指令相关推荐

  1. 权限执行[Android开发常见问题-4] RunTime.exec()如何以root权限执行多条指令?

    每日一贴,今天的内容关键字为权限执行 RunTime.exec()这个接口可以说是给我们开发者供给了一个很好的直观操纵底层操纵系统的机遇,但是这个接口的使用还有很多需要注意的问题.由于要完全的分析这个 ...

  2. 【最全!最完整解析!】 计算机中,执行一条指令所需要的时间称为指令周期,完成一项基本操作所需要的时间称为机器周期,时钟脉冲的重复周期称为重复周期。因此,()

    计算机中,执行一条指令所需要的时间称为指令周期,完成一项基本操作所需要的时间称为机器周期,时钟脉冲的重复周期称为重复周期.因此,() A. 时钟周期大于机器周期 B. 时钟周期等于机器周期 C. 机器 ...

  3. 如何计算k段流水线执行n条指令的执行时间

    来源:http://blog.sina.com.cn/s/blog_4ec38d4f01007uw2.html 计算k段流水线执行n条指令的执行时间,有必要区分两种情况: 如果流水线中的各段执行时间均 ...

  4. Linux 从头学 01:CPU 是如何执行一条指令的?

    摘自:Linux 从头学 01:CPU 是如何执行一条指令的? 作者:IOT物联网小镇 发布时间:2021-07-02 08:22:43 网址:https://blog.csdn.net/jchen1 ...

  5. 计算k段流水线执行n条指令的执行时间

    计算k段流水线执行n条指令的执行时间,有必要区分两种情况: 如果流水线中的各段执行时间均为t,那么执行n条指令的时间就是执行第一条指令的时间kt,加上其余n-1条指令各执行一段的时间(n-1)t. 如 ...

  6. 计算机要执行一条指令,cpu所涉及的操作应该包括下列的,计算机应用基础学习指导...

    1. 一般认为,信息(information)是 2. 信息资源的开发和利用已经成为独立的产业,即. 3. 信息技术是在信息处理中所采取的技术和方法,也可看作是的一种 技术. 4. 所谓3C技术是指 ...

  7. 计算机要执行一条指令,cpu所涉及的操作应该包括下列的,计算机基础题模拟试题「附答案」...

    一.单选题 1.计算机中能直接被CPU存取的信息是存放在___A____ 中. A.内存 B.光盘 C.硬盘 D.软盘 2.D/A转换器的功能是将___A_______. A.数字量转换为模拟量 B. ...

  8. Qt之QProcess 连续执行多条指令并获取指令返回内容

    简述 system可以连续执行多条指令,只需要使用分号":"分开指令就行,但是system只能返回int类型结果,得不到想要的指令返回内容,且还会阻塞主线程(除非在命令后面加上 & ...

  9. c语言执行一条指令几个机器周期,时钟周期、机器周期与指令周期

    时钟周期.机器周期与指令周期 1.51系列单片机中,外部输入震荡输入经2分频后作为时钟:另外,一个机器周期由6个时钟周期组成:因为没有流水线(pipeline)结构,执行一条指令需要经过取指令.译码. ...

最新文章

  1. 序列化:ProtoBuf与JSON的比较
  2. 【Mybatis 之应用篇】2_配置解析、属性名问题、日志、分页和注解开发
  3. mysql中nvl_Mysql中类似于oracle中nvl()函数的ifnull()函数
  4. 底层主播生存录:玩不好算法,去不了塔尖
  5. 惠斯通电桥信号调理芯片_基于精密分流电阻器的惠斯通电桥校准
  6. mmap设备文件操作
  7. U盘exe病毒解决方案
  8. android webview 文件下载,Android编程使用WebView实现文件下载功能的两种方法
  9. 一个简单的log2(x)的快速计算方法
  10. JAVA--获取当前日期两个月之前的日期
  11. 批量查询网站收录情况的站长工具
  12. 齐博cms基础教程之认识齐博cms
  13. PMP 项目管理(12)项目采购管理 思维导图 解读
  14. TypeScript 学习笔记(十万字超详细知识点总结)
  15. sam账号服务器已断开连接,删了sam文件后引发的IIS问题的解决方法
  16. .net企业实战视频就业培训
  17. 洛谷 P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布
  18. 打包文件zip压缩包返回
  19. Wine零知识学习1 —— 介绍
  20. 西乡中学2021艺体生高考成绩查询,2019年西乡中学特长生评分标准

热门文章

  1. QEMU — I/O 设备操作
  2. 数据中心网络架构 — 云数据中心网络 — 大二层网络技术
  3. 5G NR — 关键技术
  4. Altium Designer多通道设计原理图添加端口
  5. vue-router学习笔记(一)
  6. Codeforces 864 A Fair Game 水题
  7. uva10401Injured Queen Problem(递推)
  8. RAID2.0核心思想:数据保护与物理资源管理域分离
  9. 解读ASP.NET 5 MVC6系列(17):MVC中的其他新特性
  10. 算法课题(一) 贪心算法