diff --git a/static/assets/images/thumbnail.webp b/assets/images/thumbnail.webp similarity index 100% rename from static/assets/images/thumbnail.webp rename to assets/images/thumbnail.webp diff --git a/content/guides/resources.md b/content/get-started/resources.md similarity index 100% rename from content/guides/resources.md rename to content/get-started/resources.md diff --git a/content/get-started/workshop/10_what_next.md b/content/get-started/workshop/10_what_next.md index e14bfc54c3..35ea9ea80e 100644 --- a/content/get-started/workshop/10_what_next.md +++ b/content/get-started/workshop/10_what_next.md @@ -51,7 +51,3 @@ Docker recommends watching the video workshop from DockerCon 2022. Watch the ent If you'd like to see how containers are built from scratch, Liz Rice from Aqua Security has a fantastic talk in which she creates a container from scratch in Go. While the talk does not go into networking, using images for the filesystem, and other advanced topics, it gives a deep dive into how things are working. - -## Language-specific guides - -If you are looking for information on how to containerize an application using your favorite language, see the [Language-specific guides](/guides/language/_index.md). diff --git a/content/guides/_index.md b/content/guides/_index.md index 7731143cd2..b079fb0393 100644 --- a/content/guides/_index.md +++ b/content/guides/_index.md @@ -4,42 +4,7 @@ keywords: Docker guides description: Explore the Docker guides params: icon: developer_guide - notoc: true - dive-deeper: - - title: Language-specific guides - description: Learn how to containerize, develop, and test language-specific apps using Docker. - link: /language/ - icon: code - - title: Use-case guides - description: Walk through practical Docker applications for specific scenarios. - link: /guides/use-case/ - icon: task - - title: Deployment and Orchestration - description: Deploy and manage Docker containers at scale. - link: /guides/deployment-orchestration/orchestration/ - icon: workspaces - resources: - - title: Educational resources - description: Explore diverse Docker training and hands-on experiences. - link: /guides/resources/ - icon: book - - title: Contribute to Docker's docs - description: Learn how to help contribute to Docker docs. - link: /contribute/ - icon: edit -layout: wide +layout: landing --- This section contains more advanced guides to help you learn how Docker can optimize your development workflows. - -## Advancing with Docker - -Explore more advanced concepts and scenarios in Docker. - -{{< grid items="dive-deeper" >}} - -## Educational resources and contributions - -Discover community-driven resources and learn how to contribute to Docker docs. - -{{< grid items="resources" >}} diff --git a/content/guides/language/cpp/_index.md b/content/guides/cpp/_index.md similarity index 79% rename from content/guides/language/cpp/_index.md rename to content/guides/cpp/_index.md index d422306115..87d3c61c63 100644 --- a/content/guides/language/cpp/_index.md +++ b/content/guides/cpp/_index.md @@ -1,12 +1,20 @@ --- -description: Containerize and develop C++ applications using Docker. -keywords: getting started, c++ title: C++ language-specific guide linkTitle: C++ +description: Containerize and develop C++ applications using Docker. +keywords: getting started, c++ +summary: | + This guide explains how to containerize C++ applications using Docker, + covering how to build Docker images, manage dependencies, and deploy C++ apps + efficiently in containers. toc_min: 1 toc_max: 2 aliases: - /language/cpp/ +languages: [cpp] +levels: [beginner] +params: + time: 10 minutes --- The C++ getting started guide teaches you how to create a containerized C++ application using Docker. In this guide, you'll learn how to: @@ -23,5 +31,3 @@ The C++ getting started guide teaches you how to create a containerized C++ appl After completing the C++ getting started modules, you should be able to containerize your own C++ application based on the examples and instructions provided in this guide. Start by containerizing an existing C++ application. - -{{< button text="Containerize a C++ app" url="containerize.md" >}} diff --git a/content/guides/language/cpp/configure-ci-cd.md b/content/guides/cpp/configure-ci-cd.md similarity index 98% rename from content/guides/language/cpp/configure-ci-cd.md rename to content/guides/cpp/configure-ci-cd.md index 1e00c05711..0fec66e210 100644 --- a/content/guides/language/cpp/configure-ci-cd.md +++ b/content/guides/cpp/configure-ci-cd.md @@ -129,5 +129,3 @@ Related information: ## Next steps Next, learn how you can locally test and debug your workloads on Kubernetes before deploying. - -{{< button text="Test your deployment" url="./deploy.md" >}} diff --git a/content/guides/language/cpp/containerize.md b/content/guides/cpp/containerize.md similarity index 97% rename from content/guides/language/cpp/containerize.md rename to content/guides/cpp/containerize.md index 7a8c7f1d13..90ed805693 100644 --- a/content/guides/language/cpp/containerize.md +++ b/content/guides/cpp/containerize.md @@ -89,5 +89,3 @@ Related information: In the next section, you'll learn how you can develop your application using containers. - -{{< button text="Develop your application" url="develop.md" >}} diff --git a/content/guides/language/cpp/deploy.md b/content/guides/cpp/deploy.md similarity index 100% rename from content/guides/language/cpp/deploy.md rename to content/guides/cpp/deploy.md diff --git a/content/guides/language/cpp/develop.md b/content/guides/cpp/develop.md similarity index 97% rename from content/guides/language/cpp/develop.md rename to content/guides/cpp/develop.md index 9b3598de0d..33538f664c 100644 --- a/content/guides/language/cpp/develop.md +++ b/content/guides/cpp/develop.md @@ -73,5 +73,3 @@ Related information: ## Next steps In the next section, you'll take a look at how to set up a CI/CD pipeline using GitHub Actions. - -{{< button text="Configure CI/CD" url="configure-ci-cd.md" >}} diff --git a/content/guides/use-case/databases.md b/content/guides/databases.md similarity index 98% rename from content/guides/use-case/databases.md rename to content/guides/databases.md index c2951a8f47..610dc88cef 100644 --- a/content/guides/use-case/databases.md +++ b/content/guides/databases.md @@ -2,6 +2,14 @@ description: Learn how to run, connect to, and persist data in a local containerized database. keywords: database, mysql title: Use containerized databases +summary: | + Learn how to effectively run and manage databases using Docker containers, + with guides on setup, data persistence, networking, and best practices to + streamline your development and deployment processes. +levels: [beginner] +subjects: [databases] +params: + time: 20 minutes --- Using a local containerized database offers flexibility and ease of setup, diff --git a/content/guides/deployment-orchestration/_index.md b/content/guides/deployment-orchestration/_index.md deleted file mode 100644 index d98304876c..0000000000 --- a/content/guides/deployment-orchestration/_index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: Deployment and orchestration -weight: 30 -build: - render: never ---- - diff --git a/content/guides/docker-build-cloud/_index.md b/content/guides/docker-build-cloud/_index.md new file mode 100644 index 0000000000..b356544966 --- /dev/null +++ b/content/guides/docker-build-cloud/_index.md @@ -0,0 +1,59 @@ +--- +title: "Docker Build Cloud: Reclaim your time with fast, multi-architecture builds" +linkTitle: Docker Build Cloud +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. +levels: [beginner] +products: [dbc] +params: + featured: true + image: images/learning-paths/build-cloud.png + time: 10 minutes + resource_links: + - title: Product page + url: https://www.docker.com/products/build-cloud/ + - title: Docker Build Cloud overview + url: /build-cloud/ + - title: Subscriptions and features + url: /subscription/build-cloud/build-details/ + - title: Using Docker Build Cloud + url: /build-cloud/usage/ +--- + + + +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. + + + +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. + +## 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 + +
diff --git a/content/guides/docker-build-cloud/ci.md b/content/guides/docker-build-cloud/ci.md new file mode 100644 index 0000000000..37aa6afc60 --- /dev/null +++ b/content/guides/docker-build-cloud/ci.md @@ -0,0 +1,22 @@ +--- +title: "Demo: Using Docker Build Cloud in CI" +description: Learn how to use Docker Build Cloud to build your app faster in CI. +weight: 30 +--- + +Docker Build Cloud can significantly decrease the time it takes for your CI builds +take to run, saving you time and money. + +Since the builds run remotely, your CI runner can still use the Docker tooling CLI +without needing elevated permissions, making your builds more secure by default. + +In this demo, you will see: + +- How to integrate Docker Build Cloud into a variety of CI platforms +- How to use Docker Build Cloud in GitHub Actions to build multi-architecture images +- Speed differences between a workflow using Docker Build Cloud and a workflow running natively +- How to use Docker Build Cloud in a GitLab Pipeline + +{{< youtube-embed "wvLdInoVBGg" >}} + +
diff --git a/content/guides/docker-build-cloud/common-questions.md b/content/guides/docker-build-cloud/common-questions.md new file mode 100644 index 0000000000..40c370a9c6 --- /dev/null +++ b/content/guides/docker-build-cloud/common-questions.md @@ -0,0 +1,69 @@ +--- +title: Common challenges and questions +description: Explore common challenges and questions related to Docker Build Cloud. +weight: 40 +--- + +### 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. + +
diff --git a/content/guides/docker-build-cloud/dev.md b/content/guides/docker-build-cloud/dev.md new file mode 100644 index 0000000000..3cc121d56b --- /dev/null +++ b/content/guides/docker-build-cloud/dev.md @@ -0,0 +1,18 @@ +--- +title: "Demo: set up and use Docker Build Cloud in development" +description: Learn how to use Docker Buld Cloud for local builds. +weight: 20 +--- + +With Docker Build Cloud, you can easily shift the build workload from local machines +to the cloud, helping you achieve faster build times, especially for multi-platform builds. + +In this demo, you'll see: + +- How to setup the builder locally +- How to use Docker Build Cloud with Docker Compose +- How the image cache speeds up builds for others on your team + +{{< youtube-embed "oPGq2AP5OtQ" >}} + +
diff --git a/content/guides/docker-build-cloud/why.md b/content/guides/docker-build-cloud/why.md new file mode 100644 index 0000000000..a7f41dc2ea --- /dev/null +++ b/content/guides/docker-build-cloud/why.md @@ -0,0 +1,27 @@ +--- +title: Why Docker Build Cloud? +description: Learn how Docker Build Cloud makes your builds faster. +weight: 10 +--- + +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" >}} + +
diff --git a/content/guides/docker-compose/_index.md b/content/guides/docker-compose/_index.md new file mode 100644 index 0000000000..49cabc0be3 --- /dev/null +++ b/content/guides/docker-compose/_index.md @@ -0,0 +1,60 @@ +--- +title: Defining and running multi-container applications with Docker Compose +linkTitle: 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. +levels: [beginner] +products: [compose] +params: + featured: true + image: images/learning-paths/compose.png + time: 10 minutes + resource_links: + - title: Overview of Docker Compose CLI + url: /compose/reference/ + - title: Overview of Docker Compose + url: /compose/ + - title: How Compose works + url: /compose/intro/compose-application-model/ + - title: Using profiles with Compose + url: /compose/how-tos/profiles/ + - title: Control startup and shutdown order with Compose + url: /compose/how-tos/startup-order/ + - title: Compose Build Specification + url: /compose/compose-file/build/ +--- + +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. + +## What you’ll learn + +- What Docker Compose is and what it does +- How to define services +- Use cases for Docker Compose +- How things would be different without Docker Compose + +## 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. + +
diff --git a/content/guides/docker-compose/common-questions.md b/content/guides/docker-compose/common-questions.md new file mode 100644 index 0000000000..64b6320929 --- /dev/null +++ b/content/guides/docker-compose/common-questions.md @@ -0,0 +1,77 @@ +--- +title: Common challenges and questions +description: Explore common challenges and questions related to Docker Compose. +weight: 30 +--- + + + +### 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.yaml`). 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/how-tos/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/how-tos/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.yaml` 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. + +
diff --git a/content/guides/docker-compose/setup.md b/content/guides/docker-compose/setup.md new file mode 100644 index 0000000000..0481cd84b2 --- /dev/null +++ b/content/guides/docker-compose/setup.md @@ -0,0 +1,16 @@ +--- +title: "Demo: set up and use Docker Compose" +description: Learn how to get started with Docker Compose. +weight: 20 +--- + +This Docker Compose demo shows how to orchestrate a multi-container application +environment, streamlining development and deployment processes. + +- Compare Docker Compose to the `docker run` command +- Configure a multi-container web app using a Compose file +- Run a multi-container web app using one command + +{{< youtube-embed P5RBKmOLPH4 >}} + +
diff --git a/content/guides/docker-compose/why.md b/content/guides/docker-compose/why.md new file mode 100644 index 0000000000..a89b667bfa --- /dev/null +++ b/content/guides/docker-compose/why.md @@ -0,0 +1,22 @@ +--- +title: Why Docker Compose? +description: Learn how Docker Compose can help you simplify app development. +weight: 10 +--- + +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 >}} + +
diff --git a/content/guides/docker-scout/_index.md b/content/guides/docker-scout/_index.md new file mode 100644 index 0000000000..5d36426877 --- /dev/null +++ b/content/guides/docker-scout/_index.md @@ -0,0 +1,67 @@ +--- +title: Securing your software supply chain with Docker Scout +linkTitle: Docker Scout +summary: | + Enhance container security by automating vulnerability detection and + remediation, ensuring compliance, and protecting your development workflow. +description: | + Learn how to use Docker Scout to enhance container security by automating + vulnerability detection and remediation, ensuring compliance, and protecting + your development workflow. +levels: [Beginner] +products: [scout] +params: + featured: true + image: images/learning-paths/scout.png + time: 10 minutes + resource_links: + - title: Docker Scout overview + url: /scout/ + - title: Docker Scout quickstart + url: /scout/quickstart/ + - title: Install Docker Scout + url: /scout/install/ + - title: Software Bill of Materials + url: /scout/concepts/sbom/ +--- + +When container images are insecure, significant risks can arise. Around 60% of +organizations have reported experiencing at least one security breach or +vulnerability incident within a year, resulting in operational +disruption.[^CSA] These incidents often result in considerable downtime, with +44% of affected companies experiencing over an hour of downtime per event. The +financial impact is substantial, with the average data breach cost reaching +$4.45 million.[^IBM] This highlights the critical importance of maintaining +robust container security measures. + +Docker Scout enhances container security by providing automated vulnerability +detection and remediation, addressing insecure container images, and ensuring +compliance with security standards. + +[^CSA]: https://cloudsecurityalliance.org/blog/2023/09/21/2023-global-cloud-threat-report-cloud-attacks-are-lightning-fast + +[^IBM]: https://www.ibm.com/reports/data-breach + +## What you'll learn + +- Define secure software supply chain (SSSC) +- Review SBOMs and how to use them +- Detect and monitor vulnerabilities + +## Tools integration + +Works well with Docker Desktop, GitHub Actions, Jenkins, Kubernetes, and +other CI solutions. + +## Who’s this for? + +- DevOps engineers who need to integrate automated security checks into CI/CD + pipelines to enhance the security and efficiency of their workflows. +- Developers who want to use Docker Scout to identify and remediate + vulnerabilities early in the development process, ensuring the production of + secure container images. +- Security professionals who must enforce security compliance, conduct + vulnerability assessments, and ensure the overall security of containerized + applications. + +
diff --git a/content/guides/docker-scout/common-questions.md b/content/guides/docker-scout/common-questions.md new file mode 100644 index 0000000000..65a98d737a --- /dev/null +++ b/content/guides/docker-scout/common-questions.md @@ -0,0 +1,61 @@ +--- +title: Common challenges and questions +description: Explore common challenges and questions related to Docker Scout. +weight: 30 +--- + + + +### How is Docker Scout different from other security tools? + +Docker Scout takes a broader approach to container security compared to +third-party security tools. Third-party security tools, if they offer +remediation guidance at all, miss the mark on their limited scope of +application security posture within the software supply chain, and often +limited guidance when it comes to suggested fixes. Such tools have either +limitations on runtime monitoring or no runtime protection at all. When they do +offer runtime monitoring, it’s limited in its adherence to key policies. +Third-party security tools offer a limited scope of policy evaluation for +Docker-specific builds. By focusing on the entire software supply chain, +providing actionable guidance, and offering comprehensive runtime protection +with strong policy enforcement, Docker Scout goes beyond just identifying +vulnerabilities in your containers. It helps you build secure applications from +the ground up. + +### Can I use Docker Scout with external registries other than Docker Hub? + +You can use Scout with registries other than Docker Hub. Integrating Docker Scout +with third-party container registries enables Docker Scout to run image +analysis on those repositories so that you can get insights into the +composition of those images even if they aren't hosted on Docker Hub. + +The following container registry integrations are available: + +- Artifactory +- Amazon Elastic Container Registry +- Azure Container Registry + +Learn more about configuring Scout with your registries in [Integrating Docker Scout with third-party registries](/scout/integrations/#container-registries). + +### Does Docker Scout CLI come by default with Docker Desktop? + +Yes, the Docker Scout CLI plugin comes pre-installed with Docker Desktop. + +### Is it possible to run `docker scout` commands on a Linux system without Docker Desktop? + +If you run Docker Engine without Docker Desktop, Docker Scout doesn't come +pre-installed, but you can [install it as a standalone binary](/scout/install/). + +### How is Docker Scout using an SBOM? + +An SBOM, or software bill of materials, is a list of ingredients that make up +software components. [Docker Scout uses SBOMs](/scout/concepts/sbom/) to +determine the components that are used in a Docker image. When you analyze an +image, Docker Scout will either use the SBOM that is attached to the image (as +an attestation), or generate an SBOM on the fly by analyzing the contents of +the image. + +The SBOM is cross-referenced with the advisory database to determine if any of +the components in the image have known vulnerabilities. + +
diff --git a/content/guides/docker-scout/demo.md b/content/guides/docker-scout/demo.md new file mode 100644 index 0000000000..4c37f90245 --- /dev/null +++ b/content/guides/docker-scout/demo.md @@ -0,0 +1,20 @@ +--- +title: Docker Scout demo +description: Learn about Docke rScout's powerful features for enhanced supply chain security. +weight: 20 +--- + +Docker Scout has powerful features for enhancing containerized application +security and ensuring a robust software supply chain. + +- Define vulnerability remediation +- Discuss why remediation is essential to maintain the security and integrity + of containerized applications +- Discuss common vulnerabilities +- Implement remediation techniques: updating base images, applying patches, + removing unnecessary packages +- Verify and validate remediation efforts using Docker Scout + +{{< youtube-embed "TkLwJ0p46W8" >}} + +
diff --git a/content/guides/docker-scout/why.md b/content/guides/docker-scout/why.md new file mode 100644 index 0000000000..bf84d26f68 --- /dev/null +++ b/content/guides/docker-scout/why.md @@ -0,0 +1,27 @@ +--- +title: Why Docker Scout? +description: Learn how Docker Scout can help you secure your supply chain. +weight: 10 +--- + +Organizations face significant challenges from data breaches, +including financial losses, operational disruptions, and long-term damage to +brand reputation and customer trust. Docker Scout addresses critical problems +such as identifying insecure container images, preventing security breaches, +and reducing the risk of operational downtime due to vulnerabilities. + +Docker Scout provides several benefits: + +- Secure and trusted content +- A system of record for your Software Development Lifecycle (SDLC) +- Continuous security posture improvement + +Docker Scout offers automated vulnerability detection and remediation, helping +organizations identify and fix security issues in container images early in the +development process. It also integrates with popular development tools like +Docker Desktop and GitHub Actions, providing seamless security management and +compliance checks within existing workflows. + +{{< youtube-embed "-omsQ7Uqyc4" >}} + +
diff --git a/content/guides/language/dotnet/_index.md b/content/guides/dotnet/_index.md similarity index 52% rename from content/guides/language/dotnet/_index.md rename to content/guides/dotnet/_index.md index d9f4482328..af1704e4f8 100644 --- a/content/guides/language/dotnet/_index.md +++ b/content/guides/dotnet/_index.md @@ -2,23 +2,26 @@ title: .NET language-specific guide linkTitle: C# (.NET) description: Containerize and develop .NET apps using Docker +summary: Learn how to containerize .NET applications using Docker, including building, running, and deploying .NET apps in Docker containers, with best practices and step-by-step examples. keywords: getting started, .net toc_min: 1 toc_max: 2 aliases: -- /language/dotnet/ + - /language/dotnet/ +languages: [c-sharp] +levels: [beginner] +params: + time: 20 minutes --- The .NET getting started guide teaches you how to create a containerized .NET application using Docker. In this guide, you'll learn how to: -* Containerize and run a .NET application -* Set up a local environment to develop a .NET application using containers -* Run tests for a .NET application using containers -* Configure a CI/CD pipeline for a containerized .NET application using GitHub Actions -* Deploy your containerized application locally to Kubernetes to test and debug your deployment +- Containerize and run a .NET application +- Set up a local environment to develop a .NET application using containers +- Run tests for a .NET application using containers +- Configure a CI/CD pipeline for a containerized .NET application using GitHub Actions +- Deploy your containerized application locally to Kubernetes to test and debug your deployment After completing the .NET getting started modules, you should be able to containerize your own .NET application based on the examples and instructions provided in this guide. Start by containerizing an existing .NET application. - -{{< button text="Containerize a .NET app" url="containerize.md" >}} diff --git a/content/guides/language/dotnet/configure-ci-cd.md b/content/guides/dotnet/configure-ci-cd.md similarity index 98% rename from content/guides/language/dotnet/configure-ci-cd.md rename to content/guides/dotnet/configure-ci-cd.md index 617564c6c9..ede67ee232 100644 --- a/content/guides/language/dotnet/configure-ci-cd.md +++ b/content/guides/dotnet/configure-ci-cd.md @@ -144,5 +144,3 @@ Related information: ## Next steps Next, learn how you can locally test and debug your workloads on Kubernetes before deploying. - -{{< button text="Test your deployment" url="./deploy.md" >}} diff --git a/content/guides/language/dotnet/containerize.md b/content/guides/dotnet/containerize.md similarity index 98% rename from content/guides/language/dotnet/containerize.md rename to content/guides/dotnet/containerize.md index c7d4736562..6c063b25c5 100644 --- a/content/guides/language/dotnet/containerize.md +++ b/content/guides/dotnet/containerize.md @@ -130,5 +130,3 @@ Related information: In the next section, you'll learn how you can develop your application using Docker containers. - -{{< button text="Develop your application" url="develop.md" >}} diff --git a/content/guides/language/dotnet/deploy.md b/content/guides/dotnet/deploy.md similarity index 100% rename from content/guides/language/dotnet/deploy.md rename to content/guides/dotnet/deploy.md diff --git a/content/guides/language/dotnet/develop.md b/content/guides/dotnet/develop.md similarity index 99% rename from content/guides/language/dotnet/develop.md rename to content/guides/dotnet/develop.md index 06c66360ac..5ff58580d0 100644 --- a/content/guides/language/dotnet/develop.md +++ b/content/guides/dotnet/develop.md @@ -393,5 +393,3 @@ Related information: ## Next steps In the next section, you'll learn how to run unit tests using Docker. - -{{< button text="Run your tests" url="run-tests.md" >}} diff --git a/content/guides/language/dotnet/run-tests.md b/content/guides/dotnet/run-tests.md similarity index 98% rename from content/guides/language/dotnet/run-tests.md rename to content/guides/dotnet/run-tests.md index 0dce2d7995..aa64d2fefa 100644 --- a/content/guides/language/dotnet/run-tests.md +++ b/content/guides/dotnet/run-tests.md @@ -114,5 +114,3 @@ Related information: ## Next steps Next, you’ll learn how to set up a CI/CD pipeline using GitHub Actions. - -{{< button text="Configure CI/CD" url="configure-ci-cd.md" >}} diff --git a/content/guides/use-case/genai-pdf-bot/_index.md b/content/guides/genai-pdf-bot/_index.md similarity index 67% rename from content/guides/use-case/genai-pdf-bot/_index.md rename to content/guides/genai-pdf-bot/_index.md index f6e4ff22b9..c16fef1bff 100644 --- a/content/guides/use-case/genai-pdf-bot/_index.md +++ b/content/guides/genai-pdf-bot/_index.md @@ -4,6 +4,14 @@ description: Containerize generative AI (GenAI) apps using Docker keywords: python, generative ai, genai, llm, neo4j, ollama, langchain toc_min: 1 toc_max: 2 +summary: | + This guide explains how to build a PDF bot using Docker and generative AI, + focusing on setting up a containerized environment for parsing PDF documents + and generating intelligent responses based on the content. +levels: [beginner] +subjects: [ai] +params: + time: 20 minutes --- The generative AI (GenAI) guide teaches you how to containerize an existing GenAI application using Docker. In this guide, you’ll learn how to: diff --git a/content/guides/use-case/genai-pdf-bot/containerize.md b/content/guides/genai-pdf-bot/containerize.md similarity index 98% rename from content/guides/use-case/genai-pdf-bot/containerize.md rename to content/guides/genai-pdf-bot/containerize.md index 4aefec2384..dc74ae40d5 100644 --- a/content/guides/use-case/genai-pdf-bot/containerize.md +++ b/content/guides/genai-pdf-bot/containerize.md @@ -135,5 +135,3 @@ Related information: ## Next steps In the next section, you'll learn how you can run your application, database, and LLM service all locally using Docker. - -{{< button text="Develop your application" url="develop.md" >}} diff --git a/content/guides/use-case/genai-pdf-bot/develop.md b/content/guides/genai-pdf-bot/develop.md similarity index 100% rename from content/guides/use-case/genai-pdf-bot/develop.md rename to content/guides/genai-pdf-bot/develop.md diff --git a/content/guides/use-case/genai-video-bot/images/architecture.webp b/content/guides/genai-video-bot/images/architecture.webp similarity index 100% rename from content/guides/use-case/genai-video-bot/images/architecture.webp rename to content/guides/genai-video-bot/images/architecture.webp diff --git a/content/guides/use-case/genai-video-bot/images/bot.webp b/content/guides/genai-video-bot/images/bot.webp similarity index 100% rename from content/guides/use-case/genai-video-bot/images/bot.webp rename to content/guides/genai-video-bot/images/bot.webp diff --git a/content/guides/use-case/genai-video-bot/images/embeddings.webp b/content/guides/genai-video-bot/images/embeddings.webp similarity index 100% rename from content/guides/use-case/genai-video-bot/images/embeddings.webp rename to content/guides/genai-video-bot/images/embeddings.webp diff --git a/content/guides/use-case/genai-video-bot/images/yt-whisper-2.webp b/content/guides/genai-video-bot/images/yt-whisper-2.webp similarity index 100% rename from content/guides/use-case/genai-video-bot/images/yt-whisper-2.webp rename to content/guides/genai-video-bot/images/yt-whisper-2.webp diff --git a/content/guides/use-case/genai-video-bot/images/yt-whisper.webp b/content/guides/genai-video-bot/images/yt-whisper.webp similarity index 100% rename from content/guides/use-case/genai-video-bot/images/yt-whisper.webp rename to content/guides/genai-video-bot/images/yt-whisper.webp diff --git a/content/guides/use-case/genai-video-bot/index.md b/content/guides/genai-video-bot/index.md similarity index 96% rename from content/guides/use-case/genai-video-bot/index.md rename to content/guides/genai-video-bot/index.md index 742cc91012..d4043fac36 100644 --- a/content/guides/use-case/genai-video-bot/index.md +++ b/content/guides/genai-video-bot/index.md @@ -3,6 +3,14 @@ title: GenAI video transcription and chat linkTitle: Video transcription and chat description: Explore a generative AI video analysis app that uses Docker, OpenAI, and Pinecone. keywords: python, generative ai, genai, llm, whisper, pinecone, openai, whisper +summary: | + Learn how to build and deploy a generative AI video bot using Docker, with + step-by-step instructions for setup, integration, and optimization to enhance + your AI development projects. +subjects: [ai] +levels: [beginner] +params: + time: 20 minutes --- ## Overview @@ -245,6 +253,6 @@ OpenAI's cookbook for ## Next steps -Explore how to [create a PDF bot application](../genai-pdf-bot/_index.md) using +Explore how to [create a PDF bot application](/guides/genai-pdf-bot/_index.md) using generative AI, or view more GenAI samples in the [GenAI Stack](https://github.com/docker/genai-stack) repository. diff --git a/content/guides/language/golang/_index.md b/content/guides/golang/_index.md similarity index 85% rename from content/guides/language/golang/_index.md rename to content/guides/golang/_index.md index 9dda84e8b3..5c3b837cf7 100644 --- a/content/guides/language/golang/_index.md +++ b/content/guides/golang/_index.md @@ -3,10 +3,19 @@ title: Go language-specific guide linkTitle: Go description: Containerize Go apps using Docker keywords: docker, getting started, go, golang, language, dockerfile +summary: | + This guide teaches you how to containerize Go applications using Docker, + covering image building, dependency management, multi-stage builds for + smaller images, and best practices for deploying Go apps efficiently in + containers. toc_min: 1 toc_max: 2 aliases: - /language/golang/ +languages: [go] +levels: [beginner] +params: + time: 30 minutes --- This guide will show you how to create, test, and deploy containerized Go applications using Docker. @@ -28,7 +37,7 @@ In this guide, you’ll learn how to: ## Prerequisites -Some basic understanding of Go and its toolchain is assumed. This isn't a Go tutorial. If you are new to the language, +Some basic understanding of Go and its toolchain is assumed. This isn't a Go tutorial. If you are new to the : languages:, the [Go website](https://golang.org/) is a great place to explore, so *go* (pun intended) check it out! @@ -46,5 +55,3 @@ Some familiarity with the command line is also expected. The aim of this guide is to provide enough examples and instructions for you to containerize your own Go application and deploy it into the Cloud. Start by building your first Go image. - -{{< button text="Build your Go image" url="build-images.md" >}} diff --git a/content/guides/language/golang/build-images.md b/content/guides/golang/build-images.md similarity index 99% rename from content/guides/language/golang/build-images.md rename to content/guides/golang/build-images.md index 8c2bdf0029..65fd304284 100644 --- a/content/guides/language/golang/build-images.md +++ b/content/guides/golang/build-images.md @@ -489,5 +489,3 @@ In this module, you met your example application and built and container image for it. In the next module, you’ll take a look at how to run your image as a container. - -{{< button text="Run your image as a container" url="run-containers.md" >}} diff --git a/content/guides/language/golang/configure-ci-cd.md b/content/guides/golang/configure-ci-cd.md similarity index 98% rename from content/guides/language/golang/configure-ci-cd.md rename to content/guides/golang/configure-ci-cd.md index 3cbd753b45..a13e1bf77a 100644 --- a/content/guides/language/golang/configure-ci-cd.md +++ b/content/guides/golang/configure-ci-cd.md @@ -129,5 +129,3 @@ Related information: ## Next steps Next, learn how you can locally test and debug your workloads on Kubernetes before deploying. - -{{< button text="Test your deployment" url="./deploy.md" >}} diff --git a/content/guides/language/golang/deploy.md b/content/guides/golang/deploy.md similarity index 100% rename from content/guides/language/golang/deploy.md rename to content/guides/golang/deploy.md diff --git a/content/guides/language/golang/develop.md b/content/guides/golang/develop.md similarity index 99% rename from content/guides/language/golang/develop.md rename to content/guides/golang/develop.md index 16d9faaec9..b2a696cc7a 100644 --- a/content/guides/language/golang/develop.md +++ b/content/guides/golang/develop.md @@ -736,5 +736,3 @@ Since you didn't run a cluster of CockroachDB instances, you might be wondering In this module, you set up a containerized development environment with your application and the database engine running in different containers. You also wrote a Docker Compose file which links the two containers together and provides for easy starting up and tearing down of the development environment. In the next module, you'll take a look at one possible approach to running functional tests in Docker. - -{{< button text="Run your tests" url="run-tests.md" >}} diff --git a/content/guides/language/golang/run-containers.md b/content/guides/golang/run-containers.md similarity index 99% rename from content/guides/language/golang/run-containers.md rename to content/guides/golang/run-containers.md index c08e27c618..6d7f11ab2f 100644 --- a/content/guides/language/golang/run-containers.md +++ b/content/guides/golang/run-containers.md @@ -207,5 +207,3 @@ Now, you can easily identify your container based on the name. ## Next steps In this module, you learned how to run containers and publish ports. You also learned to manage the lifecycle of containers. You then learned the importance of naming your containers so that they're more easily identifiable. In the next module, you’ll learn how to run a database in a container and connect it to your application. - -{{< button text="How to develop your application" url="develop.md" >}} diff --git a/content/guides/language/golang/run-tests.md b/content/guides/golang/run-tests.md similarity index 97% rename from content/guides/language/golang/run-tests.md rename to content/guides/golang/run-tests.md index 14c643f3df..7bd6b30599 100644 --- a/content/guides/language/golang/run-tests.md +++ b/content/guides/golang/run-tests.md @@ -93,5 +93,3 @@ You should see output containing the following. In this section, you learned how to run tests when building your image. Next, you’ll learn how to set up a CI/CD pipeline using GitHub Actions. - -{{< button text="Configure CI/CD" url="configure-ci-cd.md" >}} diff --git a/content/guides/language/images/c-sharp.webp b/content/guides/images/c-sharp.webp similarity index 100% rename from content/guides/language/images/c-sharp.webp rename to content/guides/images/c-sharp.webp diff --git a/content/guides/language/images/cpp.webp b/content/guides/images/cpp.webp similarity index 100% rename from content/guides/language/images/cpp.webp rename to content/guides/images/cpp.webp diff --git a/content/guides/use-case/images/databases-1.webp b/content/guides/images/databases-1.webp similarity index 100% rename from content/guides/use-case/images/databases-1.webp rename to content/guides/images/databases-1.webp diff --git a/content/guides/use-case/images/databases-2.webp b/content/guides/images/databases-2.webp similarity index 100% rename from content/guides/use-case/images/databases-2.webp rename to content/guides/images/databases-2.webp diff --git a/content/guides/use-case/images/databases-3.webp b/content/guides/images/databases-3.webp similarity index 100% rename from content/guides/use-case/images/databases-3.webp rename to content/guides/images/databases-3.webp diff --git a/content/guides/language/images/golang.webp b/content/guides/images/golang.webp similarity index 100% rename from content/guides/language/images/golang.webp rename to content/guides/images/golang.webp diff --git a/content/guides/language/images/java.webp b/content/guides/images/java.webp similarity index 100% rename from content/guides/language/images/java.webp rename to content/guides/images/java.webp diff --git a/content/guides/use-case/images/kafka-1.webp b/content/guides/images/kafka-1.webp similarity index 100% rename from content/guides/use-case/images/kafka-1.webp rename to content/guides/images/kafka-1.webp diff --git a/content/guides/use-case/images/launch-localstack.webp b/content/guides/images/launch-localstack.webp similarity index 100% rename from content/guides/use-case/images/launch-localstack.webp rename to content/guides/images/launch-localstack.webp diff --git a/content/guides/use-case/images/localstack-arch.webp b/content/guides/images/localstack-arch.webp similarity index 100% rename from content/guides/use-case/images/localstack-arch.webp rename to content/guides/images/localstack-arch.webp diff --git a/content/guides/use-case/images/localstack-logs.webp b/content/guides/images/localstack-logs.webp similarity index 100% rename from content/guides/use-case/images/localstack-logs.webp rename to content/guides/images/localstack-logs.webp diff --git a/content/guides/use-case/images/localstack-s3put.webp b/content/guides/images/localstack-s3put.webp similarity index 100% rename from content/guides/use-case/images/localstack-s3put.webp rename to content/guides/images/localstack-s3put.webp diff --git a/content/guides/use-case/images/localstack-todolist-s3put.webp b/content/guides/images/localstack-todolist-s3put.webp similarity index 100% rename from content/guides/use-case/images/localstack-todolist-s3put.webp rename to content/guides/images/localstack-todolist-s3put.webp diff --git a/content/guides/use-case/images/localstack-todolist.webp b/content/guides/images/localstack-todolist.webp similarity index 100% rename from content/guides/use-case/images/localstack-todolist.webp rename to content/guides/images/localstack-todolist.webp diff --git a/content/guides/language/images/nodejs.webp b/content/guides/images/nodejs.webp similarity index 100% rename from content/guides/language/images/nodejs.webp rename to content/guides/images/nodejs.webp diff --git a/content/guides/language/images/php-logo.webp b/content/guides/images/php-logo.webp similarity index 100% rename from content/guides/language/images/php-logo.webp rename to content/guides/images/php-logo.webp diff --git a/content/guides/language/images/python.webp b/content/guides/images/python.webp similarity index 100% rename from content/guides/language/images/python.webp rename to content/guides/images/python.webp diff --git a/content/guides/language/images/r.webp b/content/guides/images/r.webp similarity index 100% rename from content/guides/language/images/r.webp rename to content/guides/images/r.webp diff --git a/content/guides/language/images/ruby-on-rails.webp b/content/guides/images/ruby-on-rails.webp similarity index 100% rename from content/guides/language/images/ruby-on-rails.webp rename to content/guides/images/ruby-on-rails.webp diff --git a/content/guides/language/images/rust-logo.webp b/content/guides/images/rust-logo.webp similarity index 100% rename from content/guides/language/images/rust-logo.webp rename to content/guides/images/rust-logo.webp diff --git a/content/guides/language/java/_index.md b/content/guides/java/_index.md similarity index 75% rename from content/guides/language/java/_index.md rename to content/guides/java/_index.md index 5f4bb7b1f7..b2f010cedd 100644 --- a/content/guides/language/java/_index.md +++ b/content/guides/java/_index.md @@ -3,10 +3,19 @@ title: Java language-specific guide linkTitle: Java keywords: java, getting started description: Containerize Java apps using Docker +summary: | + This guide demonstrates how to containerize Java applications using Docker, + covering image building, dependency management, optimizing image size with + multi-stage builds, and best practices for deploying Java apps efficiently in + containers. toc_min: 1 toc_max: 2 aliases: - /language/java/ +languages: [java] +levels: [beginner] +params: + time: 20 minutes --- The Java getting started guide teaches you how to create a containerized Spring Boot application using Docker. In this module, you’ll learn how to: @@ -20,5 +29,3 @@ The Java getting started guide teaches you how to create a containerized Spring After completing the Java getting started modules, you should be able to containerize your own Java application based on the examples and instructions provided in this guide. Get started containerizing your first Java app. - -{{< button text="Containerize your first Java app" url="containerize.md" >}} diff --git a/content/guides/language/java/configure-ci-cd.md b/content/guides/java/configure-ci-cd.md similarity index 98% rename from content/guides/language/java/configure-ci-cd.md rename to content/guides/java/configure-ci-cd.md index 2f0d40e42a..26c96e41d7 100644 --- a/content/guides/language/java/configure-ci-cd.md +++ b/content/guides/java/configure-ci-cd.md @@ -139,5 +139,3 @@ Related information: ## Next steps Next, learn how you can locally test and debug your workloads on Kubernetes before deploying. - -{{< button text="Test your deployment" url="./deploy.md" >}} diff --git a/content/guides/language/java/containerize.md b/content/guides/java/containerize.md similarity index 99% rename from content/guides/language/java/containerize.md rename to content/guides/java/containerize.md index 4141a17b90..b161db3ef1 100644 --- a/content/guides/language/java/containerize.md +++ b/content/guides/java/containerize.md @@ -332,5 +332,3 @@ Related information: In the next section, you'll learn how you can develop your application using Docker containers. - -{{< button text="Develop your application" url="develop.md" >}} diff --git a/content/guides/language/java/deploy.md b/content/guides/java/deploy.md similarity index 100% rename from content/guides/language/java/deploy.md rename to content/guides/java/deploy.md diff --git a/content/guides/language/java/develop.md b/content/guides/java/develop.md similarity index 99% rename from content/guides/language/java/develop.md rename to content/guides/java/develop.md index 514f20477f..4e803c9372 100644 --- a/content/guides/language/java/develop.md +++ b/content/guides/java/develop.md @@ -346,5 +346,3 @@ Related information: ## Next steps In the next section, you’ll take a look at how to run unit tests in Docker. - -{{< button text="Run your tests" url="run-tests.md" >}} diff --git a/content/guides/language/java/images/compose-logs.webp b/content/guides/java/images/compose-logs.webp similarity index 100% rename from content/guides/language/java/images/compose-logs.webp rename to content/guides/java/images/compose-logs.webp diff --git a/content/guides/language/java/images/connect-debugger.webp b/content/guides/java/images/connect-debugger.webp similarity index 100% rename from content/guides/language/java/images/connect-debugger.webp rename to content/guides/java/images/connect-debugger.webp diff --git a/content/guides/language/java/images/debug-menu.webp b/content/guides/java/images/debug-menu.webp similarity index 100% rename from content/guides/language/java/images/debug-menu.webp rename to content/guides/java/images/debug-menu.webp diff --git a/content/guides/language/java/images/debugger-breakpoint.webp b/content/guides/java/images/debugger-breakpoint.webp similarity index 100% rename from content/guides/language/java/images/debugger-breakpoint.webp rename to content/guides/java/images/debugger-breakpoint.webp diff --git a/content/guides/language/java/run-tests.md b/content/guides/java/run-tests.md similarity index 98% rename from content/guides/language/java/run-tests.md rename to content/guides/java/run-tests.md index 47458d4cb2..421de8ebf2 100644 --- a/content/guides/language/java/run-tests.md +++ b/content/guides/java/run-tests.md @@ -121,5 +121,3 @@ You should see output containing the following In the next section, you’ll take a look at how to set up a CI/CD pipeline using GitHub Actions. - -{{< button text="Configure CI/CD" url="configure-ci-cd.md" >}} diff --git a/content/guides/use-case/jupyter.md b/content/guides/jupyter.md similarity index 98% rename from content/guides/use-case/jupyter.md rename to content/guides/jupyter.md index 81e22759c0..69a3164b6f 100644 --- a/content/guides/use-case/jupyter.md +++ b/content/guides/jupyter.md @@ -3,6 +3,16 @@ description: Run, develop, and share data science projects using JupyterLab and keywords: getting started, jupyter, notebook, python, jupyterlab, data science title: Data science with JupyterLab toc_max: 2 +summary: | + This guide explains how to use Docker to run Jupyter notebooks, covering + image setup, container management, and best practices for creating + reproducible and isolated development environments for data science and + machine learning tasks. +languages: [python] +levels: [beginner] +subjects: [data-science] +params: + time: 20 minutes --- Docker and JupyterLab are two powerful tools that can enhance your data science diff --git a/content/guides/use-case/kafka.md b/content/guides/kafka.md similarity index 97% rename from content/guides/use-case/kafka.md rename to content/guides/kafka.md index d1cf5fb85e..2160ee716b 100644 --- a/content/guides/use-case/kafka.md +++ b/content/guides/kafka.md @@ -3,7 +3,15 @@ description: Developing event-driven applications with Kafka and Docker keywords: kafka, container-supported development title: Developing event-driven applications with Kafka and Docker linktitle: Event-driven apps with Kafka -toc_max: 2 +summary: | + This guide explains how to run Apache Kafka in Docker containers, covering + setup, configuring Kafka clusters, managing services, and optimizing + deployment for real-time data streaming in a containerized environment. +subjects: [distributed-systems] +languages: [js] +levels: [intermediate] +params: + time: 20 minutes --- With the rise of microservices, event-driven architectures have become increasingly popular. diff --git a/content/guides/deployment-orchestration/kube-deploy.md b/content/guides/kube-deploy.md similarity index 95% rename from content/guides/deployment-orchestration/kube-deploy.md rename to content/guides/kube-deploy.md index ea69d29ce0..9025fed822 100644 --- a/content/guides/deployment-orchestration/kube-deploy.md +++ b/content/guides/kube-deploy.md @@ -4,6 +4,14 @@ keywords: kubernetes, pods, deployments, kubernetes services description: Learn how to describe and deploy a simple application on Kubernetes. aliases: - /get-started/kube-deploy/ +summary: | + Learn how to deploy and orchestrate Docker containers using Kubernetes, with + step-by-step guidance on setup, configuration, and best practices to enhance + your application's scalability and reliability. +subjects: [deploy] +levels: [beginner] +params: + time: 10 minutes --- ## Prerequisites diff --git a/content/guides/use-case/nlp/language-translation.md b/content/guides/language-translation.md similarity index 97% rename from content/guides/use-case/nlp/language-translation.md rename to content/guides/language-translation.md index 56a58a111e..008020c392 100644 --- a/content/guides/use-case/nlp/language-translation.md +++ b/content/guides/language-translation.md @@ -3,6 +3,15 @@ title: Build a language translation app linkTitle: Language translation keywords: nlp, natural language processing, text summarization, python, language translation, googletrans description: Learn how to build and run a language translation application using Python, Googletrans, and Docker. +summary: | + This guide demonstrates how to use Docker to deploy language translation + models for NLP tasks, covering setup, container management, and running + translation services efficiently in a containerized environment. +levels: [beginner] +subjects: [ai] +languages: [python] +params: + time: 20 minutes --- ## Overview diff --git a/content/guides/language/_index.md b/content/guides/language/_index.md deleted file mode 100644 index d6383f6597..0000000000 --- a/content/guides/language/_index.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -description: Language-specific guides overview -linkTitle: Language-specific guides -weight: 10 -keywords: guides, docker, language, node, java, python, R, go, golang, .net, c++ -title: Language-specific guides overview -toc_min: 1 -toc_max: 2 -aliases: -- /guides/walkthroughs/containerize-your-app/ -- /language/ ---- - -The language-specific guides walk you through the process of: -* Containerizing language-specific applications -* Setting up a development environment -* Configuring a CI/CD pipeline -* Deploying an application locally using Kubernetes - -In addition to the language-specific modules, Docker documentation also provides guidelines to build images and efficiently manage your development environment. For more information, refer to the following topics: - -* [Building best practices](/manuals/build/building/best-practices.md) -* [Build images with BuildKit](/manuals/build/buildkit/_index.md#getting-started) - -## Language-specific guides - -Learn how to containerize your applications and start developing using Docker. Choose one of the following languages to get started. - -
-
- Develop with Node -
-
- Develop with Python -
-
- Develop with R -
-
- Develop with Java -
-
- Develop with Go -
-
- Develop with C# -
-
- Develop with C++ -
-
- Develop with Rust -
-
- Develop with PHP -
-
- Develop with Ruby -
-
diff --git a/content/guides/use-case/localstack.md b/content/guides/localstack.md similarity index 97% rename from content/guides/use-case/localstack.md rename to content/guides/localstack.md index 00861c33cc..8c6fd91a87 100644 --- a/content/guides/use-case/localstack.md +++ b/content/guides/localstack.md @@ -3,6 +3,15 @@ description: How to develop and test AWS Cloud applications using LocalStack and keywords: LocalStack, container-supported development title: Develop and test AWS Cloud applications using LocalStack and Docker linktitle: AWS development with LocalStack +summary: | + This guide explains how to use Docker to run LocalStack, a local AWS cloud + stack emulator, covering setup, managing cloud service emulation, and testing + cloud-based applications locally in a containerized environment. +subjects: [cloud-services] +languages: [js] +levels: [intermediate] +params: + time: 20 minutes --- In modern application development, testing cloud applications locally before deploying them to a live environment helps you ship faster and with more confidence. This approach involves simulating services locally, identifying and fixing issues early, and iterating quickly without incurring costs or facing the complexities of a full cloud environment. Tools like [LocalStack](https://www.localstack.cloud/) have become invaluable in this process, enabling you to emulate AWS services and containerize applications for consistent, isolated testing environments. diff --git a/content/guides/use-case/nlp/named-entity-recognition.md b/content/guides/named-entity-recognition.md similarity index 97% rename from content/guides/use-case/nlp/named-entity-recognition.md rename to content/guides/named-entity-recognition.md index af9d94c204..4ecf2f3ca6 100644 --- a/content/guides/use-case/nlp/named-entity-recognition.md +++ b/content/guides/named-entity-recognition.md @@ -3,6 +3,16 @@ title: Build a named entity recognition app linkTitle: Named entity recognition keywords: nlp, natural language processing, named entity recognition, python, spacy, ner description: Learn how to build and run a named entity recognition application using Python, spaCy, and Docker. +summary: | + This guide explains how to containerize named entity recognition (NER) models + using Docker, detailing environment setup for large-scale data processing, + optimizing NER model deployment, and managing high-performance containerized + NLP workflows. +subjects: [ai] +languages: [python] +levels: [beginner] +params: + time: 20 minutes --- ## Overview diff --git a/content/guides/language/nodejs/_index.md b/content/guides/nodejs/_index.md similarity index 71% rename from content/guides/language/nodejs/_index.md rename to content/guides/nodejs/_index.md index 4c54fe7c06..cf152e64f2 100644 --- a/content/guides/language/nodejs/_index.md +++ b/content/guides/nodejs/_index.md @@ -3,10 +3,19 @@ title: Node.js language-specific guide linkTitle: Node.js description: Containerize and develop Node.js apps using Docker keywords: getting started, node, node.js +summary: | + This guide explains how to containerize Node.js applications using Docker, + covering image building, dependency management, optimizing image size with + multi-stage builds, and best practices for deploying Node.js apps efficiently + in containers. toc_min: 1 toc_max: 2 aliases: - /language/nodejs/ +languages: [js] +levels: [beginner] +params: + time: 20 minutes --- The Node.js language-specific guide teaches you how to containerize a Node.js application using Docker. In this guide, you’ll learn how to: @@ -18,5 +27,3 @@ The Node.js language-specific guide teaches you how to containerize a Node.js ap * Deploy your containerized Node.js application locally to Kubernetes to test and debug your deployment Start by containerizing an existing Node.js application. - -{{< button text="Containerize a Node.js app" url="containerize.md" >}} diff --git a/content/guides/language/nodejs/configure-ci-cd.md b/content/guides/nodejs/configure-ci-cd.md similarity index 98% rename from content/guides/language/nodejs/configure-ci-cd.md rename to content/guides/nodejs/configure-ci-cd.md index ebb6454ccb..cb5bdc9b2a 100644 --- a/content/guides/language/nodejs/configure-ci-cd.md +++ b/content/guides/nodejs/configure-ci-cd.md @@ -136,5 +136,3 @@ Related information: ## Next steps Next, learn how you can locally test and debug your workloads on Kubernetes before deploying. - -{{< button text="Test your deployment" url="./deploy.md" >}} diff --git a/content/guides/language/nodejs/containerize.md b/content/guides/nodejs/containerize.md similarity index 99% rename from content/guides/language/nodejs/containerize.md rename to content/guides/nodejs/containerize.md index e8e4677814..eff31fc8b3 100644 --- a/content/guides/language/nodejs/containerize.md +++ b/content/guides/nodejs/containerize.md @@ -285,5 +285,3 @@ Related information: In the next section, you'll learn how you can develop your application using containers. - -{{< button text="Develop your application" url="develop.md" >}} diff --git a/content/guides/language/nodejs/deploy.md b/content/guides/nodejs/deploy.md similarity index 100% rename from content/guides/language/nodejs/deploy.md rename to content/guides/nodejs/deploy.md diff --git a/content/guides/language/nodejs/develop.md b/content/guides/nodejs/develop.md similarity index 99% rename from content/guides/language/nodejs/develop.md rename to content/guides/nodejs/develop.md index bf3801ff65..fa4b45dcf3 100644 --- a/content/guides/language/nodejs/develop.md +++ b/content/guides/nodejs/develop.md @@ -427,5 +427,3 @@ Related information: ## Next steps In the next section, you'll learn how to run unit tests using Docker. - -{{< button text="Run your tests" url="run-tests.md" >}} diff --git a/content/guides/language/nodejs/run-tests.md b/content/guides/nodejs/run-tests.md similarity index 98% rename from content/guides/language/nodejs/run-tests.md rename to content/guides/nodejs/run-tests.md index d629eee907..b5d33899f4 100644 --- a/content/guides/language/nodejs/run-tests.md +++ b/content/guides/nodejs/run-tests.md @@ -170,5 +170,3 @@ Related information: ## Next steps Next, you’ll learn how to set up a CI/CD pipeline using GitHub Actions. - -{{< button text="Configure CI/CD" url="configure-ci-cd.md" >}} diff --git a/content/guides/deployment-orchestration/orchestration.md b/content/guides/orchestration.md similarity index 97% rename from content/guides/deployment-orchestration/orchestration.md rename to content/guides/orchestration.md index c44353f22e..8f52b2800f 100644 --- a/content/guides/deployment-orchestration/orchestration.md +++ b/content/guides/orchestration.md @@ -4,6 +4,14 @@ keywords: orchestration, deploy, kubernetes, swarm, description: Get oriented on some basics of Docker and install Docker Desktop. aliases: - /get-started/orchestration/ +summary: | + Explore the essentials of container orchestration with Docker, including key + concepts, tools like Kubernetes and Docker Swarm, and practical guides to + efficiently deploy and manage your applications. +subjects: [deploy] +levels: [beginner] +params: + time: 10 minutes --- Containerization provides an opportunity to move and scale applications to diff --git a/content/guides/language/php/_index.md b/content/guides/php/_index.md similarity index 76% rename from content/guides/language/php/_index.md rename to content/guides/php/_index.md index 7fddb6306f..6c69144cbd 100644 --- a/content/guides/language/php/_index.md +++ b/content/guides/php/_index.md @@ -3,10 +3,18 @@ title: PHP language-specific guide linkTitle: PHP description: Containerize and develop PHP apps using Docker keywords: getting started, php, composer +summary: | + This guide explains how to containerize PHP applications using Docker, + covering image building, dependency management, optimizing image size, and + best practices for deploying PHP apps efficiently in containers. toc_min: 1 toc_max: 2 aliases: - /language/php/ +languages: [php] +levels: [beginner] +params: + time: 20 minutes --- The PHP language-specific guide teaches you how to create a containerized PHP application using Docker. In this guide, you'll learn how to: @@ -20,5 +28,3 @@ The PHP language-specific guide teaches you how to create a containerized PHP ap After completing the PHP language-specific guide, you should be able to containerize your own PHP application based on the examples and instructions provided in this guide. Start by containerizing an existing PHP application. - -{{< button text="Containerize a PHP app" url="containerize.md" >}} diff --git a/content/guides/language/php/configure-ci-cd.md b/content/guides/php/configure-ci-cd.md similarity index 98% rename from content/guides/language/php/configure-ci-cd.md rename to content/guides/php/configure-ci-cd.md index 83ea135ae8..dbeb4c7be6 100644 --- a/content/guides/language/php/configure-ci-cd.md +++ b/content/guides/php/configure-ci-cd.md @@ -144,5 +144,3 @@ Related information: ## Next steps Next, learn how you can locally test and debug your workloads on Kubernetes before deploying. - -{{< button text="Test your deployment" url="./deploy.md" >}} diff --git a/content/guides/language/php/containerize.md b/content/guides/php/containerize.md similarity index 98% rename from content/guides/language/php/containerize.md rename to content/guides/php/containerize.md index 5361c2d8d8..a438f986cc 100644 --- a/content/guides/language/php/containerize.md +++ b/content/guides/php/containerize.md @@ -130,5 +130,3 @@ Related information: In the next section, you'll learn how you can develop your application using Docker containers. - -{{< button text="Develop your application" url="develop.md" >}} diff --git a/content/guides/language/php/deploy.md b/content/guides/php/deploy.md similarity index 100% rename from content/guides/language/php/deploy.md rename to content/guides/php/deploy.md diff --git a/content/guides/language/php/develop.md b/content/guides/php/develop.md similarity index 99% rename from content/guides/language/php/develop.md rename to content/guides/php/develop.md index 2ef989ff8f..745abdace3 100644 --- a/content/guides/language/php/develop.md +++ b/content/guides/php/develop.md @@ -429,5 +429,3 @@ Related information: ## Next steps In the next section, you'll learn how to run unit tests using Docker. - -{{< button text="Run your tests" url="run-tests.md" >}} diff --git a/content/guides/language/php/run-tests.md b/content/guides/php/run-tests.md similarity index 98% rename from content/guides/language/php/run-tests.md rename to content/guides/php/run-tests.md index 41bb5695ad..5b3a0fa7b8 100644 --- a/content/guides/language/php/run-tests.md +++ b/content/guides/php/run-tests.md @@ -114,5 +114,3 @@ Related information: ## Next steps Next, you’ll learn how to set up a CI/CD pipeline using GitHub Actions. - -{{< button text="Configure CI/CD" url="configure-ci-cd.md" >}} diff --git a/content/guides/language/python/_index.md b/content/guides/python/_index.md similarity index 70% rename from content/guides/language/python/_index.md rename to content/guides/python/_index.md index c93e625103..b19298a490 100644 --- a/content/guides/language/python/_index.md +++ b/content/guides/python/_index.md @@ -3,10 +3,18 @@ title: Python language-specific guide linkTitle: Python description: Containerize Python apps using Docker keywords: Docker, getting started, Python, language +summary: | + This guide explains how to containerize Python applications using Docker, + covering image building, dependency management, optimizing image size, and + best practices for deploying Python apps efficiently in containers. toc_min: 1 toc_max: 2 aliases: - /language/python/ +languages: [python] +levels: [beginner] +params: + time: 20 minutes --- The Python language-specific guide teaches you how to containerize a Python application using Docker. In this guide, you’ll learn how to: @@ -17,5 +25,3 @@ The Python language-specific guide teaches you how to containerize a Python appl * Deploy your containerized Python application locally to Kubernetes to test and debug your deployment Start by containerizing an existing Python application. - -{{< button text="Containerize a Python app" url="containerize.md" >}} diff --git a/content/guides/language/python/configure-ci-cd.md b/content/guides/python/configure-ci-cd.md similarity index 98% rename from content/guides/language/python/configure-ci-cd.md rename to content/guides/python/configure-ci-cd.md index f8cfc897d3..6e22aad56c 100644 --- a/content/guides/language/python/configure-ci-cd.md +++ b/content/guides/python/configure-ci-cd.md @@ -129,5 +129,3 @@ Related information: ## Next steps Next, learn how you can locally test and debug your workloads on Kubernetes before deploying. - -{{< button text="Test your deployment" url="./deploy.md" >}} diff --git a/content/guides/language/python/containerize.md b/content/guides/python/containerize.md similarity index 99% rename from content/guides/language/python/containerize.md rename to content/guides/python/containerize.md index 92cdd169ac..35736a5015 100644 --- a/content/guides/language/python/containerize.md +++ b/content/guides/python/containerize.md @@ -373,5 +373,3 @@ Related information: In the next section, you'll learn how you can develop your application using containers. - -{{< button text="Develop your application" url="develop.md" >}} diff --git a/content/guides/language/python/deploy.md b/content/guides/python/deploy.md similarity index 100% rename from content/guides/language/python/deploy.md rename to content/guides/python/deploy.md diff --git a/content/guides/language/python/develop.md b/content/guides/python/develop.md similarity index 99% rename from content/guides/language/python/develop.md rename to content/guides/python/develop.md index 1b95e8bf46..b0683f164b 100644 --- a/content/guides/language/python/develop.md +++ b/content/guides/python/develop.md @@ -568,5 +568,3 @@ Related information: ## Next steps In the next section, you'll take a look at how to set up a CI/CD pipeline using GitHub Actions. - -{{< button text="Configure CI/CD" url="configure-ci-cd.md" >}} diff --git a/content/guides/language/r/_index.md b/content/guides/r/_index.md similarity index 67% rename from content/guides/language/r/_index.md rename to content/guides/r/_index.md index 036b12a45e..9988184795 100644 --- a/content/guides/language/r/_index.md +++ b/content/guides/r/_index.md @@ -3,10 +3,18 @@ title: R language-specific guide linkTitle: R description: Containerize R apps using Docker keywords: Docker, getting started, R, language +summary: | + This guide details how to containerize R applications using Docker, covering + image building, dependency management, optimizing image size, and best + practices for deploying R applications efficiently in containers. toc_min: 1 toc_max: 2 aliases: -- /language/r/ +- /languages/r/ +languages: [r] +levels: [beginner] +params: + time: 10 minutes --- The R language-specific guide teaches you how to containerize a R application using Docker. In this guide, you’ll learn how to: @@ -16,5 +24,3 @@ The R language-specific guide teaches you how to containerize a R application us * Deploy your containerized R application locally to Kubernetes to test and debug your deployment Start by containerizing an existing R application. - -{{< button text="Containerize a R app" url="containerize.md" >}} diff --git a/content/guides/language/r/configure-ci-cd.md b/content/guides/r/configure-ci-cd.md similarity index 98% rename from content/guides/language/r/configure-ci-cd.md rename to content/guides/r/configure-ci-cd.md index 6047d773ed..029d166974 100644 --- a/content/guides/language/r/configure-ci-cd.md +++ b/content/guides/r/configure-ci-cd.md @@ -129,5 +129,3 @@ Related information: ## Next steps Next, learn how you can locally test and debug your workloads on Kubernetes before deploying. - -{{< button text="Test your deployment" url="./deploy.md" >}} diff --git a/content/guides/language/r/containerize.md b/content/guides/r/containerize.md similarity index 97% rename from content/guides/language/r/containerize.md rename to content/guides/r/containerize.md index 9407ba9d2a..6fd8398d0c 100644 --- a/content/guides/language/r/containerize.md +++ b/content/guides/r/containerize.md @@ -95,5 +95,3 @@ Related information: In the next section, you'll learn how you can develop your application using containers. - -{{< button text="Develop your application" url="develop.md" >}} diff --git a/content/guides/language/r/deploy.md b/content/guides/r/deploy.md similarity index 100% rename from content/guides/language/r/deploy.md rename to content/guides/r/deploy.md diff --git a/content/guides/language/r/develop.md b/content/guides/r/develop.md similarity index 98% rename from content/guides/language/r/develop.md rename to content/guides/r/develop.md index 84c1c81fe8..78013756df 100644 --- a/content/guides/language/r/develop.md +++ b/content/guides/r/develop.md @@ -219,5 +219,3 @@ Related information: ## Next steps In the next section, you'll take a look at how to set up a CI/CD pipeline using GitHub Actions. - -{{< button text="Configure CI/CD" url="configure-ci-cd.md" >}} diff --git a/content/guides/use-case/rag-ollama/_index.md b/content/guides/rag-ollama/_index.md similarity index 66% rename from content/guides/use-case/rag-ollama/_index.md rename to content/guides/rag-ollama/_index.md index 5d8453501d..d78c0a9382 100644 --- a/content/guides/use-case/rag-ollama/_index.md +++ b/content/guides/rag-ollama/_index.md @@ -3,8 +3,15 @@ description: Containerize RAG application using Ollama and Docker keywords: python, generative ai, genai, llm, ollama, rag, qdrant title: Build a RAG application using Ollama and Docker linkTitle: RAG Ollama application -toc_min: 1 -toc_max: 2 +summary: | + This guide demonstrates how to use Docker to deploy Retrieval-Augmented + Generation (RAG) models with Ollama, covering environment setup for + integrating retrieval systems with generative AI models, and optimizing the + workflow for scalable, containerized deployments. +subjects: [ai] +levels: [beginner] +params: + time: 20 minutes --- The Retrieval Augmented Generation (RAG) guide teaches you how to containerize an existing RAG application using Docker. The example application is a RAG that acts like a sommelier, giving you the best pairings between wines and food. In this guide, you’ll learn how to: @@ -13,5 +20,3 @@ The Retrieval Augmented Generation (RAG) guide teaches you how to containerize a * Set up a local environment to run the complete RAG stack locally for development Start by containerizing an existing RAG application. - -{{< button text="Containerize a RAG app" url="containerize.md" >}} diff --git a/content/guides/use-case/rag-ollama/containerize.md b/content/guides/rag-ollama/containerize.md similarity index 100% rename from content/guides/use-case/rag-ollama/containerize.md rename to content/guides/rag-ollama/containerize.md diff --git a/content/guides/use-case/rag-ollama/develop.md b/content/guides/rag-ollama/develop.md similarity index 100% rename from content/guides/use-case/rag-ollama/develop.md rename to content/guides/rag-ollama/develop.md diff --git a/content/guides/language/ruby/_index.md b/content/guides/ruby/_index.md similarity index 71% rename from content/guides/language/ruby/_index.md rename to content/guides/ruby/_index.md index 9b1d8ba57b..f5eeb4b12b 100644 --- a/content/guides/language/ruby/_index.md +++ b/content/guides/ruby/_index.md @@ -3,10 +3,18 @@ title: Ruby on Rails language-specific guide linkTitle: Ruby description: Containerize Ruby on Rails apps using Docker keywords: Docker, getting started, ruby, language +summary: | + This guide explains how to containerize Ruby on Rails applications using + Docker, covering image building, dependency management, optimizing image + size, and best practices for deploying Ruby apps efficiently in containers. toc_min: 1 toc_max: 2 aliases: - /language/ruby/ +languages: [ruby] +levels: [beginner] +params: + time: 20 minutes --- The Ruby language-specific guide teaches you how to containerize a Ruby on Rails application using Docker. In this guide, you’ll learn how to: @@ -17,5 +25,3 @@ The Ruby language-specific guide teaches you how to containerize a Ruby on Rails * Deploy your containerized Ruby on Rails application locally to Kubernetes to test and debug your deployment Start by containerizing an existing Ruby on Rails application. - -{{< button text="Containerize a Ruby on Rails app" url="containerize.md" >}} diff --git a/content/guides/language/ruby/configure-ci-cd.md b/content/guides/ruby/configure-ci-cd.md similarity index 98% rename from content/guides/language/ruby/configure-ci-cd.md rename to content/guides/ruby/configure-ci-cd.md index a7d8f13eee..ce1463bb2e 100644 --- a/content/guides/language/ruby/configure-ci-cd.md +++ b/content/guides/ruby/configure-ci-cd.md @@ -129,5 +129,3 @@ Related information: ## Next steps Next, learn how you can locally test and debug your workloads on Kubernetes before deploying. - -{{< button text="Test your deployment" url="./deploy.md" >}} diff --git a/content/guides/language/ruby/containerize.md b/content/guides/ruby/containerize.md similarity index 99% rename from content/guides/language/ruby/containerize.md rename to content/guides/ruby/containerize.md index 279783954e..ea7bd31cd3 100644 --- a/content/guides/language/ruby/containerize.md +++ b/content/guides/ruby/containerize.md @@ -394,5 +394,3 @@ Related information: In the next section, you'll learn how you can develop your application using containers. - -{{< button text="Develop your application" url="develop.md" >}} diff --git a/content/guides/language/ruby/deploy.md b/content/guides/ruby/deploy.md similarity index 100% rename from content/guides/language/ruby/deploy.md rename to content/guides/ruby/deploy.md diff --git a/content/guides/language/ruby/develop.md b/content/guides/ruby/develop.md similarity index 98% rename from content/guides/language/ruby/develop.md rename to content/guides/ruby/develop.md index 3223991452..ab35ef66fe 100644 --- a/content/guides/language/ruby/develop.md +++ b/content/guides/ruby/develop.md @@ -199,5 +199,3 @@ Related information: ## Next steps In the next section, you'll take a look at how to set up a CI/CD pipeline using GitHub Actions. - -{{< button text="Configure CI/CD" url="configure-ci-cd.md" >}} diff --git a/content/guides/language/rust/_index.md b/content/guides/rust/_index.md similarity index 76% rename from content/guides/language/rust/_index.md rename to content/guides/rust/_index.md index 08c6ae38ad..ab37f007e1 100644 --- a/content/guides/language/rust/_index.md +++ b/content/guides/rust/_index.md @@ -3,10 +3,18 @@ title: Rust language-specific guide linkTitle: Rust description: Containerize Rust apps using Docker keywords: Docker, getting started, Rust, language +summary: | + This guide covers how to containerize Rust applications using Docker, + focusing on building images, managing dependencies, employing multi-stage + builds, and optimizing for efficient deployment in containers. toc_min: 1 toc_max: 2 aliases: - /language/rust/ +languages: [rust] +levels: [beginner] +params: + time: 20 minutes --- The Rust language-specific guide teaches you how to create a containerized Rust application using Docker. In this guide, you'll learn how to: @@ -22,5 +30,3 @@ The Rust language-specific guide teaches you how to create a containerized Rust After completing the Rust modules, you should be able to containerize your own Rust application based on the examples and instructions provided in this guide. Start with building your first Rust image. - -{{< button text="Build your first Rust image" url="build-images.md" >}} diff --git a/content/guides/language/rust/build-images.md b/content/guides/rust/build-images.md similarity index 99% rename from content/guides/language/rust/build-images.md rename to content/guides/rust/build-images.md index 8ac2d15853..442ec77852 100644 --- a/content/guides/language/rust/build-images.md +++ b/content/guides/rust/build-images.md @@ -184,5 +184,3 @@ Related information: ## Next steps In the next section learn how to run your image as a container. - -{{< button text="Run the image as a container" url="run-containers.md" >}} diff --git a/content/guides/language/rust/configure-ci-cd.md b/content/guides/rust/configure-ci-cd.md similarity index 98% rename from content/guides/language/rust/configure-ci-cd.md rename to content/guides/rust/configure-ci-cd.md index 4d66837f47..a0e261c5c7 100644 --- a/content/guides/language/rust/configure-ci-cd.md +++ b/content/guides/rust/configure-ci-cd.md @@ -128,5 +128,3 @@ Related information: ## Next steps Next, learn how you can locally test and debug your workloads on Kubernetes before deploying. - -{{< button text="Test your deployment" url="./deploy.md" >}} diff --git a/content/guides/language/rust/deploy.md b/content/guides/rust/deploy.md similarity index 100% rename from content/guides/language/rust/deploy.md rename to content/guides/rust/deploy.md diff --git a/content/guides/language/rust/develop.md b/content/guides/rust/develop.md similarity index 99% rename from content/guides/language/rust/develop.md rename to content/guides/rust/develop.md index 12c841f2ad..9a341693dc 100644 --- a/content/guides/language/rust/develop.md +++ b/content/guides/rust/develop.md @@ -324,5 +324,3 @@ Related information: ## Next steps In the next section, you'll take a look at how to set up a CI/CD pipeline using GitHub Actions. - -{{< button text="Configure CI/CD" url="configure-ci-cd.md" >}} diff --git a/content/guides/language/rust/run-containers.md b/content/guides/rust/run-containers.md similarity index 99% rename from content/guides/language/rust/run-containers.md rename to content/guides/rust/run-containers.md index 4ebc1db1a2..15d4c931d7 100644 --- a/content/guides/language/rust/run-containers.md +++ b/content/guides/rust/run-containers.md @@ -201,5 +201,3 @@ Related information: ## Next steps In the next section, you’ll learn how to run a database in a container and connect it to a Rust application. - -{{< button text="How to develop your application" url="develop.md" >}} diff --git a/content/guides/use-case/nlp/sentiment-analysis.md b/content/guides/sentiment-analysis.md similarity index 97% rename from content/guides/use-case/nlp/sentiment-analysis.md rename to content/guides/sentiment-analysis.md index 61b8edc8eb..4feac9c3f2 100644 --- a/content/guides/use-case/nlp/sentiment-analysis.md +++ b/content/guides/sentiment-analysis.md @@ -3,6 +3,16 @@ title: Build a sentiment analysis app linkTitle: Sentiment analysis keywords: nlp, natural language processing, sentiment analysis, python, nltk description: Learn how to build and run a sentiment analysis application using Python, NLTK, and Docker. +summary: | + This guide demonstrates how to containerize sentiment analysis models using + Docker, focusing on setting up robust environments for processing text data, + streamlining model deployment, and handling real-time sentiment + classification efficiently. +subjects: [ai] +languages: [python] +levels: [beginner] +params: + time: 20 minutes --- ## Overview diff --git a/content/guides/deployment-orchestration/swarm-deploy.md b/content/guides/swarm-deploy.md similarity index 95% rename from content/guides/deployment-orchestration/swarm-deploy.md rename to content/guides/swarm-deploy.md index d5e93e8bab..4a5b3f4c36 100644 --- a/content/guides/deployment-orchestration/swarm-deploy.md +++ b/content/guides/swarm-deploy.md @@ -5,6 +5,14 @@ description: Learn how to describe and deploy a simple application on Docker Swa aliases: - /get-started/part4/ - /get-started/swarm-deploy/ +summary: | + Discover how to deploy and manage Docker containers using Docker Swarm, with + step-by-step guides on setup, scaling, networking, and best practices for + efficient container orchestration. +subjects: [deploy] +levels: [beginner] +params: + time: 10 minutes --- {{< include "swarm-mode.md" >}} diff --git a/content/guides/use-case/tensorflowjs.md b/content/guides/tensorflowjs.md similarity index 98% rename from content/guides/use-case/tensorflowjs.md rename to content/guides/tensorflowjs.md index aae98db3f2..e260223da6 100644 --- a/content/guides/use-case/tensorflowjs.md +++ b/content/guides/tensorflowjs.md @@ -2,6 +2,15 @@ description: Learn how to deploy pre-trained models in a TensorFlow.js web applications to perform face detection. keywords: tensorflow.js, machine learning, ml, mediapipe, blazeface, face detection title: Face detection with TensorFlow.js +summary: | + This guide explains how to run TensorFlow.js in Docker containers, covering + setup, container management, and deploying machine learning models in + web-based environments using TensorFlow.js. +subjects: [ai] +languages: [js] +levels: [beginner] +params: + time: 20 minutes --- This guide introduces the seamless integration of TensorFlow.js with Docker to diff --git a/content/guides/use-case/nlp/text-classification.md b/content/guides/text-classification.md similarity index 97% rename from content/guides/use-case/nlp/text-classification.md rename to content/guides/text-classification.md index ce67029754..418fee8028 100644 --- a/content/guides/use-case/nlp/text-classification.md +++ b/content/guides/text-classification.md @@ -3,6 +3,16 @@ title: Build a text recognition app linkTitle: Text classification keywords: nlp, natural language processing, sentiment analysis, python, nltk, scikit-learn, text classification description: Learn how to build and run a text recognition application using Python, NLTK, scikit-learn, and Docker. +summary: | + This guide details how to containerize text classification models using + Docker, focusing on configuring the environment, optimizing performance, and + running classification tasks for large datasets with reproducibility and + scalability. +subjects: [ai] +languages: [python] +levels: [beginner] +params: + time: 20 minutes --- ## Overview diff --git a/content/guides/use-case/nlp/text-summarization.md b/content/guides/text-summarization.md similarity index 97% rename from content/guides/use-case/nlp/text-summarization.md rename to content/guides/text-summarization.md index 164a750b97..73d6ce0184 100644 --- a/content/guides/use-case/nlp/text-summarization.md +++ b/content/guides/text-summarization.md @@ -3,6 +3,16 @@ title: Build a text summarization app linkTitle: Text summarization keywords: nlp, natural language processing, text summarization, python, bert extractive summarizer description: Learn how to build and run a text summarization application using Python, Bert Extractive Summarizer, and Docker. +summary: | + This guide shows how to containerize text summarization models with Docker, + covering the setup of efficient environments for processing large documents, + optimizing model performance, and managing resource-intensive NLP tasks in + scalable containers. +subjects: [ai] +languages: [python] +levels: [beginner] +params: + time: 20 minutes --- ## Overview diff --git a/content/guides/use-case/_index.md b/content/guides/use-case/_index.md deleted file mode 100644 index 4bcc6d4a38..0000000000 --- a/content/guides/use-case/_index.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: Use-case guides -weight: 20 -keywords: guide, use-case -description: Learn how to accomplish tasks with Docker. -notoc: true - -grid_genai: -- title: PDF analysis and chat - description: Learn how to containerize a GenAI app that analyzes PDFs. - icon: article - link: /guides/use-case/genai-pdf-bot/ -- title: Video transcription and chat - description: Explore a video transcription app that lets you ask questions about videos. - icon: play_circle - link: /guides/use-case/genai-video-bot/ -- title: Face detection with TensorFlow.js - description: Explore a face detection app built with TensorFlow.js and Docker. - icon: face - link: /guides/use-case/tensorflowjs/ -- title: Language translation - description: Build and run an app to translate languages. - link: /guides/use-case/nlp/language-translation/ - icon: translate -- title: Named entity recognition - description: Explore an app that can identify named entities, like people, organizations, or locations. - link: /guides/use-case/nlp/named-entity-recognition/ - icon: badge -- title: Sentiment analysis - description: Learn how to analyze text for sentiment, like positive, negative, or neutral. - link: /guides/use-case/nlp/sentiment-analysis/ - icon: sentiment_very_satisfied -- title: Text classification - description: Build a text classification app and analyze the precision of your model. - link: /guides/use-case/nlp/text-classification/ - icon: text_snippet -- title: Text summarization - description: Explore an app that can summarize text. - link: /guides/use-case/nlp/text-summarization/ - icon: summarize -- title: RAG Ollama application - description: Explore how to containerize a RAG application. - link: /guides/use-case/rag-ollama/ - icon: article ---- - -Explore this collection of use-case guides designed to help you leverage Docker -for a variety of advanced applications. From generative AI to security, discover -how Docker can streamline your projects and workflows. - -## Data science - -{{< card - title="Data science with JupyterLab" - icon=analytics - link=/guides/use-case/jupyter/ - description="Set up a JupyterLab environment to conduct and share data science research, making your projects more reproducible and scalable." ->}} - -## Databases & storage - -{{< card - title="Use containerized databases" - icon=storage - link=/guides/use-case/databases/ - description="Learn how to run and manage containerized databases." ->}} - -## Machine learning & AI - -{{< grid items="grid_genai" >}} - - -## Security - -{{< card - title="Suppress CVEs with VEX" - icon=verified_user - link=/scout/guides/vex/ - description="Learn how to suppress non-applicable or fixed vulnerabilities found in your images." ->}} - diff --git a/content/guides/use-case/nlp/_index.md b/content/guides/use-case/nlp/_index.md deleted file mode 100644 index 0759c97dcf..0000000000 --- a/content/guides/use-case/nlp/_index.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: Natural language processing guides -linkTitle: Natural language processing -description: Learn how to build natural language processing (NLP) applications. -keywords: nlp, natural language processing ---- - -The natural language processing (NLP) guides teach you how to build and run NLP -applications. NLP applications can interpret and generate human language, both -spoken and written. This is a natural language, as opposed to a formal or -artificial one. NLP is a part of artificial intelligence (AI) and has a long -history that goes back to the origins of linguistics. - -> **Acknowledgment** -> -> These NLP guides are community contributions. Docker would like to thank -> [Harsh Manvar](https://github.com/harsh4870) for his contribution to the NLP -> guides. - -Select one of the guides to get started: - -* [Language translation](language-translation.md): Automatically translate text - or speech from one language to another. -* [Named entity recognition](named-entity-recognition.md): Identify and extract - specific entities or phrases from text, such as person names, locations, - organizations, dates, etc., and classify them into predefined categories. -* [Sentiment analysis](sentiment-analysis.md): Identify and extract emotions, - opinions, and attitudes from text or speech. -* [Text classification](text-classification.md): Assign a label or category to a - text document or a segment of text, based on its content or context. -* [Text summarization](text-summarization.md): Create a concise and informative - summary of a longer text. - - diff --git a/content/languages/_index.md b/content/languages/_index.md new file mode 100644 index 0000000000..0bd2b7a058 --- /dev/null +++ b/content/languages/_index.md @@ -0,0 +1,5 @@ +--- +cascade: + build: + render: never +--- diff --git a/content/languages/c-sharp/_index.md b/content/languages/c-sharp/_index.md new file mode 100644 index 0000000000..72dd4df5eb --- /dev/null +++ b/content/languages/c-sharp/_index.md @@ -0,0 +1,3 @@ +--- +title: C# +--- diff --git a/content/languages/cpp/_index.md b/content/languages/cpp/_index.md new file mode 100644 index 0000000000..6366ec7993 --- /dev/null +++ b/content/languages/cpp/_index.md @@ -0,0 +1,3 @@ +--- +title: C++ +--- diff --git a/content/languages/go/_index.md b/content/languages/go/_index.md new file mode 100644 index 0000000000..dd1e9fb988 --- /dev/null +++ b/content/languages/go/_index.md @@ -0,0 +1,3 @@ +--- +title: Go +--- diff --git a/content/languages/java/_index.md b/content/languages/java/_index.md new file mode 100644 index 0000000000..8639cb017d --- /dev/null +++ b/content/languages/java/_index.md @@ -0,0 +1,3 @@ +--- +title: Java +--- diff --git a/content/languages/js/_index.md b/content/languages/js/_index.md new file mode 100644 index 0000000000..f81115e1a0 --- /dev/null +++ b/content/languages/js/_index.md @@ -0,0 +1,3 @@ +--- +title: JavaScript +--- diff --git a/content/languages/php/_index.md b/content/languages/php/_index.md new file mode 100644 index 0000000000..9ef8888bc0 --- /dev/null +++ b/content/languages/php/_index.md @@ -0,0 +1,3 @@ +--- +title: PHP +--- diff --git a/content/languages/python/_index.md b/content/languages/python/_index.md new file mode 100644 index 0000000000..42944df741 --- /dev/null +++ b/content/languages/python/_index.md @@ -0,0 +1,3 @@ +--- +title: Python +--- diff --git a/content/languages/r/_index.md b/content/languages/r/_index.md new file mode 100644 index 0000000000..0e739ff552 --- /dev/null +++ b/content/languages/r/_index.md @@ -0,0 +1,3 @@ +--- +title: R +--- diff --git a/content/languages/ruby/_index.md b/content/languages/ruby/_index.md new file mode 100644 index 0000000000..bc91a1f18c --- /dev/null +++ b/content/languages/ruby/_index.md @@ -0,0 +1,3 @@ +--- +title: Ruby +--- diff --git a/content/languages/rust/_index.md b/content/languages/rust/_index.md new file mode 100644 index 0000000000..2220e5d257 --- /dev/null +++ b/content/languages/rust/_index.md @@ -0,0 +1,3 @@ +--- +title: Rust +--- diff --git a/content/learning-paths/_index.md b/content/learning-paths/_index.md deleted file mode 100644 index f7abdf3cb6..0000000000 --- a/content/learning-paths/_index.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Learning paths -description: | - Docker Learning Paths offer structured guides to help you master Docker. -keywords: docker, learning, paths, tutorials, resources -params: - icon: "school" ---- - -

-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. -

diff --git a/content/learning-paths/docker-build-cloud.md b/content/learning-paths/docker-build-cloud.md deleted file mode 100644 index 6490aac64d..0000000000 --- a/content/learning-paths/docker-build-cloud.md +++ /dev/null @@ -1,193 +0,0 @@ ---- -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 >}} - - - -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. - - - -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. - - - -## 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. - -**Duration**: 2.5 minutes - -{{< youtube-embed "8AqKhEO2PQA" >}} - -{{< /accordion >}} - -{{< accordion large=true title=`Demo: set up and use Docker Build Cloud in development` icon=`play_circle` >}} - -With Docker Build Cloud, you can easily shift the build workload from local machines -to the cloud, helping you achieve faster build times, especially for multi-platform builds. - -In this demo, you'll see: - -- How to setup the builder locally -- How to use Docker Build Cloud with Docker Compose -- How the image cache speeds up builds for others on your team - -**Duration**: 4 minutes - -{{< youtube-embed "oPGq2AP5OtQ" >}} - -{{< /accordion >}} - -{{< accordion large=true title=`Demo: using Docker Build Cloud in CI` icon=`play_circle` >}} - -Docker Build Cloud can significantly decrease the time it takes for your CI builds -take to run, saving you time and money. - -Since the builds run remotely, your CI runner can still use the Docker tooling CLI -without needing elevated permissions, making your builds more secure by default. - -In this demo, you will see: - -- How to integrate Docker Build Cloud into a variety of CI platforms -- How to use Docker Build Cloud in GitHub Actions to build multi-architecture images -- Speed differences between a workflow using Docker Build Cloud and a workflow running natively -- How to use Docker Build Cloud in a GitLab Pipeline - -**Duration**: 4 minutes - -{{< 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 >}} - -
\ No newline at end of file diff --git a/content/learning-paths/docker-compose.md b/content/learning-paths/docker-compose.md deleted file mode 100644 index 6360b6a3b7..0000000000 --- a/content/learning-paths/docker-compose.md +++ /dev/null @@ -1,176 +0,0 @@ ---- -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. - - - -## What you’ll learn - -- What Docker Compose is and what it does -- How to define services -- Use cases for Docker Compose -- How things would be different without Docker Compose - -## 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. - -**Duration**: 2.5 minutes - -{{< youtube-embed 2EqarOM2V4U >}} - -{{< /accordion >}} - -{{< accordion large=true title=`Demo: Set up and use Docker Compose` icon=`play_circle` >}} - -This Docker Compose demo shows how to orchestrate a multi-container application -environment, streamlining development and deployment processes. - -- Compare Docker Compose to the `docker run` command -- Configure a multi-container web app using a Compose file -- Run a multi-container web app using one command - -**Duration**: 2.5 minutes - -{{< youtube-embed P5RBKmOLPH4 >}} - -{{< /accordion >}} - -{{< accordion large=true title=`Common challenges and questions` icon=`quiz` >}} - - - -### 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.yaml`). 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/how-tos/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/how-tos/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.yaml` 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. - - - -{{< /accordion >}} - -{{< accordion large=true title=`Resources` icon=`link` >}} - -- [Overview of Docker Compose CLI](/compose/reference/) -- [Overview of Docker Compose](/compose/) -- [How Compose works](/compose/intro/compose-application-model/) -- [Using profiles with Compose](/compose/how-tos/profiles/) -- [Control startup and shutdown order with Compose](/compose/how-tos/startup-order/) -- [Compose Build Specification](/compose/compose-file/build/) - -{{< /accordion >}} - -
\ No newline at end of file diff --git a/content/learning-paths/docker-scout.md b/content/learning-paths/docker-scout.md deleted file mode 100644 index bd19b771a2..0000000000 --- a/content/learning-paths/docker-scout.md +++ /dev/null @@ -1,177 +0,0 @@ ---- -title: Securing your software supply chain with Docker Scout -summary: | - Enhance container security by automating vulnerability detection and - remediation, ensuring compliance, and protecting your development workflow. -description: | - Learn how to use Docker Scout to enhance container security by automating - vulnerability detection and remediation, ensuring compliance, and protecting - your development workflow. -params: - image: images/learning-paths/scout.png - skill: Beginner - time: 10 minutes - prereq: None ---- - -{{< columns >}} - -When container images are insecure, significant risks can arise. Around 60% of -organizations have reported experiencing at least one security breach or -vulnerability incident within a year, resulting in operational -disruption.[^CSA] These incidents often result in considerable downtime, with -44% of affected companies experiencing over an hour of downtime per event. The -financial impact is substantial, with the average data breach cost reaching -$4.45 million.[^IBM] This highlights the critical importance of maintaining -robust container security measures. - -Docker Scout enhances container security by providing automated vulnerability -detection and remediation, addressing insecure container images, and ensuring -compliance with security standards. - -[^CSA]: https://cloudsecurityalliance.org/blog/2023/09/21/2023-global-cloud-threat-report-cloud-attacks-are-lightning-fast -[^IBM]: https://www.ibm.com/reports/data-breach - - - -## What you'll learn - -- Define secure software supply chain (SSSC) -- Review SBOMs and how to use them -- Detect and monitor vulnerabilities - -## Tools integration - -Works well with Docker Desktop, GitHub Actions, Jenkins, Kubernetes, and -other CI solutions. - -{{< /columns >}} - -## Who’s this for? - -- DevOps engineers who need to integrate automated security checks into CI/CD - pipelines to enhance the security and efficiency of their workflows. -- Developers who want to use Docker Scout to identify and remediate - vulnerabilities early in the development process, ensuring the production of - secure container images. -- Security professionals who must enforce security compliance, conduct - vulnerability assessments, and ensure the overall security of containerized - applications. - -## Modules - -{{< accordion large=true title=`Why Docker Scout?` icon=`play_circle` >}} - -Organizations face significant challenges from data breaches, -including financial losses, operational disruptions, and long-term damage to -brand reputation and customer trust. Docker Scout addresses critical problems -such as identifying insecure container images, preventing security breaches, -and reducing the risk of operational downtime due to vulnerabilities. - -Docker Scout provides several benefits: - -- Secure and trusted content -- A system of record for your Software Development Lifecycle (SDLC) -- Continuous security posture improvement - -Docker Scout offers automated vulnerability detection and remediation, helping -organizations identify and fix security issues in container images early in the -development process. It also integrates with popular development tools like -Docker Desktop and GitHub Actions, providing seamless security management and -compliance checks within existing workflows. - -**Duration**: 5 minutes - -{{< youtube-embed "-omsQ7Uqyc4" >}} - -{{< /accordion >}} - -{{< accordion large=true title=`Docker Scout Demo` icon=`play_circle` >}} - -Docker Scout has powerful features for enhancing containerized application -security and ensuring a robust software supply chain. - -- Define vulnerability remediation -- Discuss why remediation is essential to maintain the security and integrity - of containerized applications -- Discuss common vulnerabilities -- Implement remediation techniques: updating base images, applying patches, - removing unnecessary packages -- Verify and validate remediation efforts using Docker Scout - -**Duration**: 5 minutes - -{{< youtube-embed "TkLwJ0p46W8" >}} - -{{< /accordion >}} - -{{< accordion large=true title=`Common challenges and questions` icon=`quiz` >}} - - - -### How is Docker Scout different from other security tools? - -Docker Scout takes a broader approach to container security compared to -third-party security tools. Third-party security tools, if they offer -remediation guidance at all, miss the mark on their limited scope of -application security posture within the software supply chain, and often -limited guidance when it comes to suggested fixes. Such tools have either -limitations on runtime monitoring or no runtime protection at all. When they do -offer runtime monitoring, it’s limited in its adherence to key policies. -Third-party security tools offer a limited scope of policy evaluation for -Docker-specific builds. By focusing on the entire software supply chain, -providing actionable guidance, and offering comprehensive runtime protection -with strong policy enforcement, Docker Scout goes beyond just identifying -vulnerabilities in your containers. It helps you build secure applications from -the ground up. - -### Can I use Docker Scout with external registries other than Docker Hub? - -You can use Scout with registries other than Docker Hub. Integrating Docker Scout -with third-party container registries enables Docker Scout to run image -analysis on those repositories so that you can get insights into the -composition of those images even if they aren't hosted on Docker Hub. - -The following container registry integrations are available: - -- Artifactory -- Amazon Elastic Container Registry -- Azure Container Registry - -Learn more about configuring Scout with your registries in [Integrating Docker Scout with third-party registries](/scout/integrations/#container-registries). - -### Does Docker Scout CLI come by default with Docker Desktop? - -Yes, the Docker Scout CLI plugin comes pre-installed with Docker Desktop. - -### Is it possible to run `docker scout` commands on a Linux system without Docker Desktop? - -If you run Docker Engine without Docker Desktop, Docker Scout doesn't come -pre-installed, but you can [install it as a standalone binary](/scout/install/). - -### How is Docker Scout using an SBOM? - -An SBOM, or software bill of materials, is a list of ingredients that make up -software components. [Docker Scout uses SBOMs](/scout/concepts/sbom/) to -determine the components that are used in a Docker image. When you analyze an -image, Docker Scout will either use the SBOM that is attached to the image (as -an attestation), or generate an SBOM on the fly by analyzing the contents of -the image. - -The SBOM is cross-referenced with the advisory database to determine if any of -the components in the image have known vulnerabilities. - -{{< /accordion >}} - -{{< accordion large=true title=`Resources` icon=`link` >}} - -- [Docker Scout overview](/scout/) -- [Docker Scout quickstart](/scout/quickstart/) -- [Install Docker Scout](/scout/install/) -- [Software Bill of Materials](/scout/concepts/sbom/) - - - -{{< /accordion >}} - -
\ No newline at end of file diff --git a/content/levels/_index.md b/content/levels/_index.md new file mode 100644 index 0000000000..0bd2b7a058 --- /dev/null +++ b/content/levels/_index.md @@ -0,0 +1,5 @@ +--- +cascade: + build: + render: never +--- diff --git a/content/manuals/engine/swarm/swarm-tutorial/_index.md b/content/manuals/engine/swarm/swarm-tutorial/_index.md index 782f937887..a0ae8ea367 100644 --- a/content/manuals/engine/swarm/swarm-tutorial/_index.md +++ b/content/manuals/engine/swarm/swarm-tutorial/_index.md @@ -34,7 +34,7 @@ To run this tutorial, you need: This tutorial requires three Linux hosts which have Docker installed and can communicate over a network. These can be physical machines, virtual machines, Amazon EC2 instances, or hosted in some other way. Check out -[Deploy to Swarm](/guides/deployment-orchestration/swarm-deploy.md#prerequisites) for one possible set-up for the hosts. +[Deploy to Swarm](/guides/swarm-deploy.md#prerequisites) for one possible set-up for the hosts. One of these machines is a manager (called `manager1`) and two of them are workers (`worker1` and `worker2`). diff --git a/content/products/_index.md b/content/products/_index.md new file mode 100644 index 0000000000..0bd2b7a058 --- /dev/null +++ b/content/products/_index.md @@ -0,0 +1,5 @@ +--- +cascade: + build: + render: never +--- diff --git a/content/products/compose/_index.md b/content/products/compose/_index.md new file mode 100644 index 0000000000..220ef676af --- /dev/null +++ b/content/products/compose/_index.md @@ -0,0 +1,3 @@ +--- +title: Docker Compose +--- diff --git a/content/products/dbc/_index.md b/content/products/dbc/_index.md new file mode 100644 index 0000000000..73a8858026 --- /dev/null +++ b/content/products/dbc/_index.md @@ -0,0 +1,3 @@ +--- +title: Docker Build Cloud +--- diff --git a/content/products/scout/_index.md b/content/products/scout/_index.md new file mode 100644 index 0000000000..eb8ecc68df --- /dev/null +++ b/content/products/scout/_index.md @@ -0,0 +1,3 @@ +--- +title: Docker Scout +--- diff --git a/content/subjects/_index.md b/content/subjects/_index.md new file mode 100644 index 0000000000..0bd2b7a058 --- /dev/null +++ b/content/subjects/_index.md @@ -0,0 +1,5 @@ +--- +cascade: + build: + render: never +--- diff --git a/content/subjects/ai/_index.md b/content/subjects/ai/_index.md new file mode 100644 index 0000000000..d16578aa0f --- /dev/null +++ b/content/subjects/ai/_index.md @@ -0,0 +1,3 @@ +--- +title: AI +--- diff --git a/content/subjects/cloud-services/_index.md b/content/subjects/cloud-services/_index.md new file mode 100644 index 0000000000..2f57b23d5a --- /dev/null +++ b/content/subjects/cloud-services/_index.md @@ -0,0 +1,3 @@ +--- +title: Cloud services +--- diff --git a/content/subjects/data-science/_index.md b/content/subjects/data-science/_index.md new file mode 100644 index 0000000000..7926e09730 --- /dev/null +++ b/content/subjects/data-science/_index.md @@ -0,0 +1,3 @@ +--- +title: Data science +--- diff --git a/content/subjects/databases/_index.md b/content/subjects/databases/_index.md new file mode 100644 index 0000000000..51607bd691 --- /dev/null +++ b/content/subjects/databases/_index.md @@ -0,0 +1,3 @@ +--- +title: Databases +--- diff --git a/content/subjects/deploy/_index.md b/content/subjects/deploy/_index.md new file mode 100644 index 0000000000..d93db5d491 --- /dev/null +++ b/content/subjects/deploy/_index.md @@ -0,0 +1,3 @@ +--- +title: Deployment +--- diff --git a/content/subjects/distributed-systems/_index.md b/content/subjects/distributed-systems/_index.md new file mode 100644 index 0000000000..ce0470da6d --- /dev/null +++ b/content/subjects/distributed-systems/_index.md @@ -0,0 +1,3 @@ +--- +title: Distributed systems +--- diff --git a/hugo.yaml b/hugo.yaml index d434e7f0e0..ba2782620f 100644 --- a/hugo.yaml +++ b/hugo.yaml @@ -9,6 +9,11 @@ ignoreLogs: taxonomies: tag: tags + # filters for guides: + language: languages + subject: subjects + level: levels + product: products permalinks: page: @@ -139,9 +144,6 @@ menus: - name: Reference pageRef: /reference/ weight: 4 - - name: Learning paths - pageRef: /learning-paths/ - weight: 5 footer: - url: https://www.docker.com/products diff --git a/hugo_stats.json b/hugo_stats.json index dbbeb43ab0..abad682c61 100644 --- a/hugo_stats.json +++ b/hugo_stats.json @@ -9,7 +9,6 @@ "-mb-3", "-mr-8", "-mt-0.5", - "-mt-1", "-mt-4", "-mt-8", "-top-16", @@ -173,17 +172,17 @@ "block", "border", "border-0", + "border-2", "border-amber-light", - "border-b-2", "border-b-4", - "border-b-gray-light-400", - "border-b-green-light-400", "border-blue-light", "border-blue-light-500", "border-divider-light", "border-gray-light-100", "border-gray-light-200", + "border-gray-light-400", "border-green-light", + "border-green-light-400", "border-l-2", "border-l-4", "border-l-magenta-light", @@ -194,6 +193,7 @@ "bottom-0", "build-push-action", "chroma", + "col-start-2", "cursor-not-allowed", "cursor-pointer", "dark:bg-amber-dark", @@ -201,7 +201,6 @@ "dark:bg-background-dark", "dark:bg-blue-dark", "dark:bg-blue-dark-400", - "dark:bg-blue-dark-500", "dark:bg-gray-dark-100", "dark:bg-gray-dark-200", "dark:bg-gray-dark-300", @@ -213,13 +212,12 @@ "dark:block", "dark:border-amber-dark", "dark:border-b-blue-dark-600", - "dark:border-b-gray-dark-400", - "dark:border-b-green-dark-400", "dark:border-blue-dark", "dark:border-divider-dark", "dark:border-gray-dark-200", "dark:border-gray-dark-400", "dark:border-green-dark", + "dark:border-green-dark-400", "dark:border-l-magenta-dark", "dark:border-red-dark", "dark:border-violet-dark", @@ -229,11 +227,13 @@ "dark:from-blue-dark-200", "dark:from-blue-dark-400", "dark:from-gray-dark-100", + "dark:group-hover:text-white", "dark:hidden", "dark:hover:bg-blue-dark", "dark:hover:bg-blue-dark-500", "dark:hover:bg-gray-dark-200", "dark:hover:bg-gray-dark-500", + "dark:hover:border-blue-dark-500", "dark:hover:text-blue-dark", "dark:hover:text-white", "dark:prose-invert", @@ -293,17 +293,17 @@ "goat", "grid", "grid-cols-1", - "grid-cols-2", "group", "group-hover:block'", + "group-hover:text-black", + "group-hover:underline", "h-16", "h-2", "h-32", "h-48", + "h-6", "h-8", - "h-96", "h-[calc(100vh-64px)]", - "h-auto", "h-fit", "h-full", "h-max", @@ -311,11 +311,13 @@ "hidden", "hidden'", "highlight", + "hover:-translate-y-1", "hover:bg-blue-light-400", "hover:bg-gray-light-100", "hover:bg-gray-light-200", "hover:bg-gray-light-300", "hover:bg-white/20", + "hover:border-blue-light-400", "hover:border-gray-light-200", "hover:border-white/20", "hover:dark:bg-gray-dark-300", @@ -355,12 +357,12 @@ "lg:pb-2", "lg:scale-100", "lg:text-base", + "line-clamp-5", "link", "lntable", "lntd", "m-2", "m-4", - "m-auto", "macOS", "max-h-full", "max-w-4xl", @@ -374,15 +376,12 @@ "mb-4", "mb-8", "md:block", - "md:flex", "md:flex-row", "md:grid-cols-2", - "md:grid-cols-3", "md:h-[334px]", "md:h-[calc(100vh", "md:hidden", "md:max-w-[66%]", - "md:px-20", "md:scale-100", "md:sticky", "md:text-base", @@ -394,15 +393,17 @@ "min-w-0", "min-w-52", "min-w-fit", + "ml-2", "ml-3", + "ml-4", "mt-1", + "mt-2", "mt-20", "mx-auto", "my-0", "my-2", "my-4", "my-6", - "my-8", "no-underline", "no-wrap", "not-prose", @@ -436,13 +437,13 @@ "placeholder:text-white", "pr-2", "prose", + "pt-2", "pt-4", "px-1", "px-2", "px-3", "px-4", "px-6", - "px-8", "py-1", "py-2", "py-20", @@ -459,9 +460,6 @@ "rounded-[6px]", "rounded-b-lg", "rounded-full", - "rounded-l", - "rounded-lg", - "rounded-r", "rounded-sm", "scale-50", "scale-75", @@ -469,15 +467,16 @@ "scroll-mt-36", "select-none", "self-center", + "self-start", "shadow", "shadow-lg", "sm:flex", "sm:flex-row", - "sm:grid-cols-2", "sm:hidden", "sm:items-center", "sm:w-full", "space-x-2", + "space-y-2", "space-y-4", "sticky", "svg-container", @@ -489,7 +488,6 @@ "text-base", "text-black", "text-blue-light", - "text-center", "text-divider-light", "text-gray-light", "text-gray-light-200", @@ -520,13 +518,14 @@ "top-3", "top-6", "top-full", + "tracking-wider", "transition", "truncate", "underline", "underline-offset-2", "underline-offset-8", + "uppercase", "w-2", - "w-2/3", "w-8", "w-[1200px]", "w-[32px]", diff --git a/layouts/_default/wide.html b/layouts/_default/wide.html index cbfb7cf394..1f2613d600 100644 --- a/layouts/_default/wide.html +++ b/layouts/_default/wide.html @@ -2,9 +2,6 @@
{{ partial "breadcrumbs.html" . }}

{{ .Title }}

- {{ if eq .CurrentSection.Layout "series" }} - {{ partial "guides-stepper.html" . }} - {{ end }}
{{ partialCached "pagemeta.html" . . }}
diff --git a/layouts/guides/landing.html b/layouts/guides/landing.html new file mode 100644 index 0000000000..4a6bc8e87d --- /dev/null +++ b/layouts/guides/landing.html @@ -0,0 +1,171 @@ +{{ define "left" }} +{{ partial "sidebar/mainnav.html" . }} +
+
+ {{ partialCached "icon" "filter_alt" "filter_alt" }} + Filters +
+
+ {{ template "taxofilters" site.Taxonomies.products }} + {{ template "taxofilters" site.Taxonomies.subjects }} + {{ template "taxofilters" site.Taxonomies.levels }} + {{ template "taxofilters" site.Taxonomies.languages }} +
+
+{{ end }} + +{{ define "taxofilters" }} +{{- $taxonomy := .Page.Data.Plural }} +
+
{{ humanize $taxonomy }}
+ {{- range . }} + {{- $term := .Page.Data.Term }} +
+ {{- $id := anchorize (fmt.Printf "%s-%s" $taxonomy $term) }} + + +
+ {{ end }} +
+{{ end }} + +{{ define "main" }} +
+
+ {{- partial "breadcrumbs.html" . }} +

{{ .Title }}

+ {{- $taxonomies := slice "products" "subjects" "levels" "languages" }} +
Array.isArray(arr) && arr.length === 0); + }, + + showItem(taxonomies) { + if (this.noFilters()) return true; + let match = false; + + for (const taxonomy in this.filters) { + const selectedTerms = this.filters[taxonomy]; + if (selectedTerms.length > 0) { + const itemTerms = taxonomies[taxonomy] || []; + // Check if all selected terms are included in the item's terms + const hasAnyTerms = selectedTerms.some(term => itemTerms.includes(term)); + if (hasAnyTerms) { + match = true; + break; + } + } + } + return match; + }, + + init() { + const url = new URL(window.location.href); + for (const [key, value] of url.searchParams.entries()) { + if (value) { + this.filters[key] = value.split('~'); + } + } + } + }" + x-cloak + @guide-filter.window="filters = $event.detail.filters; window.scrollTo({ top: 0 });"> +
+ {{- $featured := where .Pages "Params.featured" true }} + {{- with $featured }} + {{- range . }} + {{- $opts := dict "page" . "taxonomies" $taxonomies }} + {{- $filters := partial "utils/filter-terms.html" $opts }} + + {{- end }} + {{- end }} + {{- range (collections.Complement $featured .Pages) }} + {{- $opts := dict "page" . "taxonomies" $taxonomies }} + {{- $filters := partial "utils/filter-terms.html" $opts }} + +
+
{{ .Title }}
+
+ {{- .Summary }} +
+
+
+
+ {{ template "guide-metadata" . }} +
+
+ {{- end }} +
+ +
+
+{{ end }} + +{{- define "guide-metadata" }} +
+
+ {{- $taxoterms := .GetTerms "languages" }} + {{- $taxoterms = $taxoterms | append (.GetTerms "levels") }} + {{- $taxoterms = $taxoterms | append (.GetTerms "subjects") }} + {{- range $taxoterms }} + {{- .Page.LinkTitle }} + {{- end }} +
+ {{- with .Params.time }} +
+ {{ partialCached "icon" "schedule" "schedule" }} + {{ . }} +
+ {{- end }} +
+{{- end }} diff --git a/layouts/guides/list.html b/layouts/guides/list.html new file mode 100644 index 0000000000..cc1fd07232 --- /dev/null +++ b/layouts/guides/list.html @@ -0,0 +1,25 @@ +{{ define "left" }} + {{ partial "sidebar/mainnav.html" . }} + {{ partial "sidebar/guides.html" . }} +{{ end }} + +{{ define "main" }} +
+ {{ partial "breadcrumbs.html" . }} +

{{ .Title }}

+
+ {{ partialCached "pagemeta.html" . . }} +
+
+ {{ .Content }} + {{ partial "heading.html" (dict "text" "Modules" "level" 2) }} +
    + {{- range $i, $e := .Pages }} +
  1. + {{ .LinkTitle }} +

    {{ plainify .Description }}

    +
  2. + {{- end }} +
+
+{{ end }} diff --git a/layouts/guides/single.html b/layouts/guides/single.html new file mode 100644 index 0000000000..f72668a9eb --- /dev/null +++ b/layouts/guides/single.html @@ -0,0 +1,20 @@ +{{ define "left" }} + {{ partial "sidebar/mainnav.html" . }} + {{ partial "sidebar/guides.html" . }} +{{ end }} + +{{ define "main" }} + {{ partial "content-default.html" . }} +
+ {{ if (.Store.Get "multipage") }} + {{- with .PrevInSection }} + + {{- end }} + {{- end }} +
+{{ end }} diff --git a/layouts/learning-paths/list.html b/layouts/learning-paths/list.html deleted file mode 100644 index 16cff293c7..0000000000 --- a/layouts/learning-paths/list.html +++ /dev/null @@ -1,9 +0,0 @@ -{{ define "main" }} -
- {{ partial "breadcrumbs.html" . }} -

{{ .Title }}

- {{ .Content }} -
- {{ partial "post-links.html" .Pages }} -
-{{ end }} diff --git a/layouts/learning-paths/single.html b/layouts/learning-paths/single.html deleted file mode 100644 index 5a51653658..0000000000 --- a/layouts/learning-paths/single.html +++ /dev/null @@ -1,14 +0,0 @@ -{{ define "main" }} -
- {{ partial "breadcrumbs.html" . }} - {{- $img := resources.Get .Params.image }} - {{ .Title }} -

{{ .Title }}

-
{{ .Summary }}
- {{ partial "components/guide-summary.html" . }} - {{ .Content }} -
-
More learning paths
- {{ partial "post-links.html" (where .CurrentSection.Pages "Permalink" "ne" page.Permalink) }} -
-{{ end }} diff --git a/layouts/partials/content-default.html b/layouts/partials/content-default.html index ce6f636f5e..1355c77201 100644 --- a/layouts/partials/content-default.html +++ b/layouts/partials/content-default.html @@ -2,9 +2,6 @@
{{ partial "breadcrumbs.html" . }}

{{ .Title }}

- {{ if eq .CurrentSection.Layout "series" }} - {{ partial "guides-stepper.html" . }} - {{ end }}
{{ partialCached "pagemeta.html" . . }}
diff --git a/layouts/partials/guides-stepper.html b/layouts/partials/guides-stepper.html index b81b70ddd4..2dcb364658 100644 --- a/layouts/partials/guides-stepper.html +++ b/layouts/partials/guides-stepper.html @@ -1,30 +1,58 @@ -{{ if or .NextInSection .PrevInSection }} - - SERIES - {{ .CurrentSection.Title }} - -
- {{ page.Store.Set "stepper_seen" false }} - {{ range $i, $e := .CurrentSection.Pages }} - {{ if $i }} - {{ if (page.Store.Get "stepper_seen") }} -
- {{ else }} -
+{{/*- Multi-page guide: render a progress bar -*/}} +
+ {{ $totalPages := len .CurrentSection.Pages }} + {{/*- initialize the page store + + $stepper_seen controls the color of the item in the stepper + + green: "completed" - index is lower than current page + blue: current page + gray: next in section + for the section page, they're all gray + + default to true if kind = section + (make all entries gray) + + -*/}} + {{ page.Store.Set "stepper_seen" .IsSection }} + {{/*- Loop over the pages in this guide -*/}} + {{ range $i, $e := .CurrentSection.Pages }} + {{ $isLast := eq (add $i 1) $totalPages }} +
+
+ {{/*- Render the page's index digit (1,2,3,4 etc) -*/}} + + {{ add $i 1 }} + + {{/*- Render the vertical border -*/}} + {{ if not $isLast }} +
{{ end }} - {{ end }} - - {{ add $i 1 }} - {{ end }} -
-{{ end }} +
+ {{/*- Render the page's title -*/}} + +
+ {{ end }} +
diff --git a/layouts/partials/header.html b/layouts/partials/header.html index 6210e0a6f2..3d8e1bec53 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -19,7 +19,7 @@
    {{ range site.Menus.main }}
  • @@ -49,7 +49,7 @@ diff --git a/layouts/partials/post-links.html b/layouts/partials/post-links.html deleted file mode 100644 index de3b1aa1bf..0000000000 --- a/layouts/partials/post-links.html +++ /dev/null @@ -1,13 +0,0 @@ - diff --git a/layouts/partials/sidebar/guides.html b/layouts/partials/sidebar/guides.html new file mode 100644 index 0000000000..1fa3f19e5e --- /dev/null +++ b/layouts/partials/sidebar/guides.html @@ -0,0 +1,47 @@ +
    + {{- $root := . }} + {{- .Store.Set "multipage" false }} + {{- if ne .CurrentSection .FirstSection }} + {{- $root = .CurrentSection }} + {{- .Store.Set "multipage" true }} + {{- end }} + +
    {{ $root.Summary }}
    +
    + {{- with ($root.GetTerms "levels") }} +
    + {{ partialCached "icon" "school" "school" }} + + {{- range $i, $e := . -}} + {{- if $i -}},{{ end -}} + {{- .Page.Title -}} + {{- end -}} + +
    + {{- end -}} + {{- with ($root.Params.time) }} +
    + {{ partialCached "icon" "schedule" "schedule" }} + {{ . }} +
    + {{- end -}} +
    + {{- if (.Store.Get "multipage") }} + {{- partial "guides-stepper.html" . }} + {{- end }} + {{- with $root.Params.resource_links }} +
    +

    Resources:

    + +
    + {{- end }} + « Back to all guides +
    diff --git a/layouts/partials/utils/filter-terms.html b/layouts/partials/utils/filter-terms.html new file mode 100644 index 0000000000..9e7b7f98ee --- /dev/null +++ b/layouts/partials/utils/filter-terms.html @@ -0,0 +1,11 @@ +{{- $currentPage := .page }} +{{- $taxonomies := .taxonomies }} +{{- $scratch := collections.NewScratch }} +{{- range $taxo := $taxonomies }} + {{- $terms := slice }} + {{- range ($currentPage.GetTerms $taxo) }} + {{- $terms = $terms | append .Page.Data.Term }} + {{- end }} + {{ $scratch.SetInMap "filters" $taxo $terms }} +{{- end }} +{{- return ($scratch.Get "filters") }} diff --git a/layouts/shortcodes/columns.html b/layouts/shortcodes/columns.html deleted file mode 100644 index 60e1f943e7..0000000000 --- a/layouts/shortcodes/columns.html +++ /dev/null @@ -1,8 +0,0 @@ -{{ $cols := strings.Split .InnerDeindent "" }} -
    - {{ range $cols }} -
    - {{ markdownify . }} -
    - {{ end }} -