Skip to content

Commit 7083355

Browse files
committed
site: add learning paths
Signed-off-by: David Karlsson <[email protected]>
1 parent 812ba36 commit 7083355

File tree

23 files changed

+694
-93
lines changed

23 files changed

+694
-93
lines changed
20.8 KB
Loading
23.4 KB
Loading
127 KB
Loading

content/learning-paths/_index.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
title: Learning paths
3+
description: |
4+
Docker Learning Paths offer structured guides to help you master Docker.
5+
keywords: docker, learning, paths, tutorials, resources
6+
---
7+
8+
<p class="w-2/3">
9+
Docker Learning Paths offer structured guides to help you master Docker tools
10+
and services. Each path includes tutorials and resources on topics like Docker
11+
Scout and Docker Build Cloud. Start learning at your own pace and enhance your
12+
Docker skills.
13+
</p>
Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
---
2+
title: "Docker Build Cloud: Reclaim your time with fast, multi-architecture builds"
3+
description: |
4+
Learn how to build and deploy Docker images to the cloud with Docker Build Cloud.
5+
summary: |
6+
Create applications up to 39x faster using cloud-based resources, shared team cache, and native multi-architecture support.
7+
params:
8+
image: images/learning-paths/build-cloud.png
9+
skill: Beginner
10+
time: 10 minutes
11+
prereq: None
12+
---
13+
14+
{{< columns >}}
15+
16+
<!-- vale Vale.Spelling = NO -->
17+
18+
98% of developers spend up to an hour every day waiting for builds to finish
19+
([Incredibuild: 2022 Big Dev Build Times](https://www.incredibuild.com/survey-report-2022)).
20+
Heavy, complex builds can become a major roadblock for development teams,
21+
slowing down both local development and CI/CD pipelines.
22+
23+
<!-- vale Vale.Spelling = YES -->
24+
25+
Docker Build Cloud speeds up image build times to improve developer
26+
productivity, reduce frustrations, and help you shorten the release cycle.
27+
28+
## Who’s this for?
29+
30+
- Anyone who wants to tackle common causes of slow image builds: limited local
31+
resources, slow emulation, and lack of build collaboration across a team.
32+
- Developers working on older machines who want to build faster.
33+
- Development teams working on the same repository who want to cut wait times
34+
with a shared cache.
35+
- Developers performing multi-architecture builds who don’t want to spend hours
36+
configuring and rebuilding for emulators.
37+
38+
<!-- break -->
39+
40+
## What you’ll learn
41+
42+
- Building container images faster locally and in CI
43+
- Accelerating builds for multi-platform images
44+
- Reusing pre-built images to expedite workflows
45+
46+
## Tools integration
47+
48+
Works well with Docker Compose, GitHub Actions, and other CI solutions
49+
50+
{{< /columns >}}
51+
52+
## Modules
53+
54+
{{< accordion large=true title=`Why Docker Build Cloud?` icon=`play_circle` >}}
55+
56+
Docker Build Cloud is a service that lets you build container images faster,
57+
both locally and in CI. Builds run on cloud infrastructure optimally
58+
dimensioned for your workloads, with no configuration required. The service
59+
uses a remote build cache, ensuring fast builds anywhere and for all team
60+
members.
61+
62+
- Docker Build Cloud provides several benefits over local builds:
63+
- Improved build speed
64+
- Shared build cache
65+
- Native multi-platform builds
66+
67+
There’s no need to worry about managing builders or infrastructure — simply
68+
connect to your builders and start building. Each cloud builder provisioned to
69+
an organization is completely isolated to a single Amazon EC2 instance, with a
70+
dedicated EBS volume for build cache and encryption in transit. That means
71+
there are no shared processes or data between cloud builders.
72+
73+
{{< youtube-embed "8AqKhEO2PQA" >}}
74+
75+
{{< /accordion >}}
76+
77+
{{< accordion large=true title=`Demo: using Docker Build Cloud in CI` icon=`play_circle` >}}
78+
79+
Speed up your build pipelines — delegate the build execution to Docker Build Cloud in CI.
80+
81+
{{< youtube-embed "wvLdInoVBGg" >}}
82+
83+
{{< /accordion >}}
84+
85+
{{< accordion large=true title=`Common challenges and questions` icon=`quiz` >}}
86+
87+
### Is Docker Build Cloud a standalone product or a part of Docker Desktop?
88+
89+
Docker Build Cloud is a service that can be used both with Docker Desktop and
90+
standalone. It lets you build your container images faster, both locally and in
91+
CI, with builds running on cloud infrastructure. The service uses a remote
92+
build cache, ensuring fast builds anywhere and for all team members.
93+
94+
When used with Docker Desktop, the [Builds view](/desktop/use-desktop/builds/)
95+
works with Docker Build Cloud out-of-the-box. It shows information about your
96+
builds and those initiated by your team members using the same builder,
97+
enabling collaborative troubleshooting.
98+
99+
To use Docker Build Cloud without Docker Desktop, you must
100+
[download and install](/build-cloud/setup/#use-docker-build-cloud-without-docker-desktop)
101+
a version of Buildx with support for Docker Build Cloud (the `cloud` driver).
102+
If you plan on building with Docker Build Cloud using the `docker compose
103+
build` command, you also need a version of Docker Compose that supports Docker
104+
Build Cloud.
105+
106+
### How does Docker Build Cloud work with Docker Compose?
107+
108+
Docker Compose works out of the box with Docker Build Cloud. Install the Docker
109+
Build Cloud-compatible client (buildx) and it works with both commands.
110+
111+
### How many minutes are included in Docker Build Cloud Team plans?
112+
113+
You receive 200 minutes per month per purchased seat. If you are also a Docker
114+
subscriber (Personal, Pro, Team, Business), you will also receive your included
115+
build minutes from that plan.
116+
117+
For example, if a Docker Team customer purchases 5 Build Cloud Team seats, they
118+
will have 400 minutes from their Docker Team plan plus 1000 minutes (200 min/mo
119+
* 5 seats) for a total of 1400 minutes per month.
120+
121+
### I’m a Docker personal user. Can I try Docker Build Cloud?
122+
123+
Docker subscribers (Pro, Team, Business) receive a set number of minutes each
124+
month, shared across the account, to use Build Cloud.
125+
126+
If you do not have a Docker subscription, you may sign up for a free Personal
127+
account and get 50 minutes per month. Personal accounts are limited to a single
128+
user.
129+
130+
For teams to receive the shared cache benefit, they must either be on a Docker
131+
Team, Docker Business, or paid Build Cloud Team plan. You may buy a month of
132+
Build Cloud Team for the number of seats testing.
133+
134+
### Does Docker Build Cloud support CI platforms? Does it work with GitHub Actions?
135+
136+
Yes, Docker Build Cloud can be used with various CI platforms including GitHub
137+
Actions, CircleCI, Jenkins, and others. It can speed up your build pipelines,
138+
which means less time spent waiting and context switching.
139+
140+
Docker Build Cloud can be used with GitHub Actions to automate your build,
141+
test, and deployment pipeline. Docker provides a set of official GitHub Actions
142+
that you can use in your workflows.
143+
144+
Using GitHub Actions with Docker Build Cloud is straightforward. With a
145+
one-line change in your GitHub Actions configuration, everything else stays the
146+
same. You don't need to create new pipelines. Learn more in the [CI
147+
documentation](/build-cloud/ci/) for Docker Build Cloud.
148+
149+
{{< /accordion >}}
150+
151+
{{< accordion large=true title=`Resources` icon=`link` >}}
152+
153+
- [Product page](https://www.docker.com/products/build-cloud/)
154+
- [Docker Build Cloud overview](/build-cloud/)
155+
- [Subscriptions and features](/subscription/build-cloud/build-details/)
156+
- [Using Docker Build Cloud](/build-cloud/usage/)
157+
158+
{{< /accordion >}}
Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
---
2+
title: Defining and Running Multi-Container Applications with Docker Compose
3+
summary: Simplify the process of defining, configuring, and running multi-container Docker applications to enable efficient development, testing, and deployment.
4+
description: Learn how to use Docker Compose to define and run multi-container Docker applications.
5+
params:
6+
image: images/learning-paths/compose.png
7+
skill: Beginner
8+
time: 5 minutes
9+
prereq: None
10+
---
11+
12+
{{< columns >}}
13+
14+
Developers face challenges with multi-container Docker applications, including
15+
complex configuration, dependency management, and maintaining consistent
16+
environments. Networking, resource allocation, data persistence, logging, and
17+
monitoring add to the difficulty. Security concerns and troubleshooting issues
18+
further complicate the process, requiring effective tools and practices for
19+
efficient management.
20+
21+
Docker Compose solves the problem of managing multi-container Docker
22+
applications by providing a simple way to define, configure, and run all the
23+
containers needed for an application using a single YAML file. This approach
24+
helps developers to easily set up, share, and maintain consistent development,
25+
testing, and production environments, ensuring that complex applications can be
26+
deployed with all their dependencies and services properly configured and
27+
orchestrated.
28+
29+
<!-- break -->
30+
31+
## Who’s this for?
32+
33+
- Developers and DevOps engineers who need to define, manage, and orchestrate
34+
multi-container Docker applications efficiently across multiple environments.
35+
- Development teams that want to increase productivity by streamlining
36+
development workflows and reducing setup time.
37+
38+
## Tools integration
39+
40+
Works well with Docker CLI, CI/CD tools, and container orchestration tools.
41+
42+
{{< /columns >}}
43+
44+
## Modules
45+
46+
{{< accordion large=true title=`Why Docker Compose?` icon=`play_circle` >}}
47+
48+
Docker Compose is an essential tool for defining and running multi-container
49+
Docker applications. Docker Compose simplifies the Docker experience, making it
50+
easier for developers to create, manage, and deploy applications by using YAML
51+
files to configure application services.
52+
53+
Docker Compose provides several benefits:
54+
55+
- Lets you define multi-container applications in a single YAML file.
56+
- Ensures consistent environments across development, testing, and production.
57+
- Manages the startup and linking of multiple containers effortlessly.
58+
- Streamlines development workflows and reduces setup time.
59+
- Ensures that each service runs in its own container, avoiding conflicts.
60+
61+
{{< youtube-embed 2EqarOM2V4U >}}
62+
63+
{{< /accordion >}}
64+
65+
{{< accordion large=true title=`Demo: Set up and use Docker Compose` icon=`play_circle` >}}
66+
67+
{{< youtube-embed P5RBKmOLPH4 >}}
68+
69+
{{< /accordion >}}
70+
71+
{{< accordion large=true title=`Common challenges and questions` icon=`quiz` >}}
72+
73+
<!-- vale Docker.HeadingLength = NO -->
74+
75+
### Do I need to maintain a separate Compose file for my development, testing, and staging environments?
76+
77+
You don't necessarily need to maintain entirely separate Compose files for your
78+
development, testing, and staging environments. You can define all your
79+
services in a single Compose file (`compose.yml`). You can use profiles to
80+
group service configurations specific to each environment (`dev`, `test`,
81+
`staging`).
82+
83+
When you need to spin up an environment, you can activate the corresponding
84+
profiles. For example, to set up the development environment:
85+
86+
```console
87+
$ docker compose --profile dev up
88+
```
89+
90+
This command starts only the services associated with the `dev` profile,
91+
leaving the rest inactive.
92+
93+
For more information on using profiles, see [Using profiles with
94+
Compose](/compose/profiles/).
95+
96+
### How can I enforce the database service to start up before the frontend service?
97+
98+
Docker Compose ensures services start in a specific order by using the
99+
`depends_on` property. This tells Compose to start the database service before
100+
even attempting to launch the frontend service. This is crucial since
101+
applications often rely on databases being ready for connections.
102+
103+
However, `depends_on` only guarantees the order, not that the database is fully
104+
initialized. For a more robust approach, especially if your application relies
105+
on a prepared database (e.g., after migrations), consider [health
106+
checks](/reference/compose-file/services.md#healthcheck). Here, you can
107+
configure the frontend to wait until the database passes its health check
108+
before starting. This ensures the database is not only up but also ready to
109+
handle requests.
110+
111+
For more information on setting the startup order of your services, see
112+
[Control startup and shutdown order in Compose](/compose/startup-order/).
113+
114+
### Can I use Compose to build a Docker image?
115+
116+
Yes, you can use Docker Compose to build Docker images. Docker Compose is a
117+
tool for defining and running multi-container applications. Even if your
118+
application isn't a multi-container application, Docker Compose can make it
119+
easier to run by defining all the `docker run` options in a file.
120+
121+
To use Compose, you need a `compose.yml` file. In this file, you can specify
122+
the build context and Dockerfile for each service. When you run the command
123+
`docker compose up --build`, Docker Compose will build the images for each
124+
service and then start the containers.
125+
126+
For more information on building Docker images using Compose, see the [Compose
127+
Build Specification](/compose/compose-file/build/).
128+
129+
### What is the difference between Docker Compose and Dockerfile?
130+
131+
A Dockerfile provides instructions to build a container image while a Compose
132+
file defines your running containers. Quite often, a Compose file references a
133+
Dockerfile to build an image to use for a particular service.
134+
135+
### What is the difference between the `docker compose up` and `docker compose run` commands?
136+
137+
The `docker compose up` command creates and starts all your services. It's
138+
perfect for launching your development environment or running the entire
139+
application. The `docker compose run` command focuses on individual services.
140+
It starts a specified service along with its dependencies, allowing you to run
141+
tests or perform one-off tasks within that container.
142+
143+
<!-- vale Docker.HeadingLength = YES -->
144+
145+
{{< /accordion >}}
146+
147+
{{< accordion large=true title=`Resources` icon=`link` >}}
148+
149+
- [Overview of Docker Compose CLI](/compose/reference/)
150+
- [Overview of Docker Compose](/compose/)
151+
- [How Compose works](/compose/compose-application-model/)
152+
- [Using profiles with Compose](/compose/profiles/)
153+
- [Control startup and shutdown order with Compose](/compose/startup-order/)
154+
- [Compose Build Specification](/compose/compose-file/build/)
155+
156+
{{< /accordion >}}

0 commit comments

Comments
 (0)