diff --git a/compose.yaml b/compose.yaml index 27b072077494..b25ecb95c8e1 100644 --- a/compose.yaml +++ b/compose.yaml @@ -10,4 +10,4 @@ services: watch: - action: sync path: . - target: /src + target: /project diff --git a/content/contribute/components/call-outs.md b/content/contribute/components/call-outs.md index 261cef77d2f7..24455b7837f9 100644 --- a/content/contribute/components/call-outs.md +++ b/content/contribute/components/call-outs.md @@ -46,7 +46,7 @@ is displayed in the callout. > `docker compose down`. If you want to remove the volumes, you will need to add > the `--volumes` flag. > -> The Docker Dashboard does not remove volumes when you delete the app stack. +> The Docker Desktop Dashboard does not remove volumes when you delete the app stack. > [!CAUTION] > @@ -96,7 +96,7 @@ Docker Scout is an [early access](/release-lifecycle/#early-access-ea) product. > `docker compose down`. If you want to remove the volumes, you will need to add > the `--volumes` flag. > -> The Docker Dashboard does _not_ remove volumes when you delete the app stack. +> The Docker Desktop Dashboard does not remove volumes when you delete the app stack. > [!CAUTION] > diff --git a/content/get-started/docker-concepts/building-images/images/multi-stage-builds-spring-initializer.webp b/content/get-started/docker-concepts/building-images/images/multi-stage-builds-spring-initializer.webp new file mode 100644 index 000000000000..8a741e1b2ec7 Binary files /dev/null and b/content/get-started/docker-concepts/building-images/images/multi-stage-builds-spring-initializer.webp differ diff --git a/content/get-started/docker-concepts/building-images/images/spring-initializr.webp b/content/get-started/docker-concepts/building-images/images/spring-initializr.webp deleted file mode 100644 index 788db51d4dc4..000000000000 Binary files a/content/get-started/docker-concepts/building-images/images/spring-initializr.webp and /dev/null differ diff --git a/content/get-started/docker-concepts/building-images/multi-stage-builds.md b/content/get-started/docker-concepts/building-images/multi-stage-builds.md index f50bd040dc85..e018690ff962 100644 --- a/content/get-started/docker-concepts/building-images/multi-stage-builds.md +++ b/content/get-started/docker-concepts/building-images/multi-stage-builds.md @@ -57,10 +57,12 @@ In this hands-on guide, you'll unlock the power of multi-stage builds to create 1. [Download and install](https://www.docker.com/products/docker-desktop/) Docker Desktop. -2. Open this [pre-initialized project](https://start.spring.io/#!type=maven-project&language=java&platformVersion=3.3.0-M3&packaging=jar&jvmVersion=21&groupId=com.example&artifactId=spring-boot-docker&name=spring-boot-docker&description=Demo%20project%20for%20Spring%20Boot&packageName=com.example.spring-boot-docker&dependencies=web) to generate a ZIP file. Here’s how that looks: +2. [Download and install](https://www.oracle.com/java/technologies/downloads/) Java. +3. Open this [pre-initialized project](https://start.spring.io/#!type=maven-project&language=java&platformVersion=3.4.0-M3&packaging=jar&jvmVersion=21&groupId=com.example&artifactId=spring-boot-docker&name=spring-boot-docker&description=Demo%20project%20for%20Spring%20Boot&packageName=com.example.spring-boot-docker&dependencies=web) to generate a ZIP file. Here’s how that looks: - ![A screenshot of Spring Initializr tool selected with Java 21, Spring Web and Spring Boot 3.3.0](images/spring-initializr.webp?border=true) + + ![A screenshot of Spring Initializr tool selected with Java 21, Spring Web and Spring Boot 3.4.0](images/multi-stage-builds-spring-initializer.webp?border=true) [Spring Initializr](https://start.spring.io/) is a quickstart generator for Spring projects. It provides an extensible API to generate JVM-based projects with implementations for several common concepts — like basic language generation for Java, Kotlin, and Groovy. @@ -70,7 +72,7 @@ In this hands-on guide, you'll unlock the power of multi-stage builds to create For this demonstration, you’ve paired Maven build automation with Java, a Spring Web dependency, and Java 21 for your metadata. -3. Navigate the project directory. Once you unzip the file, you'll see the following project directory structure: +4. Navigate the project directory. Once you unzip the file, you'll see the following project directory structure: ```plaintext @@ -107,7 +109,7 @@ In this hands-on guide, you'll unlock the power of multi-stage builds to create contains most of the information needed to build a customized project. The POM is huge and can seem daunting. Thankfully, you don't yet need to understand every intricacy to use it effectively. -4. Create a RESTful web service that displays "Hello World!". +5. Create a RESTful web service that displays "Hello World!". Under the `src/main/java/com/example/spring_boot_docker/` directory, you can modify your diff --git a/content/get-started/docker-concepts/running-containers/multi-container-applications.md b/content/get-started/docker-concepts/running-containers/multi-container-applications.md index a674f4077fe9..061a7333ed1f 100644 --- a/content/get-started/docker-concepts/running-containers/multi-container-applications.md +++ b/content/get-started/docker-concepts/running-containers/multi-container-applications.md @@ -157,9 +157,9 @@ In this hands-on guide, you'll first see how to build and run a counter web appl 008e0ecf4f36 redis "docker-entrypoint.s…" About a minute ago Up About a minute 6379/tcp redis ``` -7. If you look at the Docker Dashboard, you can see the containers and dive deeper into their configuration. +7. If you look at the Docker Desktop Dashboard, you can see the containers and dive deeper into their configuration. - ![A screenshot of Docker Dashboard showing multi-container applications](images/multi-container-apps.webp?w=5000&border=true) + ![A screenshot of the Docker Desktop Dashboard showing multi-container applications](images/multi-container-apps.webp?w=5000&border=true) 8. With everything up and running, you can open [http://localhost](http://localhost) in your browser to see the site. Refresh the page several times to see the host that’s handling the request and the total number of requests: @@ -174,9 +174,9 @@ In this hands-on guide, you'll first see how to build and run a counter web appl > > You might have noticed that Nginx, acting as a reverse proxy, likely distributes incoming requests in a round-robin fashion between the two backend containers. This means each request might be directed to a different container (web1 and web2) on a rotating basis. The output shows consecutive increments for both the web1 and web2 containers and the actual counter value stored in Redis is updated only after the response is sent back to the client. -9. You can use the Docker Dashboard to remove the containers by selecting the containers and selecting the **Delete** button. +9. You can use the Docker Desktop Dashboard to remove the containers by selecting the containers and selecting the **Delete** button. - ![A screenshot of Docker Dashboard showing how to delete the multi-container applications](images/delete-multi-container-apps.webp?border=true) + ![A screenshot of Docker Desktop Dashboard showing how to delete the multi-container applications](images/delete-multi-container-apps.webp?border=true) ## Simplify the deployment using Docker Compose @@ -204,14 +204,14 @@ Navigate to the root of the project directory. Inside this directory, you'll fin ✔ Container nginx-nodejs-redis-nginx-1 Started ``` -2. If you look at the Docker Dashboard, you can see the containers and dive deeper into their configuration. +2. If you look at the Docker Desktop Dashboard, you can see the containers and dive deeper into their configuration. - ![A screenshot of Docker Dashboard showing the containers of the application stack deployed using Docker Compose](images/list-containers.webp?border=true) + ![A screenshot of the Docker Desktop Dashboard showing the containers of the application stack deployed using Docker Compose](images/list-containers.webp?border=true) -3. Alternatively, you can use the Docker Dashboard to remove the containers by selecting the application stack and selecting the **Delete** button. +3. Alternatively, you can use the Docker Desktop Dashboard to remove the containers by selecting the application stack and selecting the **Delete** button. - ![A screenshot of Docker Dashboard that shows how to remove the containers that you deployed using Docker Compose](images/delete-containers.webp?border=true) + ![A screenshot of Docker Desktop Dashboard that shows how to remove the containers that you deployed using Docker Compose](images/delete-containers.webp?border=true) In this guide, you learned how easy it is to use Docker Compose to start and stop a multi-container application compared to `docker run` which is error-prone and difficult to manage. diff --git a/content/get-started/docker-concepts/running-containers/overriding-container-defaults.md b/content/get-started/docker-concepts/running-containers/overriding-container-defaults.md index 87b14a80a4fd..5f06a26b8efd 100644 --- a/content/get-started/docker-concepts/running-containers/overriding-container-defaults.md +++ b/content/get-started/docker-concepts/running-containers/overriding-container-defaults.md @@ -89,9 +89,9 @@ In this hands-on guide, you'll see how to use the `docker run` command to overri This will start another Postgres container in the background, listening on the standard postgres port `5432` in the container, but mapped to port `5433` on the host machine. You override the host port just to ensure that this new container doesn't conflict with the existing running container. -3. Verify that both containers are running by going to the **Containers** view in the Docker Dashboard. +3. Verify that both containers are running by going to the **Containers** view in the Docker Desktop Dashboard. - ![A screenshot of Docker Dashboard showing the running instances of Postgres containers](images/running-postgres-containers.webp?border=true) + ![A screenshot of the Docker Desktop Dashboard showing the running instances of Postgres containers](images/running-postgres-containers.webp?border=true) ### Run Postgres container in a controlled network @@ -170,15 +170,15 @@ Sometimes, you might need to override the default commands (`CMD`) or entry poin This command starts the Postgres service defined in the Docker Compose file. -3. Verify the authentication with Docker Dashboard. +3. Verify the authentication with Docker Desktop Dashboard. - Open the Docker Dashboard, select the **Postgres** container and select **Exec** to enter into the container shell. You can type the following command to connect to the Postgres database: + Open the Docker Desktop Dashboard, select the **Postgres** container and select **Exec** to enter into the container shell. You can type the following command to connect to the Postgres database: ```console # psql -U postgres ``` - ![A screenshot of the Docker Dashboard selecting the Postgres container and entering into its shell using EXEC button](images/exec-into-postgres-container.webp?border=true) + ![A screenshot of the Docker Desktop Dashboard selecting the Postgres container and entering into its shell using EXEC button](images/exec-into-postgres-container.webp?border=true) > [!NOTE] diff --git a/content/get-started/docker-concepts/running-containers/persisting-container-data.md b/content/get-started/docker-concepts/running-containers/persisting-container-data.md index a9ca760d1423..bf75cb33e2cf 100644 --- a/content/get-started/docker-concepts/running-containers/persisting-container-data.md +++ b/content/get-started/docker-concepts/running-containers/persisting-container-data.md @@ -128,9 +128,9 @@ In this guide, you’ll practice creating and using volumes to persist data crea ### View volume contents -The Docker Dashboard provides the ability to view the contents of any volume, as well as the ability to export, import, and clone volumes. +The Docker Desktop Dashboard provides the ability to view the contents of any volume, as well as the ability to export, import, and clone volumes. -1. Open the Docker Dashboard and navigate to the **Volumes** view. In this view, you should see the **postgres_data** volume. +1. Open the Docker Desktop Dashboard and navigate to the **Volumes** view. In this view, you should see the **postgres_data** volume. 2. Select the **postgres_data** volume’s name. @@ -149,7 +149,7 @@ $ docker rm -f new-db There are a few methods to remove volumes, including the following: -- Select the **Delete Volume** option on a volume in the Docker Dashboard. +- Select the **Delete Volume** option on a volume in the Docker Desktop Dashboard. - Use the `docker volume rm` command: ```console diff --git a/content/get-started/docker-concepts/running-containers/publishing-ports.md b/content/get-started/docker-concepts/running-containers/publishing-ports.md index 9f729444416d..d2766459fbf3 100644 --- a/content/get-started/docker-concepts/running-containers/publishing-ports.md +++ b/content/get-started/docker-concepts/running-containers/publishing-ports.md @@ -88,9 +88,9 @@ In this step, you will run a container and publish its port using the Docker CLI The first `8080` refers to the host port. This is the port on your local machine that will be used to access the application running inside the container. The second `80` refers to the container port. This is the port that the application inside the container listens on for incoming connections. Hence, the command binds to port `8080` of the host to port `80` on the container system. -3. Verify the published port by going to the **Containers** view of the Docker Dashboard. +3. Verify the published port by going to the **Containers** view of the Docker Desktop Dashboard. - ![A screenshot of Docker dashboard showing the published port](images/published-ports.webp?w=5000&border=true) + ![A screenshot of Docker Desktop Dashboard showing the published port](images/published-ports.webp?w=5000&border=true) 4. Open the website by either selecting the link in the **Port(s)** column of your container or visiting [http://localhost:8080](http://localhost:8080) in your browser. diff --git a/content/get-started/docker-concepts/running-containers/sharing-local-files.md b/content/get-started/docker-concepts/running-containers/sharing-local-files.md index 493bbd6cd82c..93ead5d5bd7b 100644 --- a/content/get-started/docker-concepts/running-containers/sharing-local-files.md +++ b/content/get-started/docker-concepts/running-containers/sharing-local-files.md @@ -90,9 +90,9 @@ In this hands-on guide, you’ll practice how to create and use a bind mount to Using a bind mount, you can map the configuration file on your host computer to a specific location within the container. In this example, you’ll see how to change the look and feel of the webpage by using bind mount: -1. Delete the existing container by using the Docker Dashboard: +1. Delete the existing container by using the Docker Desktop Dashboard: - ![A screenshot of Docker dashboard showing how to delete the httpd container](images/delete-httpd-container.webp?border=true) + ![A screenshot of Docker Desktop Dashboard showing how to delete the httpd container](images/delete-httpd-container.webp?border=true) 2. Create a new directory called `public_html` on your host system. @@ -157,20 +157,20 @@ Using a bind mount, you can map the configuration file on your host computer to With everything now up and running, you should be able to access the site via [http://localhost:8080](http://localhost:8080) and find a new webpage that welcomes you with a friendly whale. -### Access the file on the Docker Dashboard +### Access the file on the Docker Desktop Dashboard 1. You can view the mounted files inside a container by selecting the container's **Files** tab and then selecting a file inside the `/usr/local/apache2/htdocs/` directory. Then, select **Open file editor**. - ![A screenshot of Docker dashboard showing the mounted files inside the a container](images/mounted-files.webp?border=true) + ![A screenshot of Docker Desktop Dashboard showing the mounted files inside the a container](images/mounted-files.webp?border=true) -2. Delete the file on the host and verify the file is also deleted in the container. You will find that the files no longer exist under **Files** in the Docker Dashboard. +2. Delete the file on the host and verify the file is also deleted in the container. You will find that the files no longer exist under **Files** in the Docker Desktop Dashboard. - ![A screenshot of Docker dashboard showing the deleted files inside the a container](images/deleted-files.webp?border=true) + ![A screenshot of Docker Desktop Dashboard showing the deleted files inside the a container](images/deleted-files.webp?border=true) -3. Recreate the HTML file on the host system and see that file re-appears under the **Files** tab under **Containers** on the Docker Dashboard. By now, you will be able to access the site too. +3. Recreate the HTML file on the host system and see that file re-appears under the **Files** tab under **Containers** on the Docker Desktop Dashboard. By now, you will be able to access the site too. @@ -178,23 +178,19 @@ Using a bind mount, you can map the configuration file on your host computer to The container continues to run until you stop it. -1. Go to the **Containers** view in the Docker Dashboard. +1. Go to the **Containers** view in the Docker Desktop Dashboard. 2. Locate the container you'd like to stop. 3. Select the **Delete** action in the Actions column. - - - -![A screenshot of Docker dashboard showing how to delete the container](images/delete-the-container.webp?border=true) +![A screenshot of Docker Desktop Dashboard showing how to delete the container](images/delete-the-container.webp?border=true) ## Additional resources The following resources will help you learn more about bind mounts: - * [Manage data in Docker](/storage/) * [Volumes](/storage/volumes/) * [Bind mounts](/storage/bind-mounts/) diff --git a/content/get-started/docker-concepts/the-basics/what-is-a-container.md b/content/get-started/docker-concepts/the-basics/what-is-a-container.md index c8abe3f80367..89af955717ed 100644 --- a/content/get-started/docker-concepts/the-basics/what-is-a-container.md +++ b/content/get-started/docker-concepts/the-basics/what-is-a-container.md @@ -56,7 +56,7 @@ Use the following instructions to run a container. 2. Specify `welcome-to-docker` in the search input and then select the **Pull** button. - ![A screenshot of the Docker Dashboard showing the search result for welcome-to-docker Docker image ](images/search-the-docker-image.webp?border=true&w=1000&h=700) + ![A screenshot of the Docker Desktop Dashboard showing the search result for welcome-to-docker Docker image ](images/search-the-docker-image.webp?border=true&w=1000&h=700) 3. Once the image is successfully pulled, select the **Run** button. @@ -66,7 +66,7 @@ Use the following instructions to run a container. 6. In the **Host port**, specify `8080`. - ![A screenshot of Docker Dashboard showing the container run dialog with welcome-to-docker typed in as the container name and 8080 specified as the port number](images/run-a-new-container.webp?border=true&w=550&h=400) + ![A screenshot of Docker Desktop Dashboard showing the container run dialog with welcome-to-docker typed in as the container name and 8080 specified as the port number](images/run-a-new-container.webp?border=true&w=550&h=400) 7. Select **Run** to start your container. @@ -74,7 +74,7 @@ Congratulations! You just ran your first container! 🎉 ### View your container -You can view all of your containers by going to the **Containers** view of the Docker Dashboard. +You can view all of your containers by going to the **Containers** view of the Docker Desktop Dashboard. ![Screenshot of the container view of the Docker Desktop GUI showing the welcome-to-docker container running on the host port 8080](images/view-your-containers.webp?border=true&w=750&h=600) @@ -92,25 +92,25 @@ For this container, the frontend is accessible on port `8080`. To open the websi Docker Desktop lets you explore and interact with different aspects of your container. Try it out yourself. -1. Go to the **Containers** view in the Docker Dashboard. +1. Go to the **Containers** view in the Docker Desktop Dashboard. 2. Select your container. 3. Select the **Files** tab to explore your container's isolated file system. - ![Screenshot of the Docker Dashboard showing the files and directories inside a running container](images/explore-your-container.webp?border) + ![Screenshot of the Docker Desktop Dashboard showing the files and directories inside a running container](images/explore-your-container.webp?border) ### Stop your container The `docker/welcome-to-docker` container continues to run until you stop it. -1. Go to the **Containers** view in the Docker Dashboard. +1. Go to the **Containers** view in the Docker Desktop Dashboard. 2. Locate the container you'd like to stop. 3. Select the **Stop** action in the **Actions** column. - ![Screenshot of the Docker Dashboard with the welcome container selected and being prepared to stop](images/stop-your-container.webp?border) + ![Screenshot of the Docker Desktop Dashboard with the welcome container selected and being prepared to stop](images/stop-your-container.webp?border) {{< /tab >}} {{< tab name="Using the CLI" >}} diff --git a/content/get-started/docker-concepts/the-basics/what-is-an-image.md b/content/get-started/docker-concepts/the-basics/what-is-an-image.md index 34f2a058112b..fb31b9efb79b 100644 --- a/content/get-started/docker-concepts/the-basics/what-is-an-image.md +++ b/content/get-started/docker-concepts/the-basics/what-is-an-image.md @@ -48,17 +48,17 @@ In this hands-on, you will learn how to search and pull a container image using ### Search for and download an image -1. Open the Docker Dashboard and select the **Images** view in the left-hand navigation menu. +1. Open the Docker Desktop Dashboard and select the **Images** view in the left-hand navigation menu. - ![A screenshot of the Docker Dashboard showing the image view on the left sidebar](images/click-image.webp?border=true&w=1050&h=400) + ![A screenshot of the Docker Desktop Dashboard showing the image view on the left sidebar](images/click-image.webp?border=true&w=1050&h=400) 2. Select the **Search images to run** button. If you don't see it, select the _global search bar_ at the top of the screen. - ![A screenshot of the Docker Dashboard showing the search ta](images/search-image.webp?border) + ![A screenshot of the Docker Desktop Dashboard showing the search ta](images/search-image.webp?border) 3. In the **Search** field, enter "welcome-to-docker". Once the search has completed, select the `docker/welcome-to-docker` image. - ![A screenshot of the Docker Dashboard showing the search results for the docker/welcome-to-docker image](images/select-image.webp?border=true&w=1050&h=400) + ![A screenshot of the Docker Desktop Dashboard showing the search results for the docker/welcome-to-docker image](images/select-image.webp?border=true&w=1050&h=400) 4. Select **Pull** to download the image. @@ -67,11 +67,11 @@ In this hands-on, you will learn how to search and pull a container image using Once you have an image downloaded, you can learn quite a few details about the image either through the GUI or the CLI. -1. In the Docker Dashboard, select the **Images** view. +1. In the Docker Desktop Dashboard, select the **Images** view. 2. Select the **docker/welcome-to-docker** image to open details about the image. - ![A screenshot of the Docker Dashboard showing the images view with an arrow pointing to the docker/welcome-to-docker image](images/pulled-image.webp?border=true&w=1050&h=400) + ![A screenshot of the Docker Desktop Dashboard showing the images view with an arrow pointing to the docker/welcome-to-docker image](images/pulled-image.webp?border=true&w=1050&h=400) 3. The image details page presents you with information regarding the layers of the image, the packages and libraries installed in the image, and any discovered vulnerabilities. diff --git a/content/get-started/resources.md b/content/get-started/resources.md index e0235d675e26..985458384d69 100644 --- a/content/get-started/resources.md +++ b/content/get-started/resources.md @@ -45,7 +45,7 @@ If books are your preferred learning style, check out these written by the [Dock * [Learn Kubernetes in a Month of Lunches](https://www.manning.com/books/learn-kubernetes-in-a-month-of-lunches), Elton Stoneman. Use the code `stonemanpc` for a 40% discount. * [Docker in Action 2nd Edition](https://www.manning.com/books/docker-in-action-second-edition) Jeff Nickoloff, Oct 2019 * [The Kubernetes Book](https://www.amazon.com/Kubernetes-Book-Nigel-Poulton/dp/1521823634/ref=sr_1_3?ie=UTF8&qid=1509660871&sr=8-3&keywords=nigel+poulton), Nigel Poulton, Nov 2018 -* [Docker Deep Dive](https://www.amazon.com/Docker-Deep-Dive-Nigel-Poulton/dp/1521822808/ref=sr_1_1?ie=UTF8&qid=1509660871&sr=8-1&keywords=nigel+poulton), Nigel Poulton, March 2018 +* [Docker Deep Dive](https://www.amazon.com/Docker-Deep-Dive-Nigel-Poulton-ebook/dp/B01LXWQUFF), Nigel Poulton, 2024 Edition * \[Portuguese\] [Docker para desenvolvedores](https://leanpub.com/dockerparadesenvolvedores) (2017) by Rafael Gomes * \[Spanish\] [Érase una vez Docker](https://leanpub.com/erase-una-vez-docker), Manuel Morejón, March 2023 * \[Spanish\] [Érase una vez Kubernetes](https://leanpub.com/erase-una-vez-kubernetes), Manuel Morejón, Jan 2022 diff --git a/content/get-started/workshop/08_using_compose.md b/content/get-started/workshop/08_using_compose.md index 2fb2d57d4a67..94f6e5e5a6c1 100644 --- a/content/get-started/workshop/08_using_compose.md +++ b/content/get-started/workshop/08_using_compose.md @@ -253,9 +253,9 @@ Now that you have your `compose.yaml` file, you can start your application. 4. At this point, you should be able to open your app in your browser on [http://localhost:3000](http://localhost:3000) and see it running. -## See the app stack in Docker Dashboard +## See the app stack in Docker Desktop Dashboard -If you look at the Docker Dashboard, you'll see that there is a group named **getting-started-app**. This is the project name from Docker +If you look at the Docker Desktop Dashboard, you'll see that there is a group named **getting-started-app**. This is the project name from Docker Compose and used to group the containers together. By default, the project name is simply the name of the directory that the `compose.yaml` was located in. @@ -265,7 +265,7 @@ quickly see what container is your app and which container is the mysql database ## Tear it all down -When you're ready to tear it all down, simply run `docker compose down` or hit the trash can on the Docker Dashboard +When you're ready to tear it all down, simply run `docker compose down` or hit the trash can on the Docker Desktop Dashboard for the entire app. The containers will stop and the network will be removed. >**Warning** @@ -273,7 +273,7 @@ for the entire app. The containers will stop and the network will be removed. >By default, named volumes in your compose file are not removed when you run `docker compose down`. If you want to >remove the volumes, you need to add the `--volumes` flag. > ->The Docker Dashboard does not remove volumes when you delete the app stack. +>The Docker Desktop Dashboard does not remove volumes when you delete the app stack. ## Summary diff --git a/content/guides/databases.md b/content/guides/databases.md index 28b787cd2e29..a5f13f525a34 100644 --- a/content/guides/databases.md +++ b/content/guides/databases.md @@ -76,7 +76,7 @@ To verify that you container is running, run `docker ps` in a terminal To run a container using the GUI: -1. In the Docker Dashboard, select the global search at the top of the window. +1. In the Docker Desktop Dashboard, select the global search at the top of the window. 2. Specify `mysql` in the search box, and select the `Images` tab if not already selected. 3. Hover over the `msyql` image and select `Run`. @@ -92,7 +92,7 @@ To run a container using the GUI: ![The optional settings screen with the options specified.](images/databases-1.webp) 6. Select `Run`. -7. Open the **Container** view in the Docker Dashboard to verify that your +7. Open the **Container** view in the Docker Desktop Dashboard to verify that your container is running. {{< /tab >}} @@ -138,7 +138,7 @@ can run `exit` to return to your terminal. {{< /tab >}} {{< tab name="GUI" >}} -1. Open the Docker Dashboard and select the **Containers** view. +1. Open the Docker Desktop Dashboard and select the **Containers** view. 2. In the **Actions** column for your container, select **Show container actions** and then select **Open in terminal**. @@ -184,7 +184,7 @@ guide. To stop and remove a container, either: - In a terminal, run `docker remove --force my-mysql` to remove the container named `my-mysql`. -- Or, in the Docker Dashboard, select the **Delete** icon next to your +- Or, in the Docker Desktop Dashboard, select the **Delete** icon next to your container in the **Containers** view. Next, you can use either the Docker Desktop GUI or CLI to run the container with @@ -219,7 +219,7 @@ CONTAINER ID IMAGE COMMAND CREATED STATUS To run a container using the GUI: -1. In the Docker Dashboard, select the global search at the top of the window. +1. In the Docker Desktop Dashboard, select the global search at the top of the window. 2. Specify `mysql` in the search box, and select the `Images` tab if not already selected. 3. Hover over the `msyql` image and select `Run`. @@ -259,7 +259,7 @@ guide. To stop and remove a container, either: - In a terminal, run `docker remove --force my-mysql` to remove the container named `my-mysql`. -- Or, in the Docker Dashboard, select the **Delete** icon next to your +- Or, in the Docker Desktop Dashboard, select the **Delete** icon next to your container in the **Containers** view. To create a network and run containers on it: @@ -314,7 +314,7 @@ guide. To stop and remove a container, either: - In a terminal, run `docker remove --force my-mysql` to remove the container named `my-mysql`. -- Or, in the Docker Dashboard, select the **Delete** icon next to your +- Or, in the Docker Desktop Dashboard, select the **Delete** icon next to your container in the **Containers** view. Next, you can use either the Docker Desktop GUI or CLI to run the container with a volume. @@ -389,7 +389,7 @@ data persists: 1. Run a container with a volume attached. - 1. In the Docker Dashboard, select the global search at the top of the window. + 1. In the Docker Desktop Dashboard, select the global search at the top of the window. 2. Specify `mysql` in the search box, and select the **Images** tab if not already selected. 3. Hover over the **mysql** image and select **Run**. @@ -430,7 +430,7 @@ data persists: you created would be lost when deleting the container. 4. Run a container with a volume attached. - 1. In the Docker Dashboard, select the global search at the top of the window. + 1. In the Docker Desktop Dashboard, select the global search at the top of the window. 2. Specify `mysql` in the search box, and select the **Images** tab if not already selected. 3. Hover over the **mysql** image and select **Run**. @@ -489,7 +489,7 @@ guide. To stop and remove a container, either: - In a terminal, run `docker remove --force my-mysql` to remove the container named `my-mysql`. -- Or, in the Docker Dashboard, select the **Delete** icon next to your +- Or, in the Docker Desktop Dashboard, select the **Delete** icon next to your container in the **Containers** view. To build and run your custom image: diff --git a/content/guides/docker-build-cloud/common-questions.md b/content/guides/docker-build-cloud/common-questions.md index 40c370a9c67a..8470a08d89aa 100644 --- a/content/guides/docker-build-cloud/common-questions.md +++ b/content/guides/docker-build-cloud/common-questions.md @@ -30,13 +30,7 @@ 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. +Pricing details for Docker Build Cloud can be found on the [pricing page](https://www.docker.com/pricing/). ### I’m a Docker personal user. Can I try Docker Build Cloud? diff --git a/content/guides/use-case/images/wiremock-accuweatherapi.webp b/content/guides/images/wiremock-accuweatherapi.webp similarity index 100% rename from content/guides/use-case/images/wiremock-accuweatherapi.webp rename to content/guides/images/wiremock-accuweatherapi.webp diff --git a/content/guides/use-case/images/wiremock-arch.webp b/content/guides/images/wiremock-arch.webp similarity index 100% rename from content/guides/use-case/images/wiremock-arch.webp rename to content/guides/images/wiremock-arch.webp diff --git a/content/guides/use-case/images/wiremock-logs-docker-desktop.webp b/content/guides/images/wiremock-logs-docker-desktop.webp similarity index 100% rename from content/guides/use-case/images/wiremock-logs-docker-desktop.webp rename to content/guides/images/wiremock-logs-docker-desktop.webp diff --git a/content/guides/use-case/images/wiremock-using-docker.webp b/content/guides/images/wiremock-using-docker.webp similarity index 100% rename from content/guides/use-case/images/wiremock-using-docker.webp rename to content/guides/images/wiremock-using-docker.webp diff --git a/content/guides/localstack.md b/content/guides/localstack.md index 09bbf4f1a9c1..4d0ef10d774f 100644 --- a/content/guides/localstack.md +++ b/content/guides/localstack.md @@ -65,7 +65,7 @@ Launch a quick demo of LocalStack by using the following steps: $ docker compose -f compose-native.yml up -d ``` - This Compose file also includes specifications for a required Mongo database. You can verify the services are up and running by visiting the Docker Dashboard. + This Compose file also includes specifications for a required Mongo database. You can verify the services are up and running by visiting the Docker Desktop Dashboard. ![Diagram showing the LocalStack and Mongo container up and running on Docker Desktop ](./images/launch-localstack.webp) @@ -91,7 +91,7 @@ Launch a quick demo of LocalStack by using the following steps: The command `s3 mb s3://mysamplebucket` tells the AWS CLI to create a new S3 bucket (mb stands for `make bucket`) named `mysamplebucket`. - You can verify if the S3 bucket gets created or not by selecting the LocalStack container on the Docker Dashboard and viewing the logs. The logs indicates that your LocalStack environment is configured correctly and you can now use the `mysamplebucket` for storing and retrieving objects. + You can verify if the S3 bucket gets created or not by selecting the LocalStack container on the Docker Desktop Dashboard and viewing the logs. The logs indicates that your LocalStack environment is configured correctly and you can now use the `mysamplebucket` for storing and retrieving objects. ![Diagram showing the logs of LocalStack that highlights the S3 bucket being created successfully ](./images/localstack-s3put.webp) @@ -287,7 +287,7 @@ Now that you have learnt how to connect a non-containerized Node.js application 3. Stop the running services - Ensure that you stop the Node frontend and backend service from the previous step by pressing “Ctrl+C” in the terminal. Also, you'll need to stop the LocalStack and Mongo containers by selecting them in the Docker Dashboard and selecting the "Delete" button. + Ensure that you stop the Node frontend and backend service from the previous step by pressing “Ctrl+C” in the terminal. Also, you'll need to stop the LocalStack and Mongo containers by selecting them in the Docker Desktop Dashboard and selecting the "Delete" button. 4. Start the application stack by executing the following command at the root of your cloned project directory: diff --git a/content/guides/use-case/pre-seeding.md b/content/guides/pre-seeding.md similarity index 98% rename from content/guides/use-case/pre-seeding.md rename to content/guides/pre-seeding.md index ecad45f02ac7..a707540f36cd 100644 --- a/content/guides/use-case/pre-seeding.md +++ b/content/guides/pre-seeding.md @@ -1,8 +1,13 @@ --- -description: Pre-seeding database with schema and data at startup for development environment -keywords: Pre-seeding, database, postgres, container-supported development title: Pre-seeding database with schema and data at startup for development environment linktitle: Pre-seeding database +description: &desc Pre-seeding database with schema and data at startup for development environment +keywords: Pre-seeding, database, postgres, container-supported development +summary: *desc +levels: [intermediate] +subjects: [databases] +params: + time: 20 minutes --- Pre-seeding databases with essential data and schema during local development is a common practice to enhance the development and testing workflow. By simulating real-world scenarios, this practice helps catch frontend issues early, ensures alignment between Database Administrators and Software Engineers, and facilitates smoother collaboration. Pre-seeding offers benefits like confident deployments, consistency across environments, and early issue detection, ultimately improving the overall development process. diff --git a/content/guides/python/develop.md b/content/guides/python/develop.md index 5e47eaf9e03b..da9bd980e0f7 100644 --- a/content/guides/python/develop.md +++ b/content/guides/python/develop.md @@ -427,7 +427,7 @@ Let's create an object with a post method ```console $ curl -X 'POST' \ - 'http://0.0.0.0:8001/heroes/' \ + 'http://localhost:8001/heroes/' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ @@ -453,7 +453,7 @@ Let's make a get request with the next curl command: ```console curl -X 'GET' \ - 'http://0.0.0.0:8001/heroes/' \ + 'http://localhost:8001/heroes/' \ -H 'accept: application/json' ``` diff --git a/content/guides/use-case/wiremock.md b/content/guides/wiremock.md similarity index 98% rename from content/guides/use-case/wiremock.md rename to content/guides/wiremock.md index 78e61f9d92b0..f0d198e0aa04 100644 --- a/content/guides/use-case/wiremock.md +++ b/content/guides/wiremock.md @@ -1,8 +1,13 @@ --- -description: Mocking API services in development and testing with WireMock -keywords: WireMock, container-supported development title: Mocking API services in development and testing with WireMock +description: &desc Mocking API services in development and testing with WireMock +keywords: WireMock, container-supported development linktitle: Mocking API services with WireMock +summary: *desc +levels: [intermediate] +subjects: [distributed-systems] +params: + time: 20 minutes --- During local development and testing, it's quite common to encounter situations where your app is dependent on the remote APIs. Network issues, rate limits, or even downtime of the API provider can halt your progress. This can significantly hinder your productivity and make testing more challenging. This is where WireMock comes into play. diff --git a/content/manuals/compose/how-tos/multiple-compose-files/merge.md b/content/manuals/compose/how-tos/multiple-compose-files/merge.md index e11918864cd8..da8120705b8f 100644 --- a/content/manuals/compose/how-tos/multiple-compose-files/merge.md +++ b/content/manuals/compose/how-tos/multiple-compose-files/merge.md @@ -67,25 +67,167 @@ webapp: - "/data" environment: - DEBUG=1 - - ANOTHER_VARIABLE=value ``` -> [!IMPORTANT] -> -> When you use multiple Compose files, you must make sure all paths in the -files are relative to the base Compose file (the first Compose file specified +## Merging rules + +- Paths are evaluated relative to the base file. When you use multiple Compose files, you must make sure all paths in the files are relative to the base Compose file (the first Compose file specified with `-f`). This is required because override files need not be valid Compose files. Override files can contain small fragments of configuration. Tracking which fragment of a service is relative to which path is difficult and confusing, so to keep paths easier to understand, all paths must be defined relative to the base file. + >[!TIP] + > + > You can use `docker compose config` to review your merged configuration and avoid path-related issues. + +- Compose copies configurations from the original service over to the local one. +If a configuration option is defined in both the original service and the local +service, the local value replaces or extends the original value. + + - For single-value options like `image`, `command` or `mem_limit`, the new value replaces the old value. + + original service: + + ```yaml + services: + myservice: + # ... + command: python app.py + ``` + + local service: + + ```yaml + services: + myservice: + # ... + command: python otherapp.py + ``` + + result: + + ```yaml + services: + myservice: + # ... + command: python otherapp.py + ``` + + - For the multi-value options `ports`, `expose`, `external_links`, `dns`, `dns_search`, and `tmpfs`, Compose concatenates both sets of values: + + original service: + + ```yaml + services: + myservice: + # ... + expose: + - "3000" + ``` + + local service: + + ```yaml + services: + myservice: + # ... + expose: + - "4000" + - "5000" + ``` + + result: + + ```yaml + services: + myservice: + # ... + expose: + - "3000" + - "4000" + - "5000" + ``` + + - In the case of `environment`, `labels`, `volumes`, and `devices`, Compose "merges" entries together with locally defined values taking precedence. For `environment` and `labels`, the environment variable or label name determines which value is used: + + original service: + + ```yaml + services: + myservice: + # ... + environment: + - FOO=original + - BAR=original + ``` + + local service: + + ```yaml + services: + myservice: + # ... + environment: + - BAR=local + - BAZ=local + ``` + + result: + + ```yaml + services: + myservice: + # ... + environment: + - FOO=original + - BAR=local + - BAZ=local + ``` + + - Entries for `volumes` and `devices` are merged using the mount path in the container: + + original service: + + ```yaml + services: + myservice: + # ... + volumes: + - ./original:/foo + - ./original:/bar + ``` + + local service: + + ```yaml + services: + myservice: + # ... + volumes: + - ./local:/bar + - ./local:/baz + ``` + + result: + + ```yaml + services: + myservice: + # ... + volumes: + - ./original:/foo + - ./local:/bar + - ./local:/baz + ``` + +For more merging rules, see [Merge and override](/reference/compose-file/merge.md) in the Compose Specification. + ### Additional information - Using `-f` is optional. If not provided, Compose searches the working directory and its parent directories for a `compose.yml` and a `compose.override.yml` file. You must supply at least the `compose.yml` file. If both files exist on the same directory level, Compose combines them into a single configuration. -- When you use multiple Compose files, all paths in the files are relative to the first configuration file specified with `-f`. You can use the `--project-directory` option to override this base path. - - You can use a `-f` with `-` (dash) as the filename to read the configuration from `stdin`. For example: ```console $ docker compose -f - <