Docker Compose
You can network together multiple containers to create a single service using the docker compose utility. Docker composition is defined using a docker-compose.yml file.
You can point a docker compose service at a Dockerfile on the local file system to build from by using the build command and a path to the directory containing the target Dockerfile.
# docker-compose.yml
services:
my_service:
build: ./path/to/directory/
You can also point to a local and custom named Dockerfiles by specifying a context directory and a custom Dockerfile name.
# docker-compose.yml
services:
my_service:
build:
context: ./path/to/directory
dockerfile: Dockerfile
You can build all images associated with a docker service composition by using the build command. This will build all Dockerfiles that are referenced in the docker-compose.yaml file. It’s important to note that you must re-run this command before starting your service each time a Dockerfile changes.
$ docker compose build
You can start a service composed of docker containers (and spin up / network all the associated containers) using the up command. This command does NOT rebuild docker images when run.
$ docker compose up
You can keep a container that is initialised using docker compose running by using the tail command as an initial execution task for the container.
my_service:
image: ubuntu
command: tail -F anything