我想在我的Docker Swarm中运行这个:
docker run --rm -it progrium/stress --cpu 2 --io 1 --vm 2 --vm-bytes 128M --timeout 10s
所以我需要一个 Docker-compose.yml 文件。
我应该如何在 Docker Compose 中使用这个 Docker 镜像并传递这些参数?
我想在我的Docker Swarm中运行这个:
docker run --rm -it progrium/stress --cpu 2 --io 1 --vm 2 --vm-bytes 128M --timeout 10s
所以我需要一个 Docker-compose.yml 文件。
我应该如何在 Docker Compose 中使用这个 Docker 镜像并传递这些参数?
Composerize 可以帮助您部分地将运行命令转换为 compose。
为了更好地理解,这里描述了 docker-compose.yml
的各个组件:
image
- 用于运行容器的镜像
name
- 服务或容器的名称
command
- 您想在容器启动后运行的命令
volumes
- 您想挂载的卷
将上面的运行命令转换为 docker-compose:
version: "2/3/3.3/3.6" # based on the docker-compose version you use
services:
stress: # Service name, user defined
image: progrium/stress
command: '--cpu 2 --io 1 --vm 2 --vm-bytes 128M --timeout 10s'
对于任何docker-compose文件,前两行都是常见的。
在docker-compose中,command
允许镜像接受其他命令或选项。
docker-compose.yml
version: "2"
services:
stress:
image: progrium/stress
command: '--cpu 2 --io 1 --vm 2 --vm-bytes 128M --timeout 10s'
使用docker-compose组合文件:
docker-compose up -d
Multiple commands to the compose file:
command: bash -c "cd app/ && npm start"
Multi-line command to compose file:
command: >
bash -c "cd app/
&& npm start"
<embed src="https://composerize.com/" width="100%" height="700">
只需使用这个巧妙的小工具作为辅助工具:https://composerize.com/
或者按照前面回答中突出显示的手动步骤操作...
docker run
命令转换为 docker-compose.yml 文件中的声明非常直观。command
关键字:services:
stress:
image: progrium/stress
command:
- --cpu 2
- --io 1
- --vm 2
- --vm-bytes 128M
- --timeout 10s
entrypoint
关键字:services:
stress:
image: progrium/stress
entrypoint:
- <entrypoint name to override the original one>
- --cpu 2
- --io 1
- --vm 2
- --vm-bytes 128M
- --timeout 10s