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/tmp
ports:
- "9000:9000"
links:
- redis
另一个示例:
command: /bin/bash -c " while true; do sleep 1; done"
方式二:/bin/bash -c 配置文件方式
1 串行运行
如果这几个命令是没有要求并行运行,则配置如下:
command:
如上配置会按顺序执行cmd1,之后再执行cmd2,之后cmd3。对于可以串行的命令,这样即可。
2 并行运行
有时候想配置几个常驻脚本在docker,希望这几个脚本一起跑起来(并行运行),上述1的办法就不行了。
Linux 把命令行扔后台运行的一个办法就是在后面加上 &,但在docker 是否可以如下这样配置?
command:
上面是不正确的,在配置时候我就踩了这样的坑,docker 运行起来,就马上结束了。猜测是像程序开发的开多线程一样,“主线程开了线程,不等线程,自己就退出了,由于主线程退出,进程也跟着退出了,导致一个线程都没有跑起来”。
上面cmd 都是要求常驻的,没有顺序要求,那么在命令中,前面的几个都加上&,最后一个命令不加,也就是前面几个扔后台运行,最后一个直接运行,使得docker 和最后一个cmd 一样“生命周期”,这样就做到几个cmd 并行运行了。正确配置如下:
command:
方式一:/bin/bash -c 字符串方式version: '2'services: prj1: build: context: . dockerfile: Dockerfile.prj1 environment: SERVER_LISTEN_URI: "tcp://0.0.0.0:9000" #执行多条指令 command: /bin/bash -c "cp /app/dtest/config.default.yml /ap
Podman撰写
带有后端的
docker-compose的实现。 该项目的主要目标是能够未经修改且无根地运行
docker-compose.yml 。 该项目旨在为
docker-compose提供
docker-compose替换,并且在某些情况下非常有用,因为:
可以无根运行
仅取决于podman和Python3和
没有守护程序,没有设置。
开发人员可以使用它来使用单个熟悉的YAML文件运行单机容器化堆栈
对于类似生产的单机集装箱化环境,请考虑
对于真实的东西(多节点集群),请检查任何生产的OpenShift / Kubernetes发行版,例如 。
该项目仍在开发中。
从PyPI安装最新的稳定版本:
pip3 install podman-compose
通过--user可以在没有root用户的情况下安装在普通用户家中。
或来自GitHub的最新开发版本:
在网上找了很多都是docker-compose的关键词解释一大堆,今天我们来看看这个command里面的更新docker配置文件更改的问题
标准的运行jar包的方式设置最小最大内存
command: java -jar -Xmx250m -Xms250m -Dmode=pc /home/app.jar
但是如果要更新数据库账号密码,redis账号密码等,需要更新你的原先配置参数,
command:
- java
- -jar
- -Xmx250m
定义和运行多个 Docker 容器的应用,一个项目往往包含多个容器,每次重启都需要手动重启多个容器,显得太不简洁,而docker-compose就是一个完美的解决方案。
两个重要的概念
服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例
项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义...
command: /bin/bash -c " while true; do sleep 1; done"
使用dockr-compose command执行多条指令,有的时候在项目中需要使用目前知道的有以下两种方式
version: '2'
services:
prj1:
build:
context: .
dockerfile: Dock...
转自别人:
command: /bin/bash -c " while true; do sleep 1; done"
使用dockr-compose command执行多条指令,有的时候在项目中需要使用目前知道的有以下两种方式
version: ‘2’
services:
prj1:
build:
context: .
dockerfile: Dockerfile.prj1
environment:
SERVER_LISTEN_URI: “tcp://0.0.0.0:9000”
#执行多条指令