I want to run this in my Docker Swarm:
docker run --rm -it progrium/stress --cpu 2 --io 1 --vm 2 --vm-bytes 128M --timeout 10s
so I need a Docker-compose.yml
How should I use this docker image in a docker compose and pass those params ?
The key difference between docker run versus docker-compose is that docker run is entirely command line based, while docker-compose reads configuration data from a YAML file. The second major difference is that docker run can only start one container at a time, while docker-compose will configure and run multiple.
The docker commit command is used to take a container and produce a new image from it. It works with either stopped or running containers. This creates an image from the container named example-container . You can also identify the container by ID if you prefer.
Thanks in advance. You re right, Dockerfile is not necessary. Docker Compose uses YAML file, typically named docker-compose. yml to define what your mutliple-container application should look like.
Composerize will help you convert run command to a compose partially.
To understand it better I have described the components of the docker-compose.yml
here.
image
- image used to run the container
name
- name of the service or container
command
- command you want to run after the container is up
volumes
- volume(s) you want to mount
Converting the run command from above to 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'
First two lines are common for any docker-compose file.
In docker-compose, the command
allows the image to accept additional commands or options.
docker-compose.yml
version: "2" services: stress: image: progrium/stress command: '--cpu 2 --io 1 --vm 2 --vm-bytes 128M --timeout 10s'
Compose the file with docker-compose as:
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">
Just use this nifty little tool as a helper: https://composerize.com/
Or follow the manual steps highlighted in the previous answers...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With