Skip to content

Commit

Permalink
Merge pull request #21680 from docker/published-update
Browse files Browse the repository at this point in the history
publish updates from main
  • Loading branch information
dvdksn authored Dec 21, 2024
2 parents 7ff423b + 2742bba commit fa6bfb9
Show file tree
Hide file tree
Showing 6 changed files with 88 additions and 14 deletions.
1 change: 1 addition & 0 deletions _vale/Docker/Acronyms.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ exceptions:
- NET
- NFS
- NOTE
- NTFS
- NTLM
- NUMA
- NVDA
Expand Down
1 change: 1 addition & 0 deletions _vale/config/vocabularies/Docker/accept.txt
Original file line number Diff line number Diff line change
Expand Up @@ -186,3 +186,4 @@ ufw
umask
vSphere
vpnkit
windowsfilter
3 changes: 2 additions & 1 deletion content/guides/_index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@ params:
icon: developer_guide
layout: landing
aliases:
- /learning-paths/
- /guides/language/
- /language/
- /learning-paths/
---

Explore our collection of guides to learn how Docker can optimize your
Expand Down
46 changes: 37 additions & 9 deletions content/manuals/build/ci/github-actions/multi-platform.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,10 @@ each platform across multiple runners and create manifest list using the

The following workflow will build the image for each platform on a dedicated
runner using a matrix strategy and push by digest. Then, the `merge` job will
create a manifest list and push it to Docker Hub.
create manifest lists and push them to two registries:

- Docker Hub: `docker.io/docker-user/my-app`
- GitHub Container Registry: `ghcr.io/gh-user/my-app`

This example also uses the [`metadata` action](https://github.com/docker/metadata-action)
to set tags and labels.
Expand All @@ -121,7 +124,8 @@ on:
push:
env:
REGISTRY_IMAGE: user/app
DOCKERHUB_REPO: docker-user/my-app
GHCR_REPO: ghcr.io/gh-user/my-app
jobs:
build:
Expand All @@ -131,8 +135,6 @@ jobs:
matrix:
platform:
- linux/amd64
- linux/arm/v6
- linux/arm/v7
- linux/arm64
steps:
- name: Prepare
Expand All @@ -144,14 +146,23 @@ jobs:
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY_IMAGE }}
images: |
${{ env.DOCKERHUB_REPO }}
${{ env.GHCR_REPO }}
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
Expand All @@ -164,7 +175,7 @@ jobs:
with:
platforms: ${{ matrix.platform }}
labels: ${{ steps.meta.outputs.labels }}
outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true
outputs: type=image,"name=${{ env.DOCKERHUB_REPO }},${{ env.GHCR_REPO }}",push-by-digest=true,name-canonical=true,push=true
- name: Export digest
run: |
Expand Down Expand Up @@ -198,24 +209,41 @@ jobs:
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY_IMAGE }}
images: |
${{ env.DOCKERHUB_REPO }}
${{ env.GHCR_REPO }}
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
- name: Create manifest list and push
working-directory: /tmp/digests
run: |
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
$(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
$(printf '${{ env.DOCKERHUB_REPO }}@sha256:%s ' *)
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
$(printf '${{ env.GHCR_REPO }}@sha256:%s ' *)
- name: Inspect image
run: |
docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }}
docker buildx imagetools inspect ${{ env.DOCKERHUB_REPO }}:${{ steps.meta.outputs.version }}
docker buildx imagetools inspect ${{ env.GHCR_REPO }}:${{ steps.meta.outputs.version }}
```

### With Bake
Expand Down
15 changes: 11 additions & 4 deletions content/manuals/engine/storage/drivers/select-storage-driver.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,12 @@ Docker host. After you have read the [storage driver overview](./_index.md), the
next step is to choose the best storage driver for your workloads. Use the storage
driver with the best overall performance and stability in the most usual scenarios.

> [!NOTE]
> This page discusses storage drivers for Docker Engine on Linux. If you're
> running the Docker daemon with Windows as the host OS, the only supported
> storage driver is windowsfilter. For more information, see
> [windowsfilter](windowsfilter-driver.md).
The Docker Engine provides the following storage drivers on Linux:

| Driver | Description |
Expand Down Expand Up @@ -189,7 +195,8 @@ to physical or logical disks on the Docker host.
## Related information

- [About images, containers, and storage drivers](./_index.md)
- [`overlay2` storage driver in practice](overlayfs-driver.md)
- [`btrfs` storage driver in practice](btrfs-driver.md)
- [`zfs` storage driver in practice](zfs-driver.md)
- [Storage drivers](./_index.md)
- [`overlay2` storage driver](overlayfs-driver.md)
- [`btrfs` storage driver](btrfs-driver.md)
- [`zfs` storage driver](zfs-driver.md)
- [`windowsfilter` storage driver](windowsfilter-driver.md)
36 changes: 36 additions & 0 deletions content/manuals/engine/storage/drivers/windowsfilter-driver.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
description: Learn about the windowsfilter storage driver
keywords: container, storage, driver, windows, windowsfilter
title: windowsfilter storage driver
---

The windowsfilter storage driver is the default storage driver for Docker
Engine on Windows. The windowsfilter driver uses Windows-native file system
layers to for storing Docker layers and volume data on disk. The windowsfilter
storage driver only works on file systems formatted with NTFS.

## Configure the windowsfilter storage driver

For most use case, no configuring the windowsfilter storage driver is not
necessary.

The default storage limit for Docker Engine on Windows is 127GB. To use a
different storage size, set the `size` option for the windowsfilter storage
driver. See [windowsfilter options](/reference/cli/dockerd.md#windowsfilter-options).

Data is stored on the Docker host in `image` and `windowsfilter` subdirectories
within `C:\ProgramData\docker` by default. You can change the storage location
by configuring the `data-root` option in the [Daemon configuration file](/reference/cli/dockerd.md#on-windows):

```json
{
"data-root": "d:\\docker"
}
```

You must restart the daemon for the configuration change to take effect.

## Additional information

For more information about how container storage works on Windows, refer to
Microsoft's [Containers on Windows documentation](https://learn.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/container-storage).

0 comments on commit fa6bfb9

Please sign in to comment.