Skip to content

Compose freshness #22927

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 10 additions & 8 deletions content/manuals/compose/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@
weight: 30
description: Learn how to use Docker Compose to define and run multi-container applications
with this detailed introduction to the tool.
keywords: docker compose, docker-compose, docker compose command, docker compose files,
docker compose documentation, using docker compose, compose container, docker compose
service
keywords: docker compose, docker-compose, compose.yaml, docker compose command, multi-container applications, container orchestration, docker cli

Check failure on line 6 in content/manuals/compose/_index.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Vale.Spelling] Did you really mean 'cli'? Raw Output: {"message": "[Vale.Spelling] Did you really mean 'cli'?", "location": {"path": "content/manuals/compose/_index.md", "range": {"start": {"line": 6, "column": 143}}}, "severity": "ERROR"}
params:
sidebar:
group: Open source
Expand Down Expand Up @@ -36,6 +34,10 @@
Docker application.
icon: polyline
link: /reference/compose-file
- title: Use Compose Bridge
description: Transform your Compose configuration file into configuration files for different platforms, such as Kubernetes.
icon: move_down
link: /compose/bridge
- title: Browse common FAQs
description: Explore general FAQs and find out how to give feedback.
icon: help
Expand All @@ -58,12 +60,12 @@
Compose simplifies the control of your entire application stack, making it easy to manage services, networks, and volumes in a single YAML configuration file. Then, with a single command, you create and start all the services
from your configuration file.

Compose works in all environments; production, staging, development, testing, as
Compose works in all environments - production, staging, development, testing, as
well as CI workflows. It also has commands for managing the whole lifecycle of your application:

* Start, stop, and rebuild services
* View the status of running services
* Stream the log output of running services
* Run a one-off command on a service
- Start, stop, and rebuild services
- View the status of running services
- Stream the log output of running services
- Run a one-off command on a service

{{< grid >}}
2 changes: 1 addition & 1 deletion content/manuals/compose/gettingstarted.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
description: Check out this tutorial on how to use Docker Compose from defining application
description: Follow this hands-on tutorial to learn how to use Docker Compose from defining application
dependencies to experimenting with commands.
keywords: docker compose example, docker compose tutorial, how to use docker compose,
running docker compose, how to run docker compose, docker compose build image, docker
Expand Down
10 changes: 4 additions & 6 deletions content/manuals/compose/install/_index.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
---
description: Learn how to install Docker Compose. Compose is available natively on
Docker Desktop, as a Docker Engine plugin, and as a standalone tool.
keywords: install docker compose, docker compose install, install docker compose ubuntu,
installing docker compose, docker compose download, docker compose not found, docker
compose windows, how to install docker compose
keywords: install docker compose, docker compose plugin, install compose linux, install docker desktop, docker compose windows, standalone docker compose, docker compose not found

Check failure on line 4 in content/manuals/compose/install/_index.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'Docker Desktop' instead of 'docker desktop'. Raw Output: {"message": "[Vale.Terms] Use 'Docker Desktop' instead of 'docker desktop'.", "location": {"path": "content/manuals/compose/install/_index.md", "range": {"start": {"line": 4, "column": 89}}}, "severity": "ERROR"}

Check failure on line 4 in content/manuals/compose/install/_index.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Docker.Capitalization] Please capitalize Docker. Raw Output: {"message": "[Docker.Capitalization] Please capitalize Docker.", "location": {"path": "content/manuals/compose/install/_index.md", "range": {"start": {"line": 4, "column": 88}}}, "severity": "ERROR"}

Check failure on line 4 in content/manuals/compose/install/_index.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'Linux' instead of 'linux'. Raw Output: {"message": "[Vale.Terms] Use 'Linux' instead of 'linux'.", "location": {"path": "content/manuals/compose/install/_index.md", "range": {"start": {"line": 4, "column": 74}}}, "severity": "ERROR"}

Check failure on line 4 in content/manuals/compose/install/_index.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Docker.Capitalization] Please capitalize Docker. Raw Output: {"message": "[Docker.Capitalization] Please capitalize Docker.", "location": {"path": "content/manuals/compose/install/_index.md", "range": {"start": {"line": 4, "column": 18}}}, "severity": "ERROR"}
title: Overview of installing Docker Compose
linkTitle: Install
weight: 20
Expand All @@ -18,7 +16,7 @@

## Installation scenarios

### Scenario one: Install Docker Desktop (Recommended)
### Docker Desktop (Recommended)

The easiest and recommended way to get Docker Compose is to install Docker Desktop.

Expand All @@ -33,7 +31,7 @@
>
> If you have already installed Docker Desktop, you can check which version of Compose you have by selecting **About Docker Desktop** from the Docker menu {{< inline-image src="../../desktop/images/whale-x.svg" alt="whale menu" >}}.

### Scenario two: Install the Docker Compose plugin (Linux only)
### Plugin (Linux only)

> [!IMPORTANT]
>
Expand All @@ -43,7 +41,7 @@
- [Using Docker's repository](linux.md#install-using-the-repository)
- [Downloading and installing manually](linux.md#install-the-plugin-manually)

### Scenario three: Install the Docker Compose standalone (Legacy)
### Standalone (Legacy)

> [!WARNING]
>
Expand Down
18 changes: 9 additions & 9 deletions content/manuals/compose/install/linux.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
---
description: Download and install Docker Compose on Linux with this step-by-step handbook.
This plugin can be installed manually or by using a repository.
keywords: install docker compose linux, docker compose linux, docker compose plugin,
docker-compose-plugin, linux install docker compose, install docker-compose linux,
linux install docker-compose, linux docker compose, docker compose v2 linux, install
docker compose on linux
description: Step-by-step instructions for installing the Docker Compose plugin on Linux using a package repository or manual method.
keywords: install docker compose linux, docker compose plugin, docker-compose-plugin linux, docker compose v2, docker compose manual install, linux docker compose
toc_max: 3
title: Install the Docker Compose plugin
linkTitle: Plugin
Expand Down Expand Up @@ -77,9 +73,9 @@ To update the Docker Compose plugin, run the following commands:

## Install the plugin manually

> [!IMPORTANT]
> [!WARNING]
>
> This option requires you to manage upgrades manually. It is recommended that you set up Docker's repository for easier maintenance.
> Manual installations don’t auto-update. For ease of maintenance, use the Docker repository method.

1. To download and install the Docker Compose CLI plugin, run:

Expand Down Expand Up @@ -113,4 +109,8 @@ To update the Docker Compose plugin, run the following commands:
```console
$ docker compose version
```


## What's next?

- [Understand how Compose works](/manuals/compose/intro/compose-application-model.md)
- [Try the Quickstart guide](/manuals/compose/gettingstarted.md)
12 changes: 9 additions & 3 deletions content/manuals/compose/install/standalone.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
title: Install the Docker Compose standalone
linkTitle: Standalone
description: How to install Docker Compose - Other Scenarios
keywords: compose, orchestration, install, installation, docker, documentation
description: Instructions for installing the legacy Docker Compose standalone tool on Linux and Windows Server
keywords: install docker-compose, standalone docker compose, docker-compose windows server, install docker compose linux, legacy compose install

Check failure on line 5 in content/manuals/compose/install/standalone.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'Linux' instead of 'linux'. Raw Output: {"message": "[Vale.Terms] Use 'Linux' instead of 'linux'.", "location": {"path": "content/manuals/compose/install/standalone.md", "range": {"start": {"line": 5, "column": 116}}}, "severity": "ERROR"}

Check failure on line 5 in content/manuals/compose/install/standalone.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Docker.Capitalization] Please capitalize Docker. Raw Output: {"message": "[Docker.Capitalization] Please capitalize Docker.", "location": {"path": "content/manuals/compose/install/standalone.md", "range": {"start": {"line": 5, "column": 100}}}, "severity": "ERROR"}

Check failure on line 5 in content/manuals/compose/install/standalone.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Docker.Capitalization] Please capitalize Docker. Raw Output: {"message": "[Docker.Capitalization] Please capitalize Docker.", "location": {"path": "content/manuals/compose/install/standalone.md", "range": {"start": {"line": 5, "column": 45}}}, "severity": "ERROR"}

Check failure on line 5 in content/manuals/compose/install/standalone.md

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [Docker.Capitalization] Please capitalize Docker. Raw Output: {"message": "[Docker.Capitalization] Please capitalize Docker.", "location": {"path": "content/manuals/compose/install/standalone.md", "range": {"start": {"line": 5, "column": 18}}}, "severity": "ERROR"}
toc_max: 3
weight: 20
---
Expand All @@ -12,7 +12,8 @@
> [!WARNING]
>
> The Docker Compose standalone uses the `-compose` syntax instead of the current standard syntax `compose`.
> For example, you must type `docker-compose up` when using Docker Compose standalone, instead of `docker compose up`.
> For example, you must type `docker-compose up` when using Docker Compose standalone, instead of `docker compose up`.
> Use it only for backward compatibility.

## On Linux

Expand Down Expand Up @@ -74,3 +75,8 @@
$ docker-compose.exe version
Docker Compose version {{% param "compose_version" %}}
```

## What's next?

- [Understand how Compose works](/manuals/compose/intro/compose-application-model.md)
- [Try the Quickstart guide](/manuals/compose/gettingstarted.md)
3 changes: 2 additions & 1 deletion content/manuals/compose/install/uninstall.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
description: How to uninstall Docker Compose
keywords: compose, orchestration, uninstall, uninstallation, docker, documentation
title: Uninstall Docker Compose
linkTitle: Uninstall
---

How you uninstall Docker Compose depends on how it was installed. This guide covers uninstallation instructions for:
Expand All @@ -13,7 +14,7 @@ How you uninstall Docker Compose depends on how it was installed. This guide cov

If you want to uninstall Docker Compose and you have installed Docker Desktop, see [Uninstall Docker Desktop](/manuals/desktop/uninstall.md).

> [!NOTE]
> [!WARNING]
>
> Unless you have other Docker instances installed on that specific environment, uninstalling Docker Desktop removes all Docker components, including Docker Engine, Docker CLI, and Docker Compose.

Expand Down
24 changes: 13 additions & 11 deletions content/manuals/compose/intro/compose-application-model.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
title: How Compose works
titleTitle: How Compose works
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should this be title or linkTitle

weight: 10
description: Understand how Compose works and the Compose application model with an illustrative example
keywords: compose, docker compose, compose specification, compose model
description: Learn how Docker Compose works, from the application model to Compose files and CLI, whilst following a detailed example.
keywords: docker compose, compose.yaml, docker compose model, compose cli, multi-container application, compose example
aliases:
- /compose/compose-file/02-model/
- /compose/compose-yaml-file/
Expand All @@ -21,7 +21,7 @@ Services communicate with each other through [networks](/reference/compose-file/

Services store and share persistent data into [volumes](/reference/compose-file/volumes.md). The Specification describes such a persistent data as a high-level filesystem mount with global options.

Some services require configuration data that is dependent on the runtime or platform. For this, the Specification defines a dedicated [configs](/reference/compose-file/configs.md) concept. From a service container point of view, configs are comparable to volumes, in that they are files mounted into the container. But the actual definition involves distinct platform resources and services, which are abstracted by this type.
Some services require configuration data that is dependent on the runtime or platform. For this, the Specification defines a dedicated [configs](/reference/compose-file/configs.md) concept. From inside the container, configs behave like volumesthey’re mounted as files. However, configs are defined differently at the platform level.

A [secret](/reference/compose-file/secrets.md) is a specific flavor of configuration data for sensitive data that should not be exposed without security considerations. Secrets are made available to services as files mounted into their containers, but the platform-specific resources to provide sensitive data are specific enough to deserve a distinct concept and definition within the Compose Specification.

Expand Down Expand Up @@ -55,7 +55,9 @@ If you want to reuse other Compose files, or factor out parts of your applicatio

## CLI

The Docker CLI lets you interact with your Docker Compose applications through the `docker compose` command, and its subcommands. Using the CLI, you can manage the lifecycle of your multi-container applications defined in the `compose.yaml` file. The CLI commands enable you to start, stop, and configure your applications effortlessly.
The Docker CLI lets you interact with your Docker Compose applications through the `docker compose` command and its subcommands. If you're using Docker Desktop, the Docker Compose CLI is included by default.

Using the CLI, you can manage the lifecycle of your multi-container applications defined in the `compose.yaml` file. The CLI commands enable you to start, stop, and configure your applications effortlessly.

### Key commands

Expand Down Expand Up @@ -101,11 +103,11 @@ Both services communicate with each other on an isolated back-tier network, whil

The example application is composed of the following parts:

- 2 services, backed by Docker images: `webapp` and `database`
- 1 secret (HTTPS certificate), injected into the frontend
- 1 configuration (HTTP), injected into the frontend
- 1 persistent volume, attached to the backend
- 2 networks
- Two services, backed by Docker images: `webapp` and `database`
- One secret (HTTPS certificate), injected into the frontend
- One configuration (HTTP), injected into the frontend
- One persistent volume, attached to the backend
- Two networks

```yml
services:
Expand Down Expand Up @@ -162,6 +164,6 @@ example-backend-1 example/database "docker-entrypoint.s…" backend

## What's next

- [Quickstart](/manuals/compose/gettingstarted.md)
- [Try the Quickstart guide](/manuals/compose/gettingstarted.md)
- [Explore some sample applications](/manuals/compose/support-and-feedback/samples-for-compose.md)
- [Familiarize yourself with the Compose Specification](/reference/compose-file/_index.md)
12 changes: 5 additions & 7 deletions content/manuals/compose/intro/features-uses.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
description: Key benefits and use cases of Docker Compose
keywords: documentation, docs, docker, compose, orchestration, containers, uses, benefits
description: Discover the benefits and typical use cases of Docker Compose for containerized application development and deployment
keywords: docker compose, compose use cases, compose benefits, container orchestration, development environments, testing containers, yaml file
title: Why use Compose?
weight: 20
aliases:
Expand All @@ -11,16 +11,14 @@ aliases:

Using Docker Compose offers several benefits that streamline the development, deployment, and management of containerized applications:

- Simplified control: Docker Compose allows you to define and manage multi-container applications in a single YAML file. This simplifies the complex task of orchestrating and coordinating various services, making it easier to manage and replicate your application environment.
- Simplified control: Define and manage multi-container apps in one YAML file, streamlining orchestration and replication.

- Efficient collaboration: Docker Compose configuration files are easy to share, facilitating collaboration among developers, operations teams, and other stakeholders. This collaborative approach leads to smoother workflows, faster issue resolution, and increased overall efficiency.
- Efficient collaboration: Shareable YAML files support smooth collaboration between developers and operations, improving workflows and issue resolution, leading to increased overall efficiency.

- Rapid application development: Compose caches the configuration used to create a container. When you restart a service that has not changed, Compose re-uses the existing containers. Re-using containers means that you can make changes to your environment very quickly.

- Portability across environments: Compose supports variables in the Compose file. You can use these variables to customize your composition for different environments, or different users.

- Extensive community and support: Docker Compose benefits from a vibrant and active community, which means abundant resources, tutorials, and support. This community-driven ecosystem contributes to the continuous improvement of Docker Compose and helps users troubleshoot issues effectively.

## Common use cases of Docker Compose

Compose can be used in many different ways. Some common use cases are outlined
Expand Down Expand Up @@ -67,4 +65,4 @@ For details on using production-oriented features, see

- [Learn about the history of Compose](history.md)
- [Understand how Compose works](compose-application-model.md)
- [Quickstart](../gettingstarted.md)
- [Try the Quickstart guide](../gettingstarted.md)
14 changes: 10 additions & 4 deletions content/manuals/compose/intro/history.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: History and development of Docker Compose
linkTitle: History and development
description: History of Compose v1 and Compose YAML schema versioning
description: Explore the evolution of Docker Compose from v1 to v2, including CLI changes, YAML versioning, and the Compose Specification.
keywords: compose, compose yaml, swarm, migration, compatibility, docker compose vs docker-compose
weight: 30
aliases:
Expand All @@ -11,7 +11,7 @@ aliases:
This page provides:
- A brief history of the development of the Docker Compose CLI
- A clear explanation of the major versions and file formats that make up Compose v1 and Compose v2
- The main differences between Compose V1 and Compose v2
- The main differences between Compose v1 and Compose v2

## Introduction

Expand All @@ -24,7 +24,7 @@ It also provides a quick snapshot of the differences in file formats, command-li
### Docker Compose CLI versioning

Version one of the Docker Compose command-line binary was first released in 2014. It was written in Python, and is invoked with `docker-compose`.
Typically, Compose V1 projects include a top-level `version` element in the `compose.yaml` file, with values ranging from `2.0` to `3.8`, which refer to the specific [file formats](#compose-file-format-versioning).
Typically, Compose v1 projects include a top-level `version` element in the `compose.yaml` file, with values ranging from `2.0` to `3.8`, which refer to the specific [file formats](#compose-file-format-versioning).

Version two of the Docker Compose command-line binary was announced in 2020, is written in Go, and is invoked with `docker compose`.
Compose v2 ignores the `version` top-level element in the `compose.yaml` file.
Expand All @@ -33,7 +33,7 @@ Compose v2 ignores the `version` top-level element in the `compose.yaml` file.

The Docker Compose CLIs are defined by specific file formats.

Three major versions of the Compose file format for Compose V1 were released:
Three major versions of the Compose file format for Compose v1 were released:
- Compose file format 1 with Compose 1.0.0 in 2014
- Compose file format 2.x with Compose 1.6.0 in 2016
- Compose file format 3.x with Compose 1.10.0 in 2017
Expand All @@ -48,3 +48,9 @@ To address confusion around Compose CLI versioning, Compose file format versioni
Compose v2 uses the Compose Specification for project definition. Unlike the prior file formats, the Compose Specification is rolling and makes the `version` top-level element optional. Compose v2 also makes use of optional specifications - [Deploy](/reference/compose-file/deploy.md), [Develop](/reference/compose-file/develop.md), and [Build](/reference/compose-file/build.md).

To make [migration](/manuals/compose/releases/migrate.md) easier, Compose v2 has backwards compatibility for certain elements that have been deprecated or changed between Compose file format 2.x/3.x and the Compose Specification.

## What's next?

- [How Compose works](compose-application-model.md)
- [Compose Specification reference](/reference/compose-file/_index.md)
- [Migrate from Compose v1 to v2](/manuals/compose/releases/migrate.md)
Loading