-
Notifications
You must be signed in to change notification settings - Fork 8.1k
site: add learning paths #20563
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
Merged
Merged
site: add learning paths #20563
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,13 @@ | ||
| --- | ||
| title: Learning paths | ||
| description: | | ||
| Docker Learning Paths offer structured guides to help you master Docker. | ||
| keywords: docker, learning, paths, tutorials, resources | ||
| --- | ||
|
|
||
| <p class="w-2/3"> | ||
| Docker Learning Paths offer structured guides to help you master Docker tools | ||
| and services. Each path includes tutorials and resources on topics like Docker | ||
| Scout and Docker Build Cloud. Start learning at your own pace and enhance your | ||
| Docker skills. | ||
| </p> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,158 @@ | ||
| --- | ||
| title: "Docker Build Cloud: Reclaim your time with fast, multi-architecture builds" | ||
| description: | | ||
| Learn how to build and deploy Docker images to the cloud with Docker Build Cloud. | ||
| summary: | | ||
| Create applications up to 39x faster using cloud-based resources, shared team cache, and native multi-architecture support. | ||
| params: | ||
| image: images/learning-paths/build-cloud.png | ||
| skill: Beginner | ||
| time: 10 minutes | ||
| prereq: None | ||
| --- | ||
|
|
||
| {{< columns >}} | ||
|
|
||
| <!-- vale Vale.Spelling = NO --> | ||
|
|
||
| 98% of developers spend up to an hour every day waiting for builds to finish | ||
| ([Incredibuild: 2022 Big Dev Build Times](https://www.incredibuild.com/survey-report-2022)). | ||
| Heavy, complex builds can become a major roadblock for development teams, | ||
| slowing down both local development and CI/CD pipelines. | ||
|
|
||
| <!-- vale Vale.Spelling = YES --> | ||
|
|
||
| Docker Build Cloud speeds up image build times to improve developer | ||
| productivity, reduce frustrations, and help you shorten the release cycle. | ||
|
|
||
| ## Who’s this for? | ||
|
|
||
| - Anyone who wants to tackle common causes of slow image builds: limited local | ||
| resources, slow emulation, and lack of build collaboration across a team. | ||
| - Developers working on older machines who want to build faster. | ||
| - Development teams working on the same repository who want to cut wait times | ||
| with a shared cache. | ||
| - Developers performing multi-architecture builds who don’t want to spend hours | ||
| configuring and rebuilding for emulators. | ||
|
|
||
| <!-- break --> | ||
|
|
||
| ## What you’ll learn | ||
|
|
||
| - Building container images faster locally and in CI | ||
| - Accelerating builds for multi-platform images | ||
| - Reusing pre-built images to expedite workflows | ||
|
|
||
| ## Tools integration | ||
|
|
||
| Works well with Docker Compose, GitHub Actions, and other CI solutions | ||
|
|
||
| {{< /columns >}} | ||
|
|
||
| ## Modules | ||
|
|
||
| {{< accordion large=true title=`Why Docker Build Cloud?` icon=`play_circle` >}} | ||
|
|
||
| Docker Build Cloud is a service that lets you build container images faster, | ||
| both locally and in CI. Builds run on cloud infrastructure optimally | ||
| dimensioned for your workloads, with no configuration required. The service | ||
| uses a remote build cache, ensuring fast builds anywhere and for all team | ||
| members. | ||
|
|
||
| - Docker Build Cloud provides several benefits over local builds: | ||
| - Improved build speed | ||
| - Shared build cache | ||
| - Native multi-platform builds | ||
|
|
||
| There’s no need to worry about managing builders or infrastructure — simply | ||
| connect to your builders and start building. Each cloud builder provisioned to | ||
| an organization is completely isolated to a single Amazon EC2 instance, with a | ||
| dedicated EBS volume for build cache and encryption in transit. That means | ||
| there are no shared processes or data between cloud builders. | ||
|
|
||
| {{< youtube-embed "8AqKhEO2PQA" >}} | ||
|
|
||
| {{< /accordion >}} | ||
|
|
||
| {{< accordion large=true title=`Demo: using Docker Build Cloud in CI` icon=`play_circle` >}} | ||
|
|
||
| Speed up your build pipelines — delegate the build execution to Docker Build Cloud in CI. | ||
|
|
||
| {{< youtube-embed "wvLdInoVBGg" >}} | ||
|
|
||
| {{< /accordion >}} | ||
|
|
||
| {{< accordion large=true title=`Common challenges and questions` icon=`quiz` >}} | ||
|
|
||
| ### Is Docker Build Cloud a standalone product or a part of Docker Desktop? | ||
|
|
||
| Docker Build Cloud is a service that can be used both with Docker Desktop and | ||
| standalone. It lets you build your container images faster, both locally and in | ||
| CI, with builds running on cloud infrastructure. The service uses a remote | ||
| build cache, ensuring fast builds anywhere and for all team members. | ||
|
|
||
| When used with Docker Desktop, the [Builds view](/desktop/use-desktop/builds/) | ||
| works with Docker Build Cloud out-of-the-box. It shows information about your | ||
| builds and those initiated by your team members using the same builder, | ||
| enabling collaborative troubleshooting. | ||
|
|
||
| To use Docker Build Cloud without Docker Desktop, you must | ||
| [download and install](/build-cloud/setup/#use-docker-build-cloud-without-docker-desktop) | ||
| a version of Buildx with support for Docker Build Cloud (the `cloud` driver). | ||
| If you plan on building with Docker Build Cloud using the `docker compose | ||
| build` command, you also need a version of Docker Compose that supports Docker | ||
| Build Cloud. | ||
|
|
||
| ### How does Docker Build Cloud work with Docker Compose? | ||
|
|
||
| Docker Compose works out of the box with Docker Build Cloud. Install the Docker | ||
| Build Cloud-compatible client (buildx) and it works with both commands. | ||
|
|
||
| ### How many minutes are included in Docker Build Cloud Team plans? | ||
|
|
||
| You receive 200 minutes per month per purchased seat. If you are also a Docker | ||
| subscriber (Personal, Pro, Team, Business), you will also receive your included | ||
| build minutes from that plan. | ||
|
|
||
| For example, if a Docker Team customer purchases 5 Build Cloud Team seats, they | ||
| will have 400 minutes from their Docker Team plan plus 1000 minutes (200 min/mo | ||
| * 5 seats) for a total of 1400 minutes per month. | ||
|
|
||
| ### I’m a Docker personal user. Can I try Docker Build Cloud? | ||
|
|
||
| Docker subscribers (Pro, Team, Business) receive a set number of minutes each | ||
| month, shared across the account, to use Build Cloud. | ||
|
|
||
| If you do not have a Docker subscription, you may sign up for a free Personal | ||
| account and get 50 minutes per month. Personal accounts are limited to a single | ||
| user. | ||
|
|
||
| For teams to receive the shared cache benefit, they must either be on a Docker | ||
| Team, Docker Business, or paid Build Cloud Team plan. You may buy a month of | ||
| Build Cloud Team for the number of seats testing. | ||
|
|
||
| ### Does Docker Build Cloud support CI platforms? Does it work with GitHub Actions? | ||
|
|
||
| Yes, Docker Build Cloud can be used with various CI platforms including GitHub | ||
| Actions, CircleCI, Jenkins, and others. It can speed up your build pipelines, | ||
| which means less time spent waiting and context switching. | ||
|
|
||
| Docker Build Cloud can be used with GitHub Actions to automate your build, | ||
| test, and deployment pipeline. Docker provides a set of official GitHub Actions | ||
| that you can use in your workflows. | ||
|
|
||
| Using GitHub Actions with Docker Build Cloud is straightforward. With a | ||
| one-line change in your GitHub Actions configuration, everything else stays the | ||
| same. You don't need to create new pipelines. Learn more in the [CI | ||
| documentation](/build-cloud/ci/) for Docker Build Cloud. | ||
|
|
||
| {{< /accordion >}} | ||
|
|
||
| {{< accordion large=true title=`Resources` icon=`link` >}} | ||
|
|
||
| - [Product page](https://www.docker.com/products/build-cloud/) | ||
| - [Docker Build Cloud overview](/build-cloud/) | ||
| - [Subscriptions and features](/subscription/build-cloud/build-details/) | ||
| - [Using Docker Build Cloud](/build-cloud/usage/) | ||
|
|
||
| {{< /accordion >}} | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,156 @@ | ||
| --- | ||
| title: Defining and Running Multi-Container Applications with Docker Compose | ||
| summary: Simplify the process of defining, configuring, and running multi-container Docker applications to enable efficient development, testing, and deployment. | ||
| description: Learn how to use Docker Compose to define and run multi-container Docker applications. | ||
| params: | ||
| image: images/learning-paths/compose.png | ||
| skill: Beginner | ||
| time: 5 minutes | ||
| prereq: None | ||
| --- | ||
|
|
||
| {{< columns >}} | ||
|
|
||
| Developers face challenges with multi-container Docker applications, including | ||
| complex configuration, dependency management, and maintaining consistent | ||
| environments. Networking, resource allocation, data persistence, logging, and | ||
| monitoring add to the difficulty. Security concerns and troubleshooting issues | ||
| further complicate the process, requiring effective tools and practices for | ||
| efficient management. | ||
|
|
||
| Docker Compose solves the problem of managing multi-container Docker | ||
| applications by providing a simple way to define, configure, and run all the | ||
| containers needed for an application using a single YAML file. This approach | ||
| helps developers to easily set up, share, and maintain consistent development, | ||
| testing, and production environments, ensuring that complex applications can be | ||
| deployed with all their dependencies and services properly configured and | ||
| orchestrated. | ||
|
|
||
| <!-- break --> | ||
|
|
||
| ## Who’s this for? | ||
|
|
||
| - Developers and DevOps engineers who need to define, manage, and orchestrate | ||
| multi-container Docker applications efficiently across multiple environments. | ||
| - Development teams that want to increase productivity by streamlining | ||
| development workflows and reducing setup time. | ||
|
|
||
| ## Tools integration | ||
|
|
||
| Works well with Docker CLI, CI/CD tools, and container orchestration tools. | ||
|
|
||
| {{< /columns >}} | ||
|
|
||
| ## Modules | ||
|
|
||
| {{< accordion large=true title=`Why Docker Compose?` icon=`play_circle` >}} | ||
|
|
||
| Docker Compose is an essential tool for defining and running multi-container | ||
| Docker applications. Docker Compose simplifies the Docker experience, making it | ||
| easier for developers to create, manage, and deploy applications by using YAML | ||
| files to configure application services. | ||
|
|
||
| Docker Compose provides several benefits: | ||
|
|
||
| - Lets you define multi-container applications in a single YAML file. | ||
| - Ensures consistent environments across development, testing, and production. | ||
| - Manages the startup and linking of multiple containers effortlessly. | ||
| - Streamlines development workflows and reduces setup time. | ||
| - Ensures that each service runs in its own container, avoiding conflicts. | ||
|
|
||
| {{< youtube-embed 2EqarOM2V4U >}} | ||
|
|
||
| {{< /accordion >}} | ||
|
|
||
| {{< accordion large=true title=`Demo: Set up and use Docker Compose` icon=`play_circle` >}} | ||
|
|
||
| {{< youtube-embed P5RBKmOLPH4 >}} | ||
|
|
||
| {{< /accordion >}} | ||
|
|
||
| {{< accordion large=true title=`Common challenges and questions` icon=`quiz` >}} | ||
|
|
||
| <!-- vale Docker.HeadingLength = NO --> | ||
|
|
||
| ### Do I need to maintain a separate Compose file for my development, testing, and staging environments? | ||
|
|
||
| You don't necessarily need to maintain entirely separate Compose files for your | ||
| development, testing, and staging environments. You can define all your | ||
| services in a single Compose file (`compose.yml`). You can use profiles to | ||
| group service configurations specific to each environment (`dev`, `test`, | ||
| `staging`). | ||
|
|
||
| When you need to spin up an environment, you can activate the corresponding | ||
| profiles. For example, to set up the development environment: | ||
|
|
||
| ```console | ||
| $ docker compose --profile dev up | ||
| ``` | ||
|
|
||
| This command starts only the services associated with the `dev` profile, | ||
| leaving the rest inactive. | ||
|
|
||
| For more information on using profiles, see [Using profiles with | ||
| Compose](/compose/profiles/). | ||
|
|
||
| ### How can I enforce the database service to start up before the frontend service? | ||
|
|
||
| Docker Compose ensures services start in a specific order by using the | ||
| `depends_on` property. This tells Compose to start the database service before | ||
| even attempting to launch the frontend service. This is crucial since | ||
| applications often rely on databases being ready for connections. | ||
|
|
||
| However, `depends_on` only guarantees the order, not that the database is fully | ||
| initialized. For a more robust approach, especially if your application relies | ||
| on a prepared database (e.g., after migrations), consider [health | ||
| checks](/reference/compose-file/services.md#healthcheck). Here, you can | ||
| configure the frontend to wait until the database passes its health check | ||
| before starting. This ensures the database is not only up but also ready to | ||
| handle requests. | ||
|
|
||
| For more information on setting the startup order of your services, see | ||
| [Control startup and shutdown order in Compose](/compose/startup-order/). | ||
|
|
||
| ### Can I use Compose to build a Docker image? | ||
|
|
||
| Yes, you can use Docker Compose to build Docker images. Docker Compose is a | ||
| tool for defining and running multi-container applications. Even if your | ||
| application isn't a multi-container application, Docker Compose can make it | ||
| easier to run by defining all the `docker run` options in a file. | ||
|
|
||
| To use Compose, you need a `compose.yml` file. In this file, you can specify | ||
| the build context and Dockerfile for each service. When you run the command | ||
| `docker compose up --build`, Docker Compose will build the images for each | ||
| service and then start the containers. | ||
|
|
||
| For more information on building Docker images using Compose, see the [Compose | ||
| Build Specification](/compose/compose-file/build/). | ||
|
|
||
| ### What is the difference between Docker Compose and Dockerfile? | ||
|
|
||
| A Dockerfile provides instructions to build a container image while a Compose | ||
| file defines your running containers. Quite often, a Compose file references a | ||
| Dockerfile to build an image to use for a particular service. | ||
|
|
||
| ### What is the difference between the `docker compose up` and `docker compose run` commands? | ||
|
|
||
| The `docker compose up` command creates and starts all your services. It's | ||
| perfect for launching your development environment or running the entire | ||
| application. The `docker compose run` command focuses on individual services. | ||
| It starts a specified service along with its dependencies, allowing you to run | ||
| tests or perform one-off tasks within that container. | ||
|
|
||
| <!-- vale Docker.HeadingLength = YES --> | ||
|
|
||
| {{< /accordion >}} | ||
|
|
||
| {{< accordion large=true title=`Resources` icon=`link` >}} | ||
|
|
||
| - [Overview of Docker Compose CLI](/compose/reference/) | ||
| - [Overview of Docker Compose](/compose/) | ||
| - [How Compose works](/compose/compose-application-model/) | ||
| - [Using profiles with Compose](/compose/profiles/) | ||
| - [Control startup and shutdown order with Compose](/compose/startup-order/) | ||
| - [Compose Build Specification](/compose/compose-file/build/) | ||
|
|
||
| {{< /accordion >}} |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.