Install Docker Compose v2 system-wide

In this post I'm going to show you how you can install Docker Compose version 2 on a Linux system and register a systemctl service.

Install Docker Compose

Docker Compose releases are available at the following Git Hub repository https://github.com/docker/compose/releases. This means we easily can download the binary for e.g. a 64 bit Linux operating system. In the example below I use curl to perform the download and store it at /usr/libexec/docker/cli-plugins/docker-compose.

sudo curl -SL https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-linux-x86_64 -o /usr/libexec/docker/cli-plugins/docker-compose

Now we need to make sure that the binary is executable.

sudo chmod 755 /usr/libexec/docker/cli-plugins/docker-compose

Install a Systemctl Service

Now I want to run my docker composition as a service to make sure the composition starts when the operating system starts. Therefore I create a new file myservice.service at /etc/systemd/system.

[Unit]
Description=My service with docker compose
Requires=docker.service
After=docker.service

[Service]
Type=oneshot
RemainAfterExit=true
WorkingDirectory=<path to your Docker composition
ExecStart=/usr/libexec/docker/cli-plugins/docker-compose up -d --remove-orphans
ExecStop=/usr/libexec/docker/cli-plugins/docker-compose down

[Install]
WantedBy=multi-user.target

Finally we register the new service by executing sudo systemctl enable myservice.service. Et voilà, the service is registered and can be started using sudo systemctl start myservice.service.