Merge branch 'docker:master' into patch-1

This commit is contained in:
Khoo Hao Yit 2022-08-02 20:47:20 +08:00 committed by GitHub
commit 7fa00f6ef5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
142 changed files with 2333 additions and 3653 deletions

View File

@ -1,8 +1,10 @@
name: publish
on:
workflow_dispatch:
push:
branches:
- lab
- master
- published
@ -16,18 +18,29 @@ jobs:
JEKYLL_ENV=development
DOCS_AWS_REGION=us-east-1
if [ "${{ github.ref }}" = "refs/heads/master" ]; then
DOCS_URL="https://docs-stage.docker.com"
DOCS_S3_BUCKET="docs.docker.com-stage-us-east-1"
DOCS_S3_CONFIG="_website-config-docs-stage.json"
DOCS_LAMBDA_FUNCTION_CACHE="arn:aws:lambda:us-east-1:710015040892:function:docs-stage-cache-invalidator"
DOCS_SLACK_MSG="Successfully promoted docs-stage from master. https://docs-stage.docker.com/"
elif [ "${{ github.ref }}" = "refs/heads/published" ]; then
JEKYLL_ENV=production
DOCS_URL="https://docs.docker.com"
DOCS_S3_BUCKET="docs.docker.com-us-east-1"
DOCS_S3_CONFIG="_website-config-docs.json"
DOCS_LAMBDA_FUNCTION_CACHE="arn:aws:lambda:us-east-1:710015040892:function:docs-cache-invalidator"
DOCS_SLACK_MSG="Successfully published docs. https://docs.docker.com/"
elif [ "${{ github.ref }}" = "refs/heads/lab" ]; then
DOCS_URL="https://docs-lab.docker.com"
DOCS_S3_BUCKET=""
DOCS_LAMBDA_FUNCTION_CACHE=""
DOCS_S3_CONFIG="_website-config-docs-lab.json"
else
echo >&2 "ERROR: unknown branch ${{ github.ref }}"
exit 1
fi
echo "JEKYLL_ENV=$JEKYLL_ENV" >> $GITHUB_ENV
echo "DOCS_URL=$DOCS_URL" >> $GITHUB_ENV
echo "DOCS_AWS_REGION=$DOCS_AWS_REGION" >> $GITHUB_ENV
echo "DOCS_S3_BUCKET=$DOCS_S3_BUCKET" >> $GITHUB_ENV
echo "DOCS_S3_CONFIG=$DOCS_S3_CONFIG" >> $GITHUB_ENV
@ -69,6 +82,7 @@ jobs:
AWS_S3_CONFIG: ${{ env.DOCS_S3_CONFIG }}
-
name: Invalidate docs website cache
if: ${{ env.DOCS_LAMBDA_FUNCTION_CACHE != '' }}
uses: docker/bake-action@v2
with:
targets: aws-lambda-invoke
@ -81,5 +95,6 @@ jobs:
AWS_LAMBDA_FUNCTION: ${{ env.DOCS_LAMBDA_FUNCTION_CACHE }}
-
name: Send Slack notification
if: ${{ env.DOCS_SLACK_MSG != '' }}
run: |
curl -X POST -H 'Content-type: application/json' --data '{"text":"${{ env.DOCS_SLACK_MSG }}"}' ${{ secrets.SLACK_WEBHOOK }}

1
.gitignore vendored
View File

@ -5,6 +5,7 @@
.jekyll-metadata
_site/**
.sass-cache/**
.vscode
CNAME
_kbase/**
/vendor

View File

@ -10,7 +10,7 @@ ARG RUBY_VERSION=2.7.6
ARG BUNDLER_VERSION=2.3.13
ARG JEKYLL_ENV=development
ARG DOMAIN=docs.docker.com
ARG DOCS_URL=http://localhost:4000
# Base stage for building
FROM ruby:${RUBY_VERSION}-alpine AS base
@ -44,28 +44,14 @@ COPY --from=vendored /out /
# After building with jekyll, fix up some links
FROM gem AS generate
ARG JEKYLL_ENV
ARG DOMAIN
ARG DOCS_URL
ENV TARGET=/out
RUN --mount=type=bind,target=.,rw \
--mount=type=cache,target=/src/.jekyll-cache <<EOT
set -eu
if [ "${JEKYLL_ENV}" = "production" ]; then
(
set -x
bundle exec jekyll build --profile -d ${TARGET} --config _config.yml,_config_production.yml
sed -i 's#<loc>/#<loc>https://${DOMAIN}/#' "${TARGET}/sitemap.xml"
)
else
(
set -x
bundle exec jekyll build --trace --profile -d ${TARGET}
mkdir -p ${TARGET}/js
echo '[]' > ${TARGET}/js/metadata.json
)
fi
find ${TARGET} -type f -name '*.html' | while read i; do
sed -i 's#\(<a[^>]* href="\)https://${DOMAIN}/#\1/#g' "$i"
done
--mount=type=cache,target=/src/.jekyll-cache <<EOT
set -eu
CONFIG_FILES=_config.yml$([ "$JEKYLL_ENV" = "production" ] && echo ",_config_production.yml" || true)
set -x
bundle exec jekyll build --profile -d ${TARGET} --config ${CONFIG_FILES}
EOT
# htmlproofer checks for broken links

View File

@ -16,6 +16,7 @@ end
gem 'rouge', '3.27.0'
gem 'archive-zip', '0.12.0'
gem 'front_matter_parser', '1.0.1'
gem 'html-proofer', '3.19.4'
gem 'mdl', '0.11.0'
gem 'octopress-hooks', '2.6.2'

View File

@ -17,6 +17,7 @@ GEM
eventmachine (1.2.7)
ffi (1.15.5)
forwardable-extended (2.6.0)
front_matter_parser (1.0.1)
html-proofer (3.19.4)
addressable (~> 2.3)
mercenary (~> 0.3)
@ -26,7 +27,7 @@ GEM
typhoeus (~> 1.3)
yell (~> 2.0)
http_parser.rb (0.8.0)
i18n (1.10.0)
i18n (1.12.0)
concurrent-ruby (~> 1.0)
io-like (0.3.1)
jekyll (4.2.2)
@ -71,16 +72,16 @@ GEM
mercenary (0.4.0)
mini_portile2 (2.8.0)
mixlib-cli (2.1.8)
mixlib-config (3.0.9)
mixlib-config (3.0.27)
tomlrb
mixlib-shellout (3.2.7)
chef-utils
nokogiri (1.13.6)
nokogiri (1.13.8)
mini_portile2 (~> 2.8.0)
racc (~> 1.4)
nokogiri (1.13.6-aarch64-linux)
nokogiri (1.13.8-aarch64-linux)
racc (~> 1.4)
nokogiri (1.13.6-x86_64-linux)
nokogiri (1.13.8-x86_64-linux)
racc (~> 1.4)
octopress-hooks (2.6.2)
jekyll (>= 2.0)
@ -101,7 +102,7 @@ GEM
ffi (~> 1.9)
terminal-table (2.0.0)
unicode-display_width (~> 1.1, >= 1.1.1)
tomlrb (2.0.1)
tomlrb (2.0.3)
typhoeus (1.4.0)
ethon (>= 0.9.0)
unicode-display_width (1.8.0)
@ -114,6 +115,7 @@ PLATFORMS
DEPENDENCIES
archive-zip (= 0.12.0)
front_matter_parser (= 1.0.1)
html-proofer (= 3.19.4)
jekyll (= 4.2.2)
jekyll-redirect-from

View File

@ -30,7 +30,6 @@ exclude:
- datacenter
- docker-bake.hcl
- ee
- js/metadata.json
- LICENSE
- Makefile
- README.md
@ -67,12 +66,15 @@ compose_switch_version: "1.0.4"
# which we show a badge (currently: API v1.40, or "Docker 19.03").
min_api_threshold: 1.40
# Enable search autocompletion (requires metadata.json to be generated)
local_search: true
# List of plugins to enable for local development builds. Mostly the same as
# for production, but without the "jekyll-sitemap" plugin, which is not needed
# for previewing, and excluding saves some time to build
# for production.
plugins:
- jekyll-redirect-from
- jekyll-relative-links
- jekyll-sitemap
# Assets
#
@ -87,10 +89,7 @@ sass:
# Set default options / metadata for some paths.
#
# Setting options here prevents having to repeat the same option in front-matter
# on every page. Avoid using wildcards, such as "path: engine/api/v1.*", as
# limitations in Jekyll cause those to introduce a _severe_ impact on build-time,
# affecting generation of (e.g.) sitemap.xml and metadata.json, resulting in the
# total build to take 60 seconds longer to build (!).
# on every page.
defaults:
# Default one for development builds (local and PR previews)
# sitemap is disabled here but not for production in _config_production.yml
@ -99,7 +98,6 @@ defaults:
type: "pages"
values:
layout: docs
sitemap: false
toc_min: 2
toc_max: 4
@ -163,6 +161,17 @@ fetch-remote:
- "!docs/README.md" # readme to make things nice in the compose-cli repo, but meaningless here
- "!docs/architecture.md" # Compose-CLI architecture, unrelated to cloud integration
- repo: "https://github.com/docker/buildx"
default_branch: "master"
ref: "master"
paths:
- dest: "build/bake"
src:
- "docs/guides/bake/**"
- dest: "build/buildx/drivers"
src:
- "docs/guides/drivers/**"
- repo: "https://github.com/distribution/distribution"
default_branch: "main"
ref: "release/2.7"

View File

@ -17,20 +17,12 @@ exclude:
google_analytics: GTM-WL2QLG5
polldaddy_id: 8453675
# Enable search autocompletion (requires metadata.json to be generated)
local_search: true
plugins:
- jekyll-redirect-from
- jekyll-relative-links
- jekyll-sitemap
# Assets
#
# For production/deploy, we build css with the "compressed" format, to produce
# smaller files.
sass:
style: compressed
style: compressed
collections:
samples:
@ -39,10 +31,7 @@ collections:
# Set default options / metadata for some paths.
#
# Setting options here prevents having to repeat the same option in front-matter
# on every page. Avoid using wildcards, such as "path: engine/api/v1.*", as
# limitations in Jekyll cause those to introduce a _severe_ impact on build-time,
# affecting generation of (e.g.) sitemap.xml and metadata.json, resulting in the
# total build to take 60 seconds longer to build (!).
# on every page.
#
# The list below is used for *production* deploys, and overrides the one defined
# in "_config.yml", which is used for local builds and pull-request previews.

View File

@ -73,20 +73,20 @@ Docker Desktop: |
Docker Desktop works with your choice of development tools and languages and gives you access to a vast library of certified images and templates in Docker Hub. This enables development teams to extend their environment to rapidly auto-build, continuously integrate, and collaborate using a secure repository.
Docker Desktop for Mac: |
[Docker Desktop for Mac](/desktop/mac/) is an easy-to-install, lightweight
Docker Desktop for Mac is an easy-to-install, lightweight
Docker development environment designed specifically for the Mac. A native
Mac application, Docker Desktop for Mac uses the macOS Hypervisor
framework, networking, and filesystem. It's the best solution if you want
to build, debug, test, package, and ship Dockerized applications on a
Mac.
Docker Desktop for Windows: |
[Docker Desktop for Windows](/desktop/windows/) is an
Docker Desktop for Windows is an
easy-to-install, lightweight Docker development environment designed
specifically for Windows systems that support WSL 2 and Microsoft Hyper-V.
Docker Desktop for Windows uses WSL 2 or Hyper-V for
virtualization. Docker Desktop for Windows is the best solution if you want to build, debug, test, package, and ship Dockerized applications from Windows machines.
Docker Desktop for Linux: |
[Docker Desktop for Linux](/desktop/linux/) is an an easy-to-install, lightweight Docker development environment designed specifically for Linux machines. It's the best solution if you want to build, debug, test, package, and ship Dockerized applications on a Linux machine.
Docker Desktop for Linux is an an easy-to-install, lightweight Docker development environment designed specifically for Linux machines. It's the best solution if you want to build, debug, test, package, and ship Dockerized applications on a Linux machine.
Docker Hub: |
The [Docker Hub](https://hub.docker.com/) is a centralized resource for working with Docker and its components. It provides the following services:

View File

@ -1,56 +0,0 @@
source,destination
/engine/quickstart/,/get-started/
/engine/containers/,/engine/tutorials/
/win/,/desktop/windows/
/mac/,/desktop/mac/
/linux/,/engine/
/article-img/,/engine/article-img/
/articles/,/engine/articles/
/examples/,/engine/examples/
/extend/,/engine/extend/
/installation/,/install/
/introduction/,/engine/introduction/
/misc/,/engine/misc/
/project/,/opensource/project/
/reference/,/engine/reference/
/security/,/engine/security/
/static_files/,/engine/static_files/
/userguide/,/engine/userguide/
/en/latest/installation/,/install/
/docker-hub-enterprise/install/,/docker-trusted-registry/install/
/docker-io/builds/,/docker-hub/builds/
/docker-trusted-registry/license/install-csengine.md,/docker-trusted-registry/install/install-csengine/
/engine/articles/basics/,/engine/userguide/basics/
/engine/project/set-up-git/,/opensource/project/set-up-git/
/engine/reference/articles/basics.md,/engine/userguide/basics/
/engine/userguide/dockerlinks/,/engine/userguide/networking/default_network/dockerlinks/
/installation/,/install/
/networking/,/engine/userguide/networking/
/opensource/project/advanced-contributing/,/opensource/workflow/advanced-contributing/
/opensource/project/create-pr/,/opensource/workflow/create-pr/
/opensource/project/find-an-issue/,/opensource/workflow/find-an-issue/
/opensource/project/get-help/,/opensource/get-help/
/opensource/project/make-a-contribution/,/opensource/workflow/make-a-contribution/
/opensource/project/review-pr/,/opensource/workflow/review-pr/
/opensource/project/work-issue/,/opensource/workflow/work-issue/
/opensource/workflow/doc-style/,/opensource/doc-style/
/opensource/workflow/get-help/,/opensource/get-help/
/opensource/workflow/set-up-dev-env/,/opensource/project/set-up-dev-env/
/opensource/workflow/set-up-git/,/opensource/project/set-up-git/
/opensource/workflow/test-and-docs/,/opensource/project/test-and-docs/
/userguide/,/engine/userguide/
/docker-trusted-registry/adminguide/upgrade.md,/docker-trusted-registry/install/upgrade/
/docker-trusted-registry/quick-start/install.md,/docker-trusted-registry/install/
/docker-trusted-registry/adminguide/docker-trusted-registry/install.md,/docker-trusted-registry/install/
/v1.6/docker-hub/,/docker-hub/
/v1.7/docker-hub/,/docker-hub/
/v1.8/docker-hub/,/docker-hub/
/v1.9/docker-hub/,/docker-hub/
/v1.10/docker-hub/,/docker-hub/
/v1.11/docker-hub/,/docker-hub/
/login,https://hub.docker.com/
/bitbucket/use-docker-images-as-build-environments-in-bitbucket-pipelines-792298897.html,https://confluence.atlassian.com/bitbucket/use-docker-images-as-build-environments-in-bitbucket-pipelines-792298897.html
/blog/docker-data-science/,https://www.dataquest.io/blog/docker-data-science/
/questions/19335444/how-to-assign-a-port-mapping-to-an-existing-docker-container,http://stackoverflow.com/questions/19335444/how-to-assign-a-port-mapping-to-an-existing-docker-container
/engine/examples/mongodb/,/samples/library/mongo/
1 source destination
2 /engine/quickstart/ /get-started/
3 /engine/containers/ /engine/tutorials/
4 /win/ /desktop/windows/
5 /mac/ /desktop/mac/
6 /linux/ /engine/
7 /article-img/ /engine/article-img/
8 /articles/ /engine/articles/
9 /examples/ /engine/examples/
10 /extend/ /engine/extend/
11 /installation/ /install/
12 /introduction/ /engine/introduction/
13 /misc/ /engine/misc/
14 /project/ /opensource/project/
15 /reference/ /engine/reference/
16 /security/ /engine/security/
17 /static_files/ /engine/static_files/
18 /userguide/ /engine/userguide/
19 /en/latest/installation/ /install/
20 /docker-hub-enterprise/install/ /docker-trusted-registry/install/
21 /docker-io/builds/ /docker-hub/builds/
22 /docker-trusted-registry/license/install-csengine.md /docker-trusted-registry/install/install-csengine/
23 /engine/articles/basics/ /engine/userguide/basics/
24 /engine/project/set-up-git/ /opensource/project/set-up-git/
25 /engine/reference/articles/basics.md /engine/userguide/basics/
26 /engine/userguide/dockerlinks/ /engine/userguide/networking/default_network/dockerlinks/
27 /installation/ /install/
28 /networking/ /engine/userguide/networking/
29 /opensource/project/advanced-contributing/ /opensource/workflow/advanced-contributing/
30 /opensource/project/create-pr/ /opensource/workflow/create-pr/
31 /opensource/project/find-an-issue/ /opensource/workflow/find-an-issue/
32 /opensource/project/get-help/ /opensource/get-help/
33 /opensource/project/make-a-contribution/ /opensource/workflow/make-a-contribution/
34 /opensource/project/review-pr/ /opensource/workflow/review-pr/
35 /opensource/project/work-issue/ /opensource/workflow/work-issue/
36 /opensource/workflow/doc-style/ /opensource/doc-style/
37 /opensource/workflow/get-help/ /opensource/get-help/
38 /opensource/workflow/set-up-dev-env/ /opensource/project/set-up-dev-env/
39 /opensource/workflow/set-up-git/ /opensource/project/set-up-git/
40 /opensource/workflow/test-and-docs/ /opensource/project/test-and-docs/
41 /userguide/ /engine/userguide/
42 /docker-trusted-registry/adminguide/upgrade.md /docker-trusted-registry/install/upgrade/
43 /docker-trusted-registry/quick-start/install.md /docker-trusted-registry/install/
44 /docker-trusted-registry/adminguide/docker-trusted-registry/install.md /docker-trusted-registry/install/
45 /v1.6/docker-hub/ /docker-hub/
46 /v1.7/docker-hub/ /docker-hub/
47 /v1.8/docker-hub/ /docker-hub/
48 /v1.9/docker-hub/ /docker-hub/
49 /v1.10/docker-hub/ /docker-hub/
50 /v1.11/docker-hub/ /docker-hub/
51 /login https://hub.docker.com/
52 /bitbucket/use-docker-images-as-build-environments-in-bitbucket-pipelines-792298897.html https://confluence.atlassian.com/bitbucket/use-docker-images-as-build-environments-in-bitbucket-pipelines-792298897.html
53 /blog/docker-data-science/ https://www.dataquest.io/blog/docker-data-science/
54 /questions/19335444/how-to-assign-a-port-mapping-to-an-existing-docker-container http://stackoverflow.com/questions/19335444/how-to-assign-a-port-mapping-to-an-existing-docker-container
55 /engine/examples/mongodb/ /samples/library/mongo/

View File

@ -1167,6 +1167,8 @@ manuals:
title: Explore Images
- path: /desktop/use-desktop/volumes/
title: Explore Volumes
- path: /desktop/use-desktop/pause/
title: Pause Docker Desktop
- sectiontitle: Change settings
section:
- path: /desktop/settings/mac/
@ -1195,10 +1197,14 @@ manuals:
title: Back up and restore data
- path: /desktop/networking/
title: Explore networking features
- path: /desktop/mac/privileged-helper/
title: Privileged Helper on Mac
- path: /desktop/mac/permission-requirements/
title: Docker Desktop permission requirements for Mac
- path: /desktop/windows/permission-requirements/
title: Docker Desktop permission requirements for Windows
- path: /desktop/windows/wsl/
title: Docker Desktop WSL 2 backend on Windows
- path: /desktop/vm-vdi/
title: Run Docker Desktop in a VM or VDI environment
- sectiontitle: Dev Environments (Beta)
section:
- path: /desktop/dev-environments/
@ -1393,10 +1399,37 @@ manuals:
- sectiontitle: Buildx
section:
- path: /build/buildx/
title: Working with Buildx
title: Buildx overview
- path: /build/buildx/install/
title: Install Buildx
- sectiontitle: Drivers
section:
- path: /build/buildx/drivers/
title: Overview
- path: /build/buildx/drivers/docker-container/
title: Docker container driver
- path: /build/buildx/drivers/kubernetes/
title: Kubernetes driver
- path: /build/buildx/drivers/remote/
title: Remote driver
- path: /build/buildx/multiple-builders/
title: Using multiple builders
- path: /build/buildx/multiplatform-images/
title: Building multi-platform images
- sectiontitle: Bake
section:
- path: /build/bake/
title: Bake overview
- path: /build/bake/file-definition/
title: File definition
- path: /build/bake/configuring-build/
title: Configuring builds
- path: /build/bake/hcl-funcs/
title: User defined HCL functions
- path: /build/bake/build-contexts/
title: Build contexts and linking targets
- path: /build/bake/compose-file/
title: Building from Compose file
- sectiontitle: Docker Compose
section:
- path: /compose/

View File

@ -72,7 +72,7 @@ On Mac, you can use the following methods to create a `registry.json` file.
To automatically create a registry.json file when installing Docker Desktop, download `Docker.dmg` and run the following commands in a terminal from the directory containing `Docker.dmg`. Replace `myorg` with your organization's name.
```bash
```console
$ sudo hdiutil attach Docker.dmg
$ sudo /Volumes/Docker/Docker.app/Contents/MacOS/install --allowed-org=myorg
$ sudo hdiutil detach /Volumes/Docker
@ -80,13 +80,32 @@ $ sudo hdiutil detach /Volumes/Docker
#### Create registry.json manually on Mac
To manually create a `registry.json` file, run the following commands in a terminal and replace `myorg` with your organization's name.
To manually create a `registry.json` file, run the following commands in a terminal
and replace `myorg` with your organization's name.
```bash
$ sudo touch /Library/Application Support/com.docker.docker/registry.json
$ sudo echo '{"allowedOrgs":["myorg"]}' >> /Library/Application Support/com.docker.docker/registry.json
```console
$ sudo mkdir -p "/Library/Application Support/com.docker.docker"
$ echo '{"allowedOrgs":["myorg"]}' | sudo tee "/Library/Application Support/com.docker.docker/registry.json"
```
This creates the `registry.json` file at `/Library/Application Support/com.docker.docker/registry.json` and includes the organization information the user belongs to. Make sure this file can't be edited by the user, only by the administrator.
This creates (or updates, if the file already exists) the `registry.json` file
at `/Library/Application Support/com.docker.docker/registry.json` and includes
the organization information the user belongs to. Make sure the file has the
expected content and can't be edited by the user, only by the administrator.
</div></div>
Verify that the content of the file contains the correct information;
```console
$ sudo cat "/Library/Application Support/com.docker.docker/registry.json"
{"allowedOrgs":["myorg"]}
```
Verify that the file has the expected permissions (`-rw-r--r--`) and ownership
(`root` and `admin`):
```console
$ sudo ls -l "/Library/Application Support/com.docker.docker/registry.json"
-rw-r--r-- 1 root admin 26 Jul 27 22:01 /Library/Application Support/com.docker.docker/registry.json
```
</div></div>

View File

@ -13,7 +13,7 @@
<a class="btn btn-primary" href="https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-win-amd64" role="button">Download file</a>
<br>
<br>
<b>Checksum:</b> SHA-256 fe430d19d41cc56fd9a4cd2e22fc0e3522bed910c219208345918c77bbbd2a65
<b>Checksum:</b> SHA-256 48ca8cabe67aee94a934b4c0f97a5001e89cb66bbbf824924fbc8bed6a8c90d3
</div>
</div>
</div>
@ -31,7 +31,7 @@
<a class="btn btn-primary" href="https://desktop.docker.com/mac/main/amd64/Docker.dmg?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-mac-amd64" role="button">Download file</a>
<br>
<br>
<b>Checksum:</b> SHA-256 8be8e5245d6a8dbf7b8cb580fb7d99f04cc143c95323695c0d9be4f85dd60b0e
<b>Checksum:</b> SHA-256 295694d7c2df05e37ac0d27fe8be5af6295b1edc6fa00a00a47134a14d5d0b34
</div>
</div>
</div>
@ -49,7 +49,7 @@
<a class="btn btn-primary" href="https://desktop.docker.com/mac/main/arm64/Docker.dmg?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-mac-arm64" role="button">Download file</a>
<br>
<br>
<b>Checksum:</b> SHA-256 b3d4ef222325bde321045f3b8d946c849cd2812e9ad52a801000a95edb8af57b
<b>Checksum:</b> SHA-256 9824103e3d5a7d01a4d7d8086210157e1cc02217cb9edd82fe4bf2d16c138c44
</div>
</div>
</div>
@ -64,10 +64,10 @@
</div>
<div id="collapseFour" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingFour">
<div class="panel-body">
<a class="btn btn-primary" href="https://desktop.docker.com/linux/main/amd64/docker-desktop-4.10.1-amd64.deb?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-linux-amd64" role="button">Download file</a>
<a class="btn btn-primary" href="https://desktop.docker.com/linux/main/amd64/docker-desktop-4.11.0-amd64.deb?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-linux-amd64" role="button">Download file</a>
<br>
<br>
<b>Checksum:</b> SHA-256 9363bc584478c5c7654004bacb51429c275b58a868ef43c3bc6249d5844ec5be
<b>Checksum:</b> SHA-256 a0dc8ac97cc21e5a13a9e316cac11d85b7c248fd0c166b22a2ab239d17d43d9f
</div>
</div>
</div>
@ -82,10 +82,10 @@
</div>
<div id="collapseFive" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingFive">
<div class="panel-body">
<a class="btn btn-primary" href="https://desktop.docker.com/linux/main/amd64/docker-desktop-4.10.1-x86_64.rpm?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-linux-amd64" role="button">Download file</a>
<a class="btn btn-primary" href="https://desktop.docker.com/linux/main/amd64/docker-desktop-4.11.0-x86_64.rpm?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-linux-amd64" role="button">Download file</a>
<br>
<br>
<b>Checksum:</b> SHA-256 92371d1a1ae4b57921721da95dc0252aefa4c79eb12208760c800ac07c0ae1d2
<b>Checksum:</b> SHA-256 eb077737298827092b283d3c85edacd128ecd993e987aa30d8081e2306401774
</div>
</div>
</div>
@ -100,10 +100,10 @@
</div>
<div id="collapseSix" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingSix">
<div class="panel-body">
<a class="btn btn-primary" href="https://desktop.docker.com/linux/main/amd64/docker-desktop-4.10.1-x86_64.pkg.tar.zst?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-linux-amd64" role="button">Download file</a>
<a class="btn btn-primary" href="https://desktop.docker.com/linux/main/amd64/docker-desktop-4.11.0-x86_64.pkg.tar.zst?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-linux-amd64" role="button">Download file</a>
<br>
<br>
<b>Checksum:</b> SHA-256 799af244b05e8b08f03b6e0dbbc1dfcc027ff49f15506b3c460e0f9bae06ca5d
<b>Checksum:</b> SHA-256 a85fd5e83d5b613ef43d335c0ab0af4600aeb8a92921b617cb7a555826e361de
</div>
</div>
</div>

View File

@ -84,17 +84,18 @@
<div class="bottom_footer">
<div class="footer-copyright col-xs-12 col-md-8">
<p class="copyright">
Copyright &copy; 2013-2021 Docker Inc. All rights reserved. </p>
Copyright &copy; 2013-{{ site.time | date: '%Y' }} Docker Inc. All rights reserved.
</p>
</div>
<div class="footer_social_nav">
<ul class="nav-social">
<li class="fa fa-twitter"><a href="https://twitter.com/docker">Twitter</a></li>
<li class="fa fa-youtube"><a href="https://www.youtube.com/user/dockerrun">Youtube</a></li>
<li class="fa fa-github"><a href="https://github.com/docker">GitHub</a></li>
<li class="fa fa-linkedin"><a href="https://www.linkedin.com/company/docker">Linkedin</a></li>
<li class="fa fa-facebook"><a href="https://www.facebook.com/docker.run">Facebook</a></li>
<li class="fa fa-slideshare"><a href="https://www.slideshare.net/docker">Slideshare</a></li>
<li class="fa fa-reddit"><a href="https://www.reddit.com/r/docker">Reddit</a></li>
<li class="fa-brands fa-twitter"><a href="https://twitter.com/docker">Twitter</a></li>
<li class="fa-brands fa-youtube"><a href="https://www.youtube.com/user/dockerrun">Youtube</a></li>
<li class="fa-brands fa-github"><a href="https://github.com/docker">GitHub</a></li>
<li class="fa-brands fa-linkedin-in"><a href="https://www.linkedin.com/company/docker">Linkedin</a></li>
<li class="fa-brands fa-facebook-f"><a href="https://www.facebook.com/docker.run">Facebook</a></li>
<li class="fa-brands fa-slideshare"><a href="https://www.slideshare.net/docker">Slideshare</a></li>
<li class="fa-brands fa-reddit-alien"><a href="https://www.reddit.com/r/docker">Reddit</a></li>
</ul>
</div>
</div>

View File

@ -80,12 +80,15 @@
by older browsers, and we don't optimize for those.
{%- endcomment -%}
<link rel="preload" as="font" href="https://fonts.gstatic.com/s/opensans/v18/mem8YaGs126MiZpBA-UFVZ0bf8pkAg.woff2" type="font/woff2" crossorigin="anonymous">
<link rel="preload" as="font" href="/fonts/geomanist/hinted-Geomanist-Book.woff2" type="font/woff2" crossorigin="anonymous">
<link rel="preload" as="font" href="/fonts/geomanist/hinted-Geomanist-Regular.woff2" type="font/woff2" crossorigin="anonymous">
<link rel="preload" as="font" href="/fonts/glyphicons-halflings-regular.woff2" type="font/woff2" crossorigin="anonymous">
<link rel="preload" as="font" href="/fonts/fontawesome-webfont.woff2?v=4.7.0" type="font/woff2" crossorigin="anonymous">
<link rel="preload" as="font" href="/assets/fontawesome/webfonts/fa-brands-400.woff2" type="font/woff2" crossorigin="anonymous">
<link rel="preload" as="font" href="/assets/fontawesome/webfonts/fa-regular-400.woff2" type="font/woff2" crossorigin="anonymous">
<link rel="preload" as="font" href="/assets/fontawesome/webfonts/fa-solid-900.woff2" type="font/woff2" crossorigin="anonymous">
<link rel="preload" as="font" href="/assets/fontawesome/webfonts/fa-v4compatibility.woff2" type="font/woff2" crossorigin="anonymous">
<link rel="preload" as="font" href="/fonts/geomanist/hinted-Geomanist-Book.woff2" type="font/woff2" crossorigin="anonymous">
<link rel="preload" as="font" href="/fonts/geomanist/hinted-Geomanist-Regular.woff2" type="font/woff2" crossorigin="anonymous">
<link rel="preload" as="font" href="/fonts/glyphicons-halflings-regular.woff2" type="font/woff2" crossorigin="anonymous">
<link rel="stylesheet" href="/css/font-awesome.min.css">
<link rel="stylesheet" href="/assets/fontawesome/css/all.min.css">
<link rel="stylesheet" href="/css/bootstrap.min.css">
<link rel="stylesheet" href="/css/style.css" id="pagestyle">

View File

@ -1,4 +1,6 @@
{%- unless page.skip_read_time == true -%}
{%- assign words = content | number_of_words -%}
{%- if words >= 360 -%}
<p><em class="reading-time">Estimated reading time: {{ words | divided_by:180 }} minutes</em></p>
<em class="reading-time">Estimated reading time: {{ words | divided_by:180 }} minutes</em>
{%- endif -%}
{%- endunless -%}

View File

@ -28,12 +28,7 @@
{%- if page.advisory -%}
<blockquote>{{ site.data.advisories.texts[page.advisory] | markdownify }}</blockquote>
{%- endif -%}
{%- unless page.skip_read_time == true -%}
{%- assign words = content | number_of_words -%}
{%- if words >= 360 -%}
<p><em class="reading-time">Estimated reading time: {{ words | divided_by:180 }} minutes</em></p>
{%- endif -%}
{%- endunless -%}
<p>{%- include read_time.html -%}</p>
{{ content }}
{%- unless page.notags == true -%}
{%- assign keywords = page.keywords | split:"," -%}

View File

@ -1,4 +1,5 @@
require 'archive/zip'
require 'front_matter_parser'
require 'jekyll'
require 'json'
require 'octopress-hooks'
@ -33,6 +34,16 @@ module Jekyll
end
end
def self.resolve_line_numbers(first, last)
if first.nil? && last.nil?
first = 0
last = -1
elsif last.nil?
last = first
end
[first.to_i, last.to_i]
end
def pre_read(site)
beginning_time = Time.now
puts "Starting plugin fetch_remote.rb..."
@ -77,7 +88,18 @@ module Jekyll
file_clean = ent.path.delete_prefix(ztmpdir).split("/").drop(2).join("/")
destent = FileUtils::Entry_.new(d, ent.rel, false)
puts " #{file_clean} => #{destent.path}"
ent.copy destent.path
if File.file?(destent.path)
fmp = FrontMatterParser::Parser.parse_file(destent.path)
if fmp['fetch_remote'].nil?
raise "Local file #{destent.path} already exists"
end
line_start, line_end = FetchRemote.resolve_line_numbers(fmp['fetch_remote'].kind_of?(Hash) ? fmp['fetch_remote']['line_start'] : nil, fmp['fetch_remote'].kind_of?(Hash) ? fmp['fetch_remote']['line_end'] : nil)
lines = File.readlines(ent.path)[line_start..line_end]
File.open(destent.path, "a") { |fow| fow.puts lines.join }
else
ent.copy destent.path
end
next unless File.file?(ent.path) && File.extname(ent.path) == ".md"
# set edit and issue url and remote info for markdown files in site config defaults

25
_plugins/fix_swagger.rb Normal file
View File

@ -0,0 +1,25 @@
require 'jekyll'
require 'octopress-hooks'
require_relative 'util.rb'
module Jekyll
class FetchRemote < Octopress::Hooks::Site
def post_read(site)
beginning_time = Time.now
Jekyll.logger.info "Starting plugin fix_swagger.rb..."
files = Dir.glob(%w[./docker-hub/api/*.yaml ./engine/api/*.yaml])
Jekyll.logger.info " Fixing up #{files.size} swagger file(s)..."
files.each do |f|
Jekyll.logger.info " #{f}"
text = File.read(f)
replace = text.gsub(get_docs_url, "")
File.open(f, "w") { |f2| f2.puts replace }
end
end_time = Time.now
Jekyll.logger.info "done in #{(end_time - beginning_time)} seconds"
end
end
end

29
_plugins/fix_url.rb Normal file
View File

@ -0,0 +1,29 @@
require 'jekyll'
require 'octopress-hooks'
require_relative 'util.rb'
module Jekyll
class FetchRemote < Octopress::Hooks::Site
def post_write(site)
beginning_time = Time.now
Jekyll.logger.info "Starting plugin fix_url.rb..."
# TODO: use dynamic URL from util.get_docs_url instead of hardcoded one
# but needs to remove first all absolute URLs in our code base.
docs_url = "https://docs.docker.com"
dest = site.config['destination'] || '_site'
files = Dir.glob("#{dest}/**/*.html")
Jekyll.logger.info " Fixing up URLs in #{files.size} html file(s) to be relative"
files.each do|f|
text = File.read(f)
replace = text.gsub(/(<a[^>]* href=\")#{docs_url}/, '\1')
File.open(f, "w") { |f2| f2.puts replace }
end
end_time = Time.now
Jekyll.logger.info "done in #{(end_time - beginning_time)} seconds"
end
end
end

View File

@ -1,22 +0,0 @@
require 'jekyll'
require 'octopress-hooks'
module Jekyll
class FetchRemote < Octopress::Hooks::Site
def post_read(site)
beginning_time = Time.now
Jekyll.logger.info "Starting plugin fix_urls.rb..."
Jekyll.logger.info " Fixing up URLs in swagger files"
Dir.glob(%w[./docker-hub/api/*.yaml ./engine/api/*.yaml]) do |file_name|
Jekyll.logger.info " #{file_name}"
text = File.read(file_name)
replace = text.gsub("https://docs.docker.com", "")
File.open(file_name, "w") { |file| file.puts replace }
end
end_time = Time.now
Jekyll.logger.info "done in #{(end_time - beginning_time)} seconds"
end
end
end

View File

@ -0,0 +1,18 @@
require_relative 'util.rb'
Jekyll::Hooks.register :site, :post_write do |site|
beginning_time = Time.now
Jekyll.logger.info "Starting plugin update_sitemap.rb..."
sitemap_path = File.join(site.dest, 'sitemap.xml')
if File.exist?(sitemap_path)
sitemap_file = File.read(sitemap_path)
replace = sitemap_file.gsub!("<loc>/", "<loc>#{get_docs_url}/")
Jekyll.logger.info " Replacing '<loc>/' with '<loc>#{get_docs_url}/' in #{sitemap_path}"
File.open(sitemap_path, "w") { |file| file.puts replace }
end
end_time = Time.now
Jekyll.logger.info "done in #{(end_time - beginning_time)} seconds"
end

5
_plugins/util.rb Normal file
View File

@ -0,0 +1,5 @@
def get_docs_url
# DEPLOY_URL is from Netlify for preview
# https://docs.netlify.com/configure-builds/environment-variables/#deploy-urls-and-metadata
ENV['DEPLOY_URL'] || ENV['DOCS_URL'] || 'https://docs.docker.com'
end

View File

@ -0,0 +1,388 @@
{
"ErrorDocument": {
"Key": "404.html"
},
"IndexDocument": {
"Suffix": "index.html"
},
"RedirectAllRequestsTo": null,
"RoutingRules": [
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "v1.4/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": "",
"ReplaceKeyWith": null
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "v1.5/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": "",
"ReplaceKeyWith": null
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "v1.6/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": "",
"ReplaceKeyWith": null
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "v1.7/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": "",
"ReplaceKeyWith": null
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "v1.8/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": "",
"ReplaceKeyWith": null
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "v1.9/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": "",
"ReplaceKeyWith": null
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "v1.10/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": "",
"ReplaceKeyWith": null
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "v1.11/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": "",
"ReplaceKeyWith": null
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "v1.12/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": "",
"ReplaceKeyWith": null
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "v1.13/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": "",
"ReplaceKeyWith": null
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "v17.03/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": "",
"ReplaceKeyWith": null
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "v17.09/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": "",
"ReplaceKeyWith": null
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "v17.12/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": "",
"ReplaceKeyWith": null
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "ee/licensing/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": null,
"ReplaceKeyWith": ""
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "ee/get-support/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": null,
"ReplaceKeyWith": ""
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "ee/cluster/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": null,
"ReplaceKeyWith": ""
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "ee/supported-platforms/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": null,
"ReplaceKeyWith": ""
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "ee/ucp/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": null,
"ReplaceKeyWith": ""
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "ee/dtr/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": null,
"ReplaceKeyWith": ""
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "compliance/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": null,
"ReplaceKeyWith": ""
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "datacenter/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": null,
"ReplaceKeyWith": ""
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "v18.09/ee/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": null,
"ReplaceKeyWith": ""
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "v18.03/ee/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": null,
"ReplaceKeyWith": ""
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "v17.06/enterprise/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": null,
"ReplaceKeyWith": ""
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "ee/docker-ee/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": null,
"ReplaceKeyWith": ""
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "ee/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": null,
"ReplaceKeyWith": ""
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "v17.06/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": "",
"ReplaceKeyWith": null
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "v18.03/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": "",
"ReplaceKeyWith": null
}
},
{
"Condition": {
"HttpErrorCodeReturnedEquals": null,
"KeyPrefixEquals": "v18.09/"
},
"Redirect": {
"HostName": "docs-lab.docker.com",
"HttpRedirectCode": null,
"Protocol": "https",
"ReplaceKeyPrefixWith": "",
"ReplaceKeyWith": null
}
}
]
}

View File

@ -32,9 +32,12 @@ The available classes are:
font-weight: 700;
margin-top: 0;
// https://fontawesome.com/docs/web/setup/upgrade/pseudo-elements
&::before {
font-family: FontAwesome;
content: "#{$icon} \00a0";
text-rendering: auto;
-webkit-font-smoothing: antialiased;
font: var(--fa-font-solid);
content: "#{$icon} \00a0";
}
}
@ -53,7 +56,7 @@ blockquote {
body.night & {
// DARK THEME
&:not(.important):not(.warning):not(.restricted) {
&:not(.important):not(.warning):not(.restricted):not(.experimental) {
@include notification(
$bg-color: $dark-palette-blue-200,
$header-color: $white-0,
@ -88,12 +91,21 @@ blockquote {
$icon: "\f135"
);
}
&.experimental {
@include notification(
$bg-color: $dark-palette-blue-200,
$header-color: $white-0,
$body-text-color: $white-0,
$icon: "\f492"
);
}
}
body:not(.night) & {
// LIGHT THEME
&:not(.important):not(.warning):not(.restricted) {
&:not(.important):not(.warning):not(.restricted):not(.experimental) {
@include notification(
$bg-color: $light-palette-blue-100,
$header-color: $light-palette-blue-500,
@ -128,6 +140,15 @@ blockquote {
$icon: "\f135"
);
}
&.experimental {
@include notification(
$bg-color: $light-palette-blue-100,
$header-color: $light-palette-blue-500,
$body-text-color: inherit,
$icon: "\f492"
);
}
}
}

6
assets/fontawesome/css/all.min.css vendored Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,7 @@
---
title: "Defining additional build contexts and linking targets"
keywords: build, buildx, bake, buildkit, hcl
fetch_remote:
line_start: 2
line_end: -1
---

View File

@ -0,0 +1,7 @@
---
title: "Building from Compose file"
keywords: build, buildx, bake, buildkit, compose
fetch_remote:
line_start: 2
line_end: -1
---

View File

@ -0,0 +1,7 @@
---
title: "Configuring builds"
keywords: build, buildx, bake, buildkit, hcl, json
fetch_remote:
line_start: 2
line_end: -1
---

View File

@ -0,0 +1,7 @@
---
title: "Bake file definition"
keywords: build, buildx, bake, buildkit, hcl, json, compose
fetch_remote:
line_start: 2
line_end: -1
---

7
build/bake/hcl-funcs.md Normal file
View File

@ -0,0 +1,7 @@
---
title: "User defined HCL functions"
keywords: build, buildx, bake, buildkit, hcl
fetch_remote:
line_start: 2
line_end: -1
---

7
build/bake/index.md Normal file
View File

@ -0,0 +1,7 @@
---
title: "High-level build options with Bake"
keywords: build, buildx, bake, buildkit, hcl, json, compose
fetch_remote:
line_start: 2
line_end: -1
---

View File

@ -0,0 +1,7 @@
---
title: "Docker container driver"
keywords: build, buildx, driver, builder, docker-container
fetch_remote:
line_start: 2
line_end: -1
---

View File

@ -0,0 +1,7 @@
---
title: "Buildx drivers overview"
keywords: build, buildx, driver, builder, docker-container, kubernetes, remote
fetch_remote:
line_start: 2
line_end: -1
---

View File

@ -0,0 +1,7 @@
---
title: "Kubernetes driver"
keywords: build, buildx, driver, builder, kubernetes
fetch_remote:
line_start: 2
line_end: -1
---

View File

@ -0,0 +1,22 @@
---
title: "Remote driver"
keywords: build, buildx, driver, builder, remote
fetch_remote:
line_start: 2
line_end: -1
---
> Beta
>
> Remote driver is currently available as a beta feature. We recommend that you
> do not use this feature in production environments. You can [build Buildx from source](https://github.com/docker/buildx#building){: target="_blank" rel="noopener" class="_"}
> to test the remote driver or use the following command to download and
> install an edge release of Buildx:
>
> ```console
> $ echo "FROM docker/buildx-bin:master" | docker buildx build --platform=local --output . -f - .
> $ mkdir -p ~/.docker/cli-plugins/
> $ mv buildx ~/.docker/cli-plugins/docker-buildx
> ```
{: .important}

View File

@ -1,5 +1,5 @@
---
title: Buildx
title: Working with Buildx
description: Working with Docker Buildx
keywords: build, buildx, buildkit
redirect_from:
@ -34,148 +34,20 @@ In addition, Buildx also supports new features that are not yet available for
regular `docker build` like building manifest lists, distributed caching, and
exporting build results to OCI image tarballs.
You can run Buildx in different configurations that are exposed through a driver
concept. Currently, Docker supports a "docker" driver that uses the BuildKit
library bundled into the Docker daemon binary, and a "docker-container" driver
that automatically launches BuildKit inside a Docker container.
Buildx is flexible and can be run in different configurations that are exposed
through various "drivers". Each driver defines how and where a build should
run, and have different feature sets.
The user experience of using Buildx is very similar across drivers. However,
there are some features that are not currently supported by the "docker" driver,
because the BuildKit library which is bundled into docker daemon uses a different
storage component. In contrast, all images built with the "docker" driver are
automatically added to the "docker images" view by default, whereas when using
other drivers, the method for outputting an image needs to be selected
with `--output`.
We currently support the following drivers:
## Work with builder instances
* The `docker` driver ([reference](/engine/reference/commandline/buildx_create/#driver))
* The `docker-container` driver ([guide](drivers/docker-container.md), [reference](/engine/reference/commandline/buildx_create/#driver))
* The `kubernetes` driver ([guide](drivers/kubernetes.md), [reference](/engine/reference/commandline/buildx_create/#driver))
* The `remote` driver ([guide](drivers/remote.md))
By default, Buildx uses the `docker` driver if it is supported, providing a user
experience very similar to the native `docker build`. Note that you must use a
local shared daemon to build your applications.
For more information on drivers, see the [drivers guide](drivers/index.md).
Buildx allows you to create new instances of isolated builders. You can use this
to get a scoped environment for your CI builds that does not change the state of
the shared daemon, or for isolating builds for different projects. You can create
a new instance for a set of remote nodes, forming a build farm, and quickly
switch between them.
## High-level build options with Bake
You can create new instances using the [`docker buildx create`](../../engine/reference/commandline/buildx_create.md)
command. This creates a new builder instance with a single node based on your
current configuration.
To use a remote node you can specify the `DOCKER_HOST` or the remote context name
while creating the new builder. After creating a new instance, you can manage its
lifecycle using the [`docker buildx inspect`](../../engine/reference/commandline/buildx_inspect.md),
[`docker buildx stop`](../../engine/reference/commandline/buildx_stop.md), and
[`docker buildx rm`](../../engine/reference/commandline/buildx_rm.md) commands.
To list all available builders, use [`docker buildx ls`](../../engine/reference/commandline/buildx_ls.md).
After creating a new builder you can also append new nodes to it.
To switch between different builders, use [`docker buildx use <name>`](../../engine/reference/commandline/buildx_use.md).
After running this command, the build commands will automatically use this
builder.
Docker also features a [`docker context`](../../engine/reference/commandline/context.md)
command that you can use to provide names for remote Docker API endpoints. Buildx
integrates with `docker context` to ensure all the contexts automatically get a
default builder instance. You can also set the context name as the target when
you create a new builder instance or when you add a node to it.
## Build multi-platform images
BuildKit is designed to work well for building for multiple platforms and not
only for the architecture and operating system that the user invoking the build
happens to run.
When you invoke a build, you can set the `--platform` flag to specify the target
platform for the build output, (for example, `linux/amd64`, `linux/arm64`, or
`darwin/amd64`).
When the current builder instance is backed by the `docker-container` driver,
you can specify multiple platforms together. In this case, it builds a manifest
list which contains images for all specified architectures. When you use this
image in [`docker run`](../../engine/reference/commandline/run.md) or
[`docker service`](../../engine/reference/commandline/service.md), Docker picks
the correct image based on the node's platform.
You can build multi-platform images using three different strategies that are
supported by Buildx and Dockerfiles:
1. Using the QEMU emulation support in the kernel
2. Building on multiple native nodes using the same builder instance
3. Using a stage in Dockerfile to cross-compile to different architectures
QEMU is the easiest way to get started if your node already supports it (for
example. if you are using Docker Desktop). It requires no changes to your
Dockerfile and BuildKit automatically detects the secondary architectures that
are available. When BuildKit needs to run a binary for a different architecture,
it automatically loads it through a binary registered in the `binfmt_misc`
handler.
For QEMU binaries registered with `binfmt_misc` on the host OS to work
transparently inside containers, they must be statically compiled and registered
with the `fix_binary` flag. This requires a kernel >= 4.8 and
binfmt-support >= 2.1.7. You can check for proper registration by checking if
`F` is among the flags in `/proc/sys/fs/binfmt_misc/qemu-*`. While Docker
Desktop comes preconfigured with `binfmt_misc` support for additional platforms,
for other installations it likely needs to be installed using
[`tonistiigi/binfmt`](https://github.com/tonistiigi/binfmt){:target="_blank" rel="noopener" class="_"}
image.
```console
$ docker run --privileged --rm tonistiigi/binfmt --install all
```
Using multiple native nodes provide better support for more complicated cases
that are not handled by QEMU and generally have better performance. You can
add additional nodes to the builder instance using the `--append` flag.
Assuming contexts `node-amd64` and `node-arm64` exist in `docker context ls`;
```console
$ docker buildx create --use --name mybuild node-amd64
mybuild
$ docker buildx create --append --name mybuild node-arm64
$ docker buildx build --platform linux/amd64,linux/arm64 .
```
Finally, depending on your project, the language that you use may have good
support for cross-compilation. In that case, multi-stage builds in Dockerfiles
can be effectively used to build binaries for the platform specified with
`--platform` using the native architecture of the build node. A list of build
arguments like `BUILDPLATFORM` and `TARGETPLATFORM` is available automatically
inside your Dockerfile and can be leveraged by the processes running as part
of your build.
```dockerfile
# syntax=docker/dockerfile:1
FROM --platform=$BUILDPLATFORM golang:alpine AS build
ARG TARGETPLATFORM
ARG BUILDPLATFORM
RUN echo "I am running on $BUILDPLATFORM, building for $TARGETPLATFORM" > /log
FROM alpine
COPY --from=build /log /log
```
## High-level build options
Buildx also aims to provide support for high-level build concepts that go beyond
invoking a single build command.
BuildKit efficiently handles multiple concurrent build requests and de-duplicating
work. The build commands can be combined with general-purpose command runners
(for example, `make`). However, these tools generally invoke builds in sequence
and therefore cannot leverage the full potential of BuildKit parallelization,
or combine BuildKits output for the user. For this use case, we have added a
command called [`docker buildx bake`](../../engine/reference/commandline/buildx_bake.md).
The `bake` command supports building images from compose files, similar to
[`docker-compose build`](../../engine/reference/commandline/compose_build.md),
but allowing all the services to be built concurrently as part of a single
request.
There is also support for custom build rules from HCL/JSON files allowing
better code reuse and different target groups. The design of bake is in very
early stages, and we are looking for feedback from users. Let us know your
feedback by creating an issue in the [Docker Buildx](https://github.com/docker/buildx/issues){:target="_blank" rel="noopener" class="_"}
GitHub repository.
Check out our guide about [Bake](../bake/index.md) to get started with the
[`docker buildx bake` command](../../engine/reference/commandline/buildx_bake.md).

View File

@ -0,0 +1,79 @@
---
title: Building multi-platform images
description: Different strategies for building multi-platform images
keywords: build, buildx, buildkit, multi-platform images
---
BuildKit is designed to work well for building for multiple platforms and not
only for the architecture and operating system that the user invoking the build
happens to run.
When you invoke a build, you can set the `--platform` flag to specify the target
platform for the build output, (for example, `linux/amd64`, `linux/arm64`, or
`darwin/amd64`).
When the current builder instance is backed by the `docker-container` driver,
you can specify multiple platforms together. In this case, it builds a manifest
list which contains images for all specified architectures. When you use this
image in [`docker run`](../../engine/reference/commandline/run.md) or
[`docker service`](../../engine/reference/commandline/service.md), Docker picks
the correct image based on the node's platform.
You can build multi-platform images using three different strategies that are
supported by Buildx and Dockerfiles:
1. Using the QEMU emulation support in the kernel
2. Building on multiple native nodes using the same builder instance
3. Using a stage in Dockerfile to cross-compile to different architectures
QEMU is the easiest way to get started if your node already supports it (for
example. if you are using Docker Desktop). It requires no changes to your
Dockerfile and BuildKit automatically detects the secondary architectures that
are available. When BuildKit needs to run a binary for a different architecture,
it automatically loads it through a binary registered in the `binfmt_misc`
handler.
For QEMU binaries registered with `binfmt_misc` on the host OS to work
transparently inside containers, they must be statically compiled and registered
with the `fix_binary` flag. This requires a kernel >= 4.8 and
binfmt-support >= 2.1.7. You can check for proper registration by checking if
`F` is among the flags in `/proc/sys/fs/binfmt_misc/qemu-*`. While Docker
Desktop comes preconfigured with `binfmt_misc` support for additional platforms,
for other installations it likely needs to be installed using
[`tonistiigi/binfmt`](https://github.com/tonistiigi/binfmt){:target="_blank" rel="noopener" class="_"}
image.
```console
$ docker run --privileged --rm tonistiigi/binfmt --install all
```
Using multiple native nodes provide better support for more complicated cases
that are not handled by QEMU and generally have better performance. You can
add additional nodes to the builder instance using the `--append` flag.
Assuming contexts `node-amd64` and `node-arm64` exist in `docker context ls`;
```console
$ docker buildx create --use --name mybuild node-amd64
mybuild
$ docker buildx create --append --name mybuild node-arm64
$ docker buildx build --platform linux/amd64,linux/arm64 .
```
Finally, depending on your project, the language that you use may have good
support for cross-compilation. In that case, multi-stage builds in Dockerfiles
can be effectively used to build binaries for the platform specified with
`--platform` using the native architecture of the build node. A list of build
arguments like `BUILDPLATFORM` and `TARGETPLATFORM` is available automatically
inside your Dockerfile and can be leveraged by the processes running as part
of your build.
```dockerfile
# syntax=docker/dockerfile:1
FROM --platform=$BUILDPLATFORM golang:alpine AS build
ARG TARGETPLATFORM
ARG BUILDPLATFORM
RUN echo "I am running on $BUILDPLATFORM, building for $TARGETPLATFORM" > /log
FROM alpine
COPY --from=build /log /log
```

View File

@ -0,0 +1,37 @@
---
title: Using multiple builders
description: How to instantiate and work with multiple builders
keywords: build, buildx, buildkit, builders, build drivers
---
By default, Buildx uses the `docker` driver if it is supported, providing a user
experience very similar to the native `docker build`. Note that you must use a
local shared daemon to build your applications.
Buildx allows you to create new instances of isolated builders. You can use this
to get a scoped environment for your CI builds that does not change the state of
the shared daemon, or for isolating builds for different projects. You can create
a new instance for a set of remote nodes, forming a build farm, and quickly
switch between them.
You can create new instances using the [`docker buildx create`](../../engine/reference/commandline/buildx_create.md)
command. This creates a new builder instance with a single node based on your
current configuration.
To use a remote node you can specify the `DOCKER_HOST` or the remote context name
while creating the new builder. After creating a new instance, you can manage its
lifecycle using the [`docker buildx inspect`](../../engine/reference/commandline/buildx_inspect.md),
[`docker buildx stop`](../../engine/reference/commandline/buildx_stop.md), and
[`docker buildx rm`](../../engine/reference/commandline/buildx_rm.md) commands.
To list all available builders, use [`docker buildx ls`](../../engine/reference/commandline/buildx_ls.md).
After creating a new builder you can also append new nodes to it.
To switch between different builders, use [`docker buildx use <name>`](../../engine/reference/commandline/buildx_use.md).
After running this command, the build commands will automatically use this
builder.
Docker also features a [`docker context`](../../engine/reference/commandline/context.md)
command that you can use to provide names for remote Docker API endpoints. Buildx
integrates with `docker context` to ensure all the contexts automatically get a
default builder instance. You can also set the context name as the target when
you create a new builder instance or when you add a node to it.

View File

@ -1,7 +1,7 @@
---
title: Hello Build
description: Build Hello World
keywords: build, buildx, buildkit, getting started, Dockerfile, image layers, build instructions, build context
keywords: build, buildx, buildkit, getting started, dockerfile, image layers, build instructions, build context
---
## Hello Build!

View File

@ -27,3 +27,57 @@ BuildKit is the backend evolution from the Legacy Builder, it comes with new
and much improved functionality that can be powerful tools for improving your
builds' performance or reusability of your Dockerfiles, and it also introduces
support for complex scenarios.
## Docker Build features
Docker Build is way more than your `docker build` command and is not only about packaging your code, its a whole ecosystem of tools and features that support you not only with common workflow tasks but also provides you with support for more complex and advanced scenarios.
Heres an overview of all the use cases with which Build can support you:
### Building your images
* **Packaging your software**
Bundle and package your code to run anywhere, from your local Docker Desktop, to Docker Engine and Kubernetes on the cloud.
To get started with Build, see the [Hello Build](hellobuild.md) page.
* **Choosing a build driver**
Run Buildx with different configurations depending on the scenario you are
working on, regardless of whether you are using your local machine or a remote
compute cluster, all from the comfort of your local working environment.
For more information on drivers, see the [drivers guide](buildx/drivers/index.md).
* **Optimizing builds with cache management**
Improve build performance by using a persistent shared build cache to avoid repeating costly operations such as package installations, downloading files from the internet, or code build steps.
* **Creating build-once, run-anywhere with multi-platform builds**
Collaborate across platforms with one build artifact.
See [Build multi-platform images](buildx/multiplatform-images.md).
### Automating your builds
* **Integrating with GitHub**
Automate your image builds to run in GitHub actions using the official docker build actions. See:
* [GitHub Action to build and push Docker images with Buildx](https://github.com/docker/build-push-action).
* [GitHub Action to extract metadata from Git reference and GitHub events](https://github.com/docker/metadata-action/).
* **Orchestrating builds across complex projects together**
Connect your builds together and easily parameterize your images using buildx bake.
See [High-level build options with Bake](bake/index.md).
### Customizing your Builds
* **Select your build output format**
Choose from a variety of available output formats, to export any artifact you like from BuildKit, not just docker images.
See [Set the export action for the build result](../engine/reference/commandline/buildx_build.md/#output).
* **Managing build secrets**
Securely access protected repositories and resources at build time without leaking data into the final build or the cache.
### Extending BuildKit
* **Custom syntax on Dockerfile**
Use experimental versions of the Dockerfile frontend, or even just bring your own to BuildKit using the power of custom frontends.
See also the [Syntax directive](../engine/reference/builder/#syntax).
* **Configure BuildKit**
Take a deep dive into the internal BuildKit configuration to get the most out of your builds.
See also [`buildkitd.toml`](https://github.com/moby/buildkit/blob/master/docs/buildkitd.toml.md), the configuration file for `buildkitd`.

View File

@ -6,15 +6,14 @@ title: Compose command compatibility with docker-compose
The `compose` command in the Docker CLI supports most of the `docker-compose` commands and flags. It is expected to be a drop-in replacement for `docker-compose`.
If you see any Compose functionality that is not available in the `compose` command, create an issue in the [Compose](https://github.com/docker/compose/issues){:target="_blank" rel="noopener"
class="_"} GitHub repository, so we can prioritize it.
If you see any Compose functionality that is not available in the `compose` command, create an issue in the [Compose](https://github.com/docker/compose/issues){:target="_blank" rel="noopener" class="_"} GitHub repository, so we can prioritize it.
## Commands or flags not yet implemented
The following commands have not been implemented yet, and may be implemented at a later time.
Let us know if these commands are a higher priority for your use cases.
`compose build --memory`: This option is not yet supported by buildkit. The flag is currently supported, but is hidden to avoid breaking existing Compose usage. It does not have any effect.
`compose build --memory`: This option is not yet supported by BuildKit. The flag is currently supported, but is hidden to avoid breaking existing Compose usage. It does not have any effect.
## Flags that will not be implemented

View File

@ -302,4 +302,4 @@ build:
## Implementations
* [docker-compose](https://docs.docker.com/compose)
* [buildX bake](https://docs.docker.com/buildx/working-with-buildx/)
* [buildx bake](../../build/bake/index.md)

View File

@ -31,7 +31,7 @@ the rules described in
To use multiple override files, or an override file with a different name, you
can use the `-f` option to specify the list of files. Compose merges files in
the order they're specified on the command line. See the
[`docker-compose` command reference](reference/index.md) for more information
[`docker compose` command reference](reference/index.md) for more information
about using `-f`.
When you use multiple configuration files, you must make sure all paths in the
@ -99,7 +99,7 @@ cache:
- 6379:6379
```
When you run `docker-compose up` it reads the overrides automatically.
When you run `docker compose up` it reads the overrides automatically.
Now, it would be nice to use this Compose app in a production environment. So,
create another override file (which might be stored in a different git
@ -122,7 +122,7 @@ cache:
To deploy with this production Compose file you can run
```console
$ docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
$ docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d
```
This deploys all three services using the configuration in
@ -135,7 +135,7 @@ production.
#### Administrative tasks
Another common use case is running adhoc or administrative tasks against one
Another common use case is running when necessary or administrative tasks against one
or more services in a Compose app. This example demonstrates running a
database backup.
@ -161,11 +161,11 @@ export or backup.
- db
```
To start a normal environment run `docker-compose up -d`. To run a database
To start a normal environment run `docker compose up -d`. To run a database
backup, include the `docker-compose.admin.yml` as well.
```console
$ docker-compose -f docker-compose.yml -f docker-compose.admin.yml \
$ docker compose -f docker-compose.yml -f docker-compose.admin.yml \
run dbadmin db-backup
```

View File

@ -63,13 +63,13 @@ or the [`COMPOSE_PROJECT_NAME` environment variable](reference/envvars.md#compos
## What's the difference between `up`, `run`, and `start`?
Typically, you want `docker-compose up`. Use `up` to start or restart all the
Typically, you want `docker compose up`. Use `up` to start or restart all the
services defined in a `docker-compose.yml`. In the default "attached"
mode, you see all the logs from all the containers. In "detached" mode (`-d`),
Compose exits after starting the containers, but the containers continue to run
in the background.
The `docker-compose run` command is for running "one-off" or "adhoc" tasks. It
The `docker compose run` command is for running "one-off" or "adhoc" tasks. It
requires the service name you want to run and only starts containers for services
that the running service depends on. Use `run` to run tests or perform
an administrative task such as removing or adding data to a data volume
@ -77,18 +77,18 @@ container. The `run` command acts like `docker run -ti` in that it opens an
interactive terminal to the container and returns an exit status matching the
exit status of the process in the container.
The `docker-compose start` command is useful only to restart containers
The `docker compose start` command is useful only to restart containers
that were previously created, but were stopped. It never creates new
containers.
## Can I use json instead of yaml for my Compose file?
## Can I use JSON instead of YAML for my Compose file?
Yes. [Yaml is a superset of json](https://stackoverflow.com/a/1729545/444646) so
any JSON file should be valid Yaml. To use a JSON file with Compose,
Yes. [YAML is a superset of JSON](https://stackoverflow.com/a/1729545/444646) so
any JSON file should be valid YAML. To use a JSON file with Compose,
specify the filename to use, for example:
```console
$ docker-compose -f docker-compose.json up
$ docker compose -f docker-compose.json up
```
## Should I include my code with `COPY`/`ADD` or a volume?

View File

@ -272,7 +272,7 @@ If you get runtime errors indicating an application file is not found, a volume
mount is denied, or a service cannot start, try enabling file or drive sharing.
Volume mounting requires shared drives for projects that live outside of
`C:\Users` (Windows) or `/Users` (Mac), and is required for _any_ project on
Docker Desktop for Windows that uses [Linux containers](../desktop/windows/index.md#switch-between-windows-and-linux-containers).
Docker Desktop for Windows that uses [Linux containers](../desktop/faqs/windowsfaqs.md#how-do-i-switch-between-windows-and-linux-containers).
For more information, see [File sharing](../desktop/settings/mac.md#file-sharing) on Docker
for Mac, and the general examples on how to
> [Manage data in containers](../storage/volumes.md).

View File

@ -6,7 +6,9 @@ title: Enabling GPU access with Compose
Compose services can define GPU device reservations if the Docker host contains such devices and the Docker Daemon is set accordingly. For this, make sure to install the [prerequisites](../config/containers/resource_constraints.md#gpu) if you have not already done so.
The examples in the following sections focus specifically on providing service containers access to GPU devices with Docker Compose. You can use either `docker-compose` or `docker compose` commands.
The examples in the following sections focus specifically on providing service containers access to GPU devices with Docker Compose.
You can use either `docker-compose` or `docker compose` commands.
See also, [Compose command compatibility with docker-compose](cli-command-compatibility.md).
### Use of service `runtime` property from Compose v2.3 format (legacy)
@ -60,7 +62,7 @@ services:
Run with Docker Compose:
```console
$ docker-compose up
$ docker compose up
Creating network "gpu_default" with the default driver
Creating gpu_test_1 ... done
Attaching to gpu_test_1
@ -102,7 +104,7 @@ services:
```
```console
$ docker-compose up
$ docker compose up
Creating network "gpu_default" with the default driver
Creating gpu_test_1 ... done
Attaching to gpu_test_1
@ -161,7 +163,7 @@ services:
```
```sh
$ docker-compose up
$ docker compose up
...
Created TensorFlow device (/device:GPU:0 with 13970 MB memory -> physical GPU (device: 0, name: Tesla T4, pci bus id: 0000:00:1b.0, compute capability: 7.5)
...

View File

@ -29,7 +29,7 @@ anywhere.
2. Define the services that make up your app in `docker-compose.yml`
so they can be run together in an isolated environment.
3. Run `docker compose up` and the [Docker compose command](#compose-v2-and-the-new-docker-compose-command) starts and runs your entire app. You can alternatively run `docker-compose up` using the docker-compose binary.
3. Run `docker compose up` and the [Docker compose command](#compose-v2-and-the-new-docker-compose-command) starts and runs your entire app. You can alternatively run `docker-compose up` using Compose standalone(`docker-compose` binary).
A `docker-compose.yml` looks like this:
@ -132,7 +132,7 @@ for it can be defined with the `--project-directory` command line option.
### Preserve volume data when containers are created
Compose preserves all volumes used by your services. When `docker-compose up`
Compose preserves all volumes used by your services. When `docker compose up`
runs, if it finds any containers from previous runs, it copies the volumes from
the old container to the new container. This process ensures that any data
you've created in volumes isn't lost.
@ -190,9 +190,9 @@ environment in which to run tests. Compose provides a convenient way to create
and destroy isolated testing environments for your test suite. By defining the full environment in a [Compose file](compose-file/index.md), you can create and destroy these environments in just a few commands:
```console
$ docker-compose up -d
$ docker compose up -d
$ ./run_tests
$ docker-compose down
$ docker compose down
```
### Single host deployments

View File

@ -34,7 +34,7 @@ services:
- "8001:5432"
```
When you run `docker-compose up`, the following happens:
When you run `docker compose up`, the following happens:
1. A network called `myapp_default` is created.
2. A container is created using `web`'s configuration. It joins the network
@ -68,7 +68,7 @@ look like `postgres://{DOCKER_IP}:8001`.
## Update containers
If you make a configuration change to a service and run `docker-compose up` to update it, the old container is removed and the new one joins the network under a different IP address but the same name. Running containers can look up that name and connect to the new address, but the old address stops working.
If you make a configuration change to a service and run `docker compose up` to update it, the old container is removed and the new one joins the network under a different IP address but the same name. Running containers can look up that name and connect to the new address, but the old address stops working.
If any containers have connections open to the old container, they are closed. It is a container's responsibility to detect this condition, look up the name again and reconnect.

View File

@ -35,7 +35,7 @@ Once you've got a second configuration file, tell Compose to use it with the
`-f` option:
```console
$ docker-compose -f docker-compose.yml -f production.yml up -d
$ docker compose -f docker-compose.yml -f production.yml up -d
```
See [Using multiple compose files](extends.md#different-environments) for a more
@ -48,8 +48,8 @@ recreate your app's containers. To redeploy a service called
`web`, use:
```console
$ docker-compose build web
$ docker-compose up --no-deps -d web
$ docker compose build web
$ docker compose up --no-deps -d web
```
This first rebuilds the image for `web` and then stop, destroy, and recreate
@ -60,9 +60,9 @@ recreating any services which `web` depends on.
You can use Compose to deploy an app to a remote Docker host by setting the
`DOCKER_HOST`, `DOCKER_TLS_VERIFY`, and `DOCKER_CERT_PATH` environment variables
appropriately.
appropriately. See also [Compose CLI environment variables](../compose/reference/envvars.md).
Once you've set up your environment variables, all the normal `docker-compose`
Once you've set up your environment variables, all the normal `docker compose`
commands work with no further configuration.
## Compose documentation

View File

@ -46,7 +46,7 @@ Here the services `frontend` and `phpmyadmin` are assigned to the profiles
respective profiles are enabled.
Services without a `profiles` attribute will _always_ be enabled, i.e. in this
case running `docker-compose up` would only start `backend` and `db`.
case running `docker compose up` would only start `backend` and `db`.
Valid profile names follow the regex format of `[a-zA-Z0-9][a-zA-Z0-9_.-]+`.
@ -61,8 +61,8 @@ To enable a profile supply the `--profile` [command-line option](reference/index
use the [`COMPOSE_PROFILES` environment variable](reference/envvars.md#compose_profiles):
```sh
$ docker-compose --profile debug up
$ COMPOSE_PROFILES=debug docker-compose up
$ docker compose --profile debug up
$ COMPOSE_PROFILES=debug docker compose up
```
The above command would both start your application with the `debug` profile enabled.
@ -73,8 +73,8 @@ Multiple profiles can be specified by passing multiple `--profile` flags or
a comma-separated list for the `COMPOSE_PROFILES` environment variable:
```sh
$ docker-compose --profile frontend --profile debug up
$ COMPOSE_PROFILES=frontend,debug docker-compose up
$ docker compose --profile frontend --profile debug up
$ COMPOSE_PROFILES=frontend,debug docker compose up
```
## Auto-enabling profiles and dependency resolution
@ -104,14 +104,14 @@ services:
```sh
# will only start backend and db
$ docker-compose up -d
$ docker compose up -d
# this will run db-migrations (and - if necessary - start db)
# by implicitly enabling profile `tools`
$ docker-compose run db-migrations
$ docker compose run db-migrations
```
But keep in mind that `docker-compose` will only automatically enable the
But keep in mind that `docker compose` will only automatically enable the
profiles of the services on the command line and not of any dependencies. This
means that all services the targeted service `depends_on` must have a common
profile with it, be always enabled (by omitting `profiles`) or have a matching
@ -142,14 +142,14 @@ services:
```sh
# will only start "web"
$ docker-compose up -d
$ docker compose up -d
# this will start mock-backend (and - if necessary - db)
# by implicitly enabling profile `dev`
$ docker-compose up -d mock-backend
$ docker compose up -d mock-backend
# this will fail because profile "dev" is disabled
$ docker-compose up phpmyadmin
$ docker compose up phpmyadmin
```
Although targeting `phpmyadmin` will automatically enable its profiles - i.e.
@ -166,8 +166,8 @@ or enable a profile of `db` explicitly:
```sh
# profile "debug" is enabled automatically by targeting phpmyadmin
$ docker-compose --profile dev up phpmyadmin
$ COMPOSE_PROFILES=dev docker-compose up phpmyadmin
$ docker compose --profile dev up phpmyadmin
$ COMPOSE_PROFILES=dev docker compose up phpmyadmin
```

View File

@ -4,139 +4,129 @@ keywords: fig, composition, compose, docker, orchestration, cli, reference
title: Compose CLI environment variables
---
Several environment variables are available for you to configure the Docker Compose command-line behaviour.
Variables starting with `DOCKER_` are the same as those used to configure the
Docker command-line client. If you're using `docker-machine`, then the `eval "$(docker-machine env my-docker-vm)"` command should set them to their correct values. (In this example, `my-docker-vm` is the name of a machine you created.)
> **Note**: Some of these variables can also be provided using an
> [environment file](../env-file.md).
In this section you can find the list of pre-defined environment variables you can use to configure the Docker Compose command-line behavior.
**See also** [Declare default environment variables in file](../env-file.md) to check how to declare default environment variables in an environment file named `.env` placed in the project directory.
## COMPOSE\_PROJECT\_NAME
Sets the project name. This value is prepended along with the service name to
the container on start up. For example, if your project name is `myapp` and it
includes two services `db` and `web`, then Compose starts containers named
`myapp-db-1` and `myapp-web-1` respectively.
the container's name on startup.
Setting this is optional. If you do not set this, the `COMPOSE_PROJECT_NAME`
defaults to the `basename` of the project directory. See also the `-p`
[command-line option](index.md).
For example, if your project name is `myapp` and it includes two services `db` and `web`,
then Compose starts containers named `myapp-db-1` and `myapp-web-1` respectively.
* **Defaults to:** the `basename` of the project directory.
**See also** the [command-line options overview](index.md#command-options-overview-and-help) and [using `-p` to specify a project name](index.md#use--p-to-specify-a-project-name).
## COMPOSE\_FILE
Specify the path to a Compose file. If not provided, Compose looks for a file named
`docker-compose.yml` in the current directory and then each parent directory in
succession until a file by that name is found.
Specifies the path to a Compose file. Specifying multiple Compose files is supported.
This variable supports multiple Compose files separated by a path separator (on
Linux and macOS the path separator is `:`, on Windows it is `;`). For example:
`COMPOSE_FILE=docker-compose.yml:docker-compose.prod.yml`. The path separator
can also be customized using `COMPOSE_PATH_SEPARATOR`.
* **Default behavior:** If not provided, Compose looks for a file named `compose.yaml` or `docker-compose.yaml` in the current directory and, if not found, then Compose searches each parent directory recursively until a file by that name is found.
See also the `-f` [command-line option](index.md).
* **Default separator:** When specifying multiple Compose files, the path separators are, by default, on:
* Mac and Linux: `:` (colon),
* Windows: `;` (semicolon).
The path separator can also be customized using `COMPOSE_PATH_SEPARATOR`.
Example: `COMPOSE_FILE=docker-compose.yml:docker-compose.prod.yml`.
**See also** the [command-line options overview](index.md#command-options-overview-and-help) and [using `-f` to specify name and path of one or more Compose files](index.md#use--f-to-specify-name-and-path-of-one-or-more-compose-files).
## COMPOSE\_PROFILES
Specify one or multiple active profiles to enable. Calling `docker-compose up`
with `COMPOSE_PROFILES=frontend` will start the services with the profile
`frontend` and services without specified profiles.
Specifies one or more profiles to be enabled on `compose up` execution.
Services with matching profiles are started **as well as any services for which no profile has been defined**.
You can specify a list of profiles separated with a comma:
`COMPOSE_PROFILES=frontend,debug` will enable the profiles `frontend` and
`debug`.
For example, calling `docker compose up`with `COMPOSE_PROFILES=frontend` selects services with the
`frontend` profile as well as any services without a profile specified.
See also [_Using profiles with Compose_](../profiles.md) and the `--profile`
[command-line option](index.md#use---profile-to-specify-one-or-more-active-profiles).
## COMPOSE\_API\_VERSION
* **Default separator:** specify a list of profiles using a comma as separator.
Example: `COMPOSE_PROFILES=frontend,debug`
This example would enable all services matching both the `frontend` and `debug` profiles **and services without a profile**.
The Docker API only supports requests from clients which report a specific
version. If you receive a `client and server don't have same version` error using
`docker-compose`, you can workaround this error by setting this environment
variable. Set the version value to match the server version.
Setting this variable is intended as a workaround for situations where you need
to run temporarily with a mismatch between the client and server version. For
example, if you can upgrade the client but need to wait to upgrade the server.
Running with this variable set and a known mismatch does prevent some Docker
features from working properly. The exact features that fail would depend on the
Docker client and server versions. For this reason, running with this variable
set is only intended as a workaround and it is not officially supported.
If you run into problems running with this set, resolve the mismatch through
upgrade and remove this setting to see if your problems resolve before notifying
support.
**See also** [Using profiles with Compose](../profiles.md) and the [`--profile` command-line option](index.md#use---profile-to-specify-one-or-more-active-profiles).
## DOCKER\_HOST
Sets the URL of the `docker` daemon. As with the Docker client, defaults to `unix:///var/run/docker.sock`.
Sets the URL of the Docker daemon.
* **Defaults to:** `unix:///var/run/docker.sock`(same as with the Docker client).
## DOCKER\_TLS\_VERIFY
When set to anything other than an empty string, enables TLS communication with
the `docker` daemon.
See `DOCKER_TLS_VERIFY` on the [Use the Docker command line](../../../engine/reference/commandline/cli/#environment-variables){:target="_blank" rel="noopener" class="_"} page.
## DOCKER\_CERT\_PATH
Configures the path to the `ca.pem`, `cert.pem`, and `key.pem` files used for TLS verification. Defaults to `~/.docker`.
Configures the path to the `ca.pem`, `cert.pem`, and `key.pem` files used for TLS verification.
* **Defaults to:** `~/.docker`.
## COMPOSE\_HTTP\_TIMEOUT
Configures the time (in seconds) a request to the Docker daemon is allowed to hang before Compose considers
it failed. Defaults to 60 seconds.
## COMPOSE\_TLS\_VERSION
Configure which TLS version is used for TLS communication with the `docker`
daemon. Defaults to `TLSv1`.
Supported values are: `TLSv1`, `TLSv1_1`, `TLSv1_2`.
See, `DOCKER_CERT_PATH` on the [Use the Docker command line](../../../engine/reference/commandline/cli/#environment-variables){:target="_blank" rel="noopener" class="_"} page.
## COMPOSE\_CONVERT\_WINDOWS\_PATHS
Enable path conversion from Windows-style to Unix-style in volume definitions.
Users of Docker Machine on Windows should always set this. Defaults to `0`.
Supported values: `true` or `1` to enable, `false` or `0` to disable.
When enabled, Compose performs path conversion from Windows-style to Unix-style in volume definitions.
* **Supported values:**
* `true` or `1`, to enable,
* `false` or `0`, to disable.
* **Defaults to:** `0`.
## COMPOSE\_PATH\_SEPARATOR
If set, the value of the `COMPOSE_FILE` environment variable is separated
using this character as path separator.
Specifies a different path separator for items listed in `COMPOSE_FILE`.
## COMPOSE\_FORCE\_WINDOWS\_HOST
If set, volume declarations using the [short syntax](../compose-file/compose-file-v3.md#short-syntax-3)
are parsed assuming the host path is a Windows path, even if Compose is
running on a UNIX-based system.
Supported values: `true` or `1` to enable, `false` or `0` to disable.
* **Defaults to:**
* On Mac and Linux to `:`,
* On Windows to`;`.
## COMPOSE\_IGNORE\_ORPHANS
If set, Compose doesn't try to detect orphaned containers for the project.
Supported values: `true` or `1` to enable, `false` or `0` to disable.
When enabled, Compose doesn't try to detect orphaned containers for the project.
## COMPOSE\_PARALLEL\_LIMIT
* **Supported values:**
* `true` or `1`, to enable,
* `false` or `0`, to disable.
* **Defaults to:** `0`.
Sets a limit for the number of operations Compose can execute in parallel. The
default value is `64`, and may not be set lower than `2`.
## Deprecated in Compose v2
## COMPOSE\_INTERACTIVE\_NO\_CLI
>**Important**
>
> The environment variables listed below are deprecated in v2.
If set, Compose doesn't attempt to use the Docker CLI for interactive `run`
and `exec` operations. This option is not available on Windows where the CLI
is required for the aforementioned operations.
Supported: `true` or `1` to enable, `false` or `0` to disable.
### COMPOSE\_API\_VERSION
## COMPOSE\_DOCKER\_CLI\_BUILD
Deprecated in v2.
By default the API version is negotiated with the server. Use `DOCKER_API_VERSION`.
See `DOCKER_API_VERSION` on the [Use the Docker command line](../../../engine/reference/commandline/cli/#environment-variables){:target="_blank" rel="noopener" class="_"} page.
Configure whether to use the Compose python client for building images or the
native docker cli. By default, Compose uses the `docker` CLI to perform builds,
which allows you to use [BuildKit](../../develop/develop-images/build_enhancements.md#to-enable-buildkit-builds)
to perform builds.
### COMPOSE\_HTTP\_TIMEOUT
Set `COMPOSE_DOCKER_CLI_BUILD=0` to disable native builds, and to use the built-in
python client.
Deprecated in v2.
### COMPOSE\_TLS\_VERSION
Deprecated in v2.
### COMPOSE\_FORCE\_WINDOWS\_HOST
Deprecated in v2.
### COMPOSE\_PARALLEL\_LIMIT
Deprecated in v2.
### COMPOSE\_INTERACTIVE\_NO\_CLI
Deprecated in v2.
As v2 now uses the vendored code of [Docker CLI](https://github.com/docker/cli){:target="_blank" rel="noopener" class="_"}.
### COMPOSE\_DOCKER\_CLI\_BUILDx
Deprecated in v2.
Use `DOCKER_BUILDKIT` to select between BuildKit and the classic builder. If `DOCKER_BUILDKIT=0` then `docker build` uses the classic builder to build images.
## Related information

View File

@ -7,6 +7,40 @@ redirect_from:
- /release-notes/docker-compose/
---
## 2.7.0
(2022-07-20)
### Enhancements
- Added support for environment secrets during build step. Fixes [compose#9606](https://github.com/docker/compose/issues/9606){:target="_blank" rel="noopener" class="_"}.
### Bug fixes
- Networks: prevented issues due to duplicate names. Fixes [moby/moby#18864](https://github.com/moby/moby/issues/18864){:target="_blank" rel="noopener" class="_"}.
- Fixed issue with close networks name on `compose up` and `compose down` commands. Fixes [compose#9630](https://github.com/docker/compose/issues/9044){:target="_blank" rel="noopener" class="_"}.
- Used appropriate dependency condition for one-shot containers when running `compose up --wait`. Fixes [compose#9606](https://github.com/docker/compose/pull/9572){:target="_blank" rel="noopener" class="_"}.
- Fixed environment variable expansion.
- Validated depended-on services exist in consistency check. Fixes [compose#8910](https://github.com/docker/compose/issues/8910){:target="_blank" rel="noopener" class="_"}.
- Fixed hash usage in environment values. Fixes [compose#9509](https://github.com/docker/compose/issues/9509){:target="_blank" rel="noopener" class="_"}.
- Docker Build: added fix to respect dependency order for classic builder. Fixes [compose#8538](https://github.com/docker/compose/issues/8538){:target="_blank" rel="noopener" class="_"}.
- Fixed panic caused by empty string argument. Fixes [compose-switch#35](https://github.com/docker/compose-switch/issues/35){:target="_blank" rel="noopener" class="_"}.
- Fixed start/restart as to not impact one-off containers. Fixes [compose#9509](https://github.com/docker/compose/issues/9044){:target="_blank" rel="noopener" class="_"}.
- Fixed to keep the container reference when `volumes_from` targets a container and not a service. Fixes [compose#8874](https://github.com/docker/compose/issues/8874){:target="_blank" rel="noopener" class="_"}.
- build.go: added fix to initialize `CustomLabels` map if `nil`.
### Changes
- Added new targets to build Compose binary before running e2e tests.
- CI: released workflow to open a PR on docs repo with latest changes.
- Dependencies upgrade: bumped [go to 1.18.4](https://github.com/golang/go/compare/go1.18.3...go1.18.4){:target="_blank" rel="noopener" class="_"}.
- Dependencies upgrade: bumped [compose-go to v1.2.9](https://github.com/compose-spec/compose-go/releases/tag/v1.2.9).
- e2e: added test for `ps`.
- e2e: split out pause tests and add more cases.
- e2e: add more start/stop test cases.
For the full change log or additional information, check the [Compose repository 2.7.0 release page](https://github.com/docker/compose/releases/tag/v2.7.0){:target="_blank" rel="noopener" class="_"}.
## 2.6.1
@ -26,7 +60,7 @@ redirect_from:
- Fixed parsing of properties `deploy.limits.cpus` and `deploy.limits.pids` to respect floating-point values. Fixes [#9542](https://github.com/docker/compose/issues/9542){:target="_blank" rel="noopener" class="_"} and [#9501](https://github.com/docker/compose/issues/9501){:target="_blank" rel="noopener" class="_"}.
- Fixed `compose ps` output to list all exposed ports. Fixes [#9257](https://github.com/docker/compose/issues/9527){:target="_blank" rel="noopener" class="_"}.
- Fixed spelling mistakes in `compose ps` code.
- Fixed `docker-compose`to honor `--no-ansi` even when deprecated option is requested.
- Fixed `docker compose` to honor `--no-ansi` even when deprecated option is requested.
- Fixed network name and network ID possible ambiguity.
@ -34,7 +68,6 @@ redirect_from:
- Upgrade: compose-go [v1.2.8](https://github.com/compose-spec/compose-go/releases/tag/v1.2.8){:target="_blank" rel="noopener" class="_"}.
- Upgrade: buildx [v0.8.2](https://github.com/docker/buildx/releases/tag/v0.8.2){:target="_blank" rel="noopener" class="_"}.
- Upgrade: containerd [v1.6.6](https://github.com/containerd/containerd/releases/tag/v1.6.6){:target="_blank" rel="noopener" class="_"}.
- Dependencies upgrade: bumped runc [to 1.1.2](https://github.com/opencontainers/runc/releases/tag/v1.1.2){:target="_blank" rel="noopener" class="_"}.
- Dependencies upgrade: bumped golang to [1.18.3](https://go.dev/doc/devel/release#go1.18.minor){:target="_blank" rel="noopener" class="_"}.
- Dependencies upgrade: bumped compose-go to [v1.2.8](https://github.com/compose-spec/compose-go/releases/tag/v1.2.8){:target="_blank" rel="noopener" class="_"}.
@ -113,7 +146,7 @@ For the full change log or additional information, check the [Compose repository
- Fixed panic with `compose down` command when `-p` flag specified. Fixes [#9353](https://github.com/docker/compose/issues/9353){:target="_blank" rel="noopener" class="_"}.
- Passed newly created project as input to start services (`docker compose up`). Fixes [#9356](https://github.com/docker/compose/issues/9356){:target="_blank" rel="noopener" class="_"}.
- Included services declared under links in docker-compose file as implicit dependencies. Fixes [#9301](https://github.com/docker/compose/issues/9301){:target="_blank" rel="noopener" class="_"}.
- Added changes `docker-compose pull` command to respect defined policy: 1) skip services configured as `pull_policy: never` and 2) ignore those with an existing image and `pull_policy: missing`. Fixes [#3660](https://github.com/docker/compose/issues/3660){:target="_blank" rel="noopener" class="_"}.
- Added changes `docker compose pull` command to respect defined policy: 1) skip services configured as `pull_policy: never` and 2) ignore those with an existing image and `pull_policy: missing`. Fixes [#3660](https://github.com/docker/compose/issues/3660){:target="_blank" rel="noopener" class="_"}.
- Error building project from resources is no longer ignored in order to prevent `down` panic. Fixes [#9383](https://github.com/docker/compose/issues/9383){:target="_blank" rel="noopener" class="_"}.
- Enforced project name to be lowercase. Fixes [#9378](https://github.com/docker/compose/issues/9378){:target="_blank" rel="noopener" class="_"}.
- Added support to build-time secrets. Fixes [#6358](https://github.com/docker/compose/issues/6358){:target="_blank" rel="noopener" class="_"}.
@ -185,7 +218,7 @@ For the full change log or additional information, check the [Compose repository
- Dependencies update: Bumped github.com/spf13/cobra from 1.3.0 to 1.4.0. Cobra library no longer requires Viper and all of its indirect dependencies [See cobra's release page](https://github.com/spf13/cobra/releases){:target="_blank" rel="noopener" class="_"}.
- Dependencies update: Bumped buildx from v0.7.1 to v0.8.0.
- Removed the need to get the original compose.yaml file to run 'docker compose kill'.
- `docker-compose down -v` now does not remove external volumes and networks as per the option's expected and documented behavior. Whenever project is specified it is also now used to enforce down to only remove resources listed in compose.yaml file.
- `docker compose down -v` now does not remove external volumes and networks as per the option's expected and documented behavior. Whenever project is specified it is also now used to enforce down to only remove resources listed in compose.yaml file.
Fixes [#9172](https://github.com/docker/compose/issues/9172){:target="_blank" rel="noopener" class="_"}, [#9145](https://github.com/docker/compose/issues/9145){:target="_blank" rel="noopener" class="_"}.
- Introduced changes to use RunExec and RunStart from docker/cli to handle all the interactive/tty/* terminal logic.
- Changed Compose API reference docs automation to pick up diffs code vs. docs.
@ -203,7 +236,7 @@ For the releases later than 1.29.2 and earlier than 2.3.4, please check the [Com
### Miscellaneous
- Removed the prompt to use `docker compose` in the `up` command.
- Removed the prompt to use `docker-compose` in the `up` command.
- Bumped `py` to `1.10.0` in `requirements-indirect.txt`.

File diff suppressed because one or more lines are too long

View File

@ -64,8 +64,7 @@ notoc: true
> **Deprecated**
>
> Docker Machine has been deprecated. Please use Docker Desktop instead. See [Docker Desktop for Mac](../desktop/mac/index.md)
> and [Docker Desktop for Windows](../desktop/windows/index.md).
> Docker Machine has been deprecated. Please use [Docker Desktop](../desktop/index.md) instead.
> You can also use other cloud provisioning tools.
{: .warning }

View File

@ -21,8 +21,7 @@ toc_max: 2
> **Deprecated**
>
> Docker Toolbox has been deprecated and is no longer in active development. Please
> use Docker Desktop instead. See [Docker Desktop for Mac](../desktop/mac/index.md)
> and [Docker Desktop for Windows](../desktop/windows/index.md).
> use Docker Desktop instead. See [Docker Desktop for Mac](../desktop/index.md)
{: .warning }
The source code for Toolbox has been archived, You can find the source code

View File

@ -49,7 +49,7 @@ If you want to set up user authentication for the extension, see [Authentication
## Create a Dockerfile
Use the Dockerfile below as a template and change it accodingly to suit your needs.
Use the Dockerfile below as a template and change it accordingly to suit your needs.
```Dockerfile
FROM node:14.17-alpine3.13 AS client-builder

View File

@ -8,7 +8,9 @@ toc_max: 2
Docker Extensions lets you use third-party tools within Docker Desktop to extend its functionality. There is no limit to the number of extensions you can install.
Docker Community members and partners can use our [SDK](extensions-sdk/index.md) to create new extensions.
You can explore the list of available extensions in [Docker Hub](https://hub.docker.com/search?q=&type=extension) or in the Extensions Marketplace within Docker Desktop.
Docker Community members and partners can use our [SDK](extensions-sdk/index.md) to create new extensions.
> **Beta**
>
@ -18,11 +20,7 @@ Docker Community members and partners can use our [SDK](extensions-sdk/index.md)
## Prerequisites
Docker Extensions is available as part of Docker Desktop 4.8.0 or a later release. Download and install Docker Desktop 4.8.0 or later:
* [Mac](mac/release-notes/index.md)
* [Windows](windows/release-notes/index.md)
* [Linux](linux/index.md)
Docker Extensions is available as part of Docker Desktop 4.8.0 or a later release. [Download and install Docker Desktop 4.8.0 or later](release-notes.md).
## Add an extension
@ -36,6 +34,7 @@ To add Docker Extensions:
2. From the Dashboard, select **Add Extensions** in the menu bar.
The Extensions Marketplace opens.
3. Browse the available extensions.
You can sort the list of extensions by **Recently added** or alphabetically.
4. Click **Install**.
From here, you can click **Open** to access the extension or install additional extensions. The extension also appears in the menu bar.
@ -86,10 +85,9 @@ Feedback can be given to an extension author through a dedicated Slack channel o
extension, select:
- Support
- Slack
- Issues
You'll be sent to a page outside of Docker Desktop to submit your feedback.
- Issues. You'll be sent to a page outside of Docker Desktop to submit your feedback.
If an extension does not provide a way for you to give feedback, contact us and we'll pass on the feedback for you.
If an extension does not provide a way for you to give feedback, contact us and we'll pass on the feedback for you. To provide feedback, select the **Give feedback** to the right of **Extensions Marketplace**
## Uninstall an extension
You can uninstall an extension at any time.

View File

@ -106,11 +106,7 @@ serial port) to a container as it requires support at the hypervisor level.
### Can I run Docker Desktop in nested virtualization scenarios?
Docker Desktop can run inside a Windows 10 VM running on apps like Parallels or
VMware Fusion on a Mac provided that the VM is properly configured. However,
problems and intermittent failures may still occur due to the way these apps
virtualize the hardware. For these reasons, **Docker Desktop is not supported in
nested virtualization scenarios**. It might work in some cases and not in others.
In general, Docker recommends running Docker Desktop natively on either Mac, Linux, or Windows. However, Docker Desktop for Windows can run inside a virtual desktop provided the virtual desktop is properly configured. For more information, see [Run Docker Desktop in a VM or VDI environment](../vm-vdi.md)
### Docker Desktop's UI appears green, distorted, or has visual artifacts. How do I fix this?

View File

@ -3,7 +3,7 @@ description: Frequently asked questions
keywords: desktop, linux, faqs
title: Frequently asked questions for Linux
redirect_from:
- desktop/linux/space
- /desktop/linux/space/
---
## Where does Docker Desktop store Linux containers?

View File

@ -3,7 +3,8 @@ description: Frequently asked questions
keywords: desktop, mac, faqs
title: Frequently asked questions for Mac
redirect_from:
- desktop/mac/space
- /desktop/mac/space/
- /docker-for-mac/space/
---
### What is Docker.app?

View File

@ -27,6 +27,6 @@ GitHub](https://github.com/docker/desktop-linux/issues){:target="_blank" rel="no
### ... Dev Environments
To report bugs or problems, visit [Dev Environments issues on Github](https://github.com/docker/dev-environments/issues){:target="_blank" rel="noopener" class="_"}.
To report bugs or problems, visit [Dev Environments issues on Github](https://github.com/docker/dev-environments/issues){:target="_blank" rel="noopener" class="_"}.
Alternatively, get in touch with us on the **#docker-dev-environments** channel in the [Docker Community Slack](https://dockercommunity.slack.com/messages){:target="_blank" rel="noopener" class="_"}.

View File

@ -3,33 +3,28 @@ description: Docker Dashboard
keywords: Docker Dashboard, manage, containers, gui, dashboard, images, user manual
title: Sign in and get started
redirect_from:
- /desktop/linux/
- /desktop/linux/index/
- /desktop/mac/
- /desktop/mac/index/
- /desktop/windows/
- /desktop/windows/index/
- /docker-for-mac/
- /docker-for-mac/index/
- /docker-for-mac/osx/
- /docker-for-mac/started/
- /docker-for-windows/
- /docker-for-windows/index/
- /docker-for-windows/started/
- /engine/installation/windows/
- /installation/windows/
- /mac/
- /mac/started/
- /mackit/
- /mackit/getting-started/
- /win/
- /windows/
- /windows/started/
- /winkit/
- /winkit/getting-started/
- /desktop/linux/index/
- /desktop/windows/index/
- /docker-for-mac/
- /docker-for-mac/index/
- /docker-for-mac/mutagen/
- /docker-for-mac/mutagen-caching/
- /docker-for-mac/osx/
- /docker-for-mac/started/
- /engine/installation/mac/
- /installation/mac/
- /mac/
- /mac/started/
- /mackit/
- /mackit/getting-started/
- /docker-for-mac/osxfs/
- /docker-for-mac/osxfs-caching/
- /desktop/mac/index/
---
## Quick Start Guide
@ -112,17 +107,3 @@ Digest: sha256:3c6b73ce467f04d4897d7a7439782721fd28ec9bf62ea2ad9e81a5fb7fb3ff96
Status: Downloaded newer image for molly/privateimage:latest
docker.io/molly/privateimage:latest
```
## Pause or resume Docker Desktop
You can pause your Docker Desktop session when you are not actively using it and save CPU resources on your machine. When you pause Docker Desktop, the Linux VM running Docker Engine is paused, the current state of all your containers are saved in memory, and all processes are frozen. This reduces the CPU usage and helps you retain a longer battery life on your laptop. You can resume Docker Desktop when you want by clicking the **Resume** option.
From the Docker menu, select![whale menu](images/whale-x.png){: .inline} and then **Pause** to pause Docker Desktop.
Docker Desktop displays the paused status on the Docker menu and on the **Containers**, **Images**, **Volumes**, and **Dev Environment** screens in Docker Dashboard. You can still access the **Preferences** (or **Settings** if you are a Windows user) and the **Troubleshoot** menu from the Dashboard when you've paused Docker Desktop.
Select ![whale menu](images/whale-x.png){: .inline} then **Resume** to resume Docker Desktop.
> **Note**
>
> When Docker Desktop is paused, running any commands in the Docker CLI will automatically resume Docker Desktop.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 60 KiB

View File

@ -1,7 +1,7 @@
---
description: Docker Desktop overview
keywords: Desktop, Docker, GUI, run, docker, local, machine, dashboard
title: Docker Desktop overview
title: Docker Desktop
redirect_from:
- /desktop/opensource/
- /docker-for-mac/opensource/
@ -26,9 +26,9 @@ Docker Desktop includes:
- [Docker Engine](../engine/index.md)
- Docker CLI client
- [Docker Compose](../compose/index.md)
-[Docker Content Trust](../engine/security/trust/index.md)
- [Docker Content Trust](../engine/security/trust/index.md)
- [Kubernetes](https://github.com/kubernetes/kubernetes/)
- [Credential Helper](https://github.com/docker/docker-credential-helpers/).
- [Credential Helper](https://github.com/docker/docker-credential-helpers/)
Docker Desktop works with your choice of development tools and languages and
gives you access to a vast library of certified images and templates in
@ -44,7 +44,7 @@ When you open Docker Desktop, the Docker Dashboard displays.
The **Containers** view provides a runtime view of all your containers and applications. It allows you to interact with containers and applications, and manage the lifecycle of your applications directly from your machine. This view also provides an intuitive interface to perform common actions to inspect, interact with, and manage your Docker objects including containers and Docker Compose-based applications. For more information, see [Explore running containers and applications](use-desktop/container.md).
The **Images** view displays a list of your Docker images and allows you to run an image as a container, pull the latest version of an image from Docker Hub, and inspect images. It also displays a summary of the vulnerability scanning report using Snyk. In addition, the **Images** view contains clean-up options to remove unwanted images from the disk to reclaim space. If you are logged in, you can also see the images you and your organization have shared on Docker Hub. For more information, see [Explore your images](use-desktop/images.md)
The **Images** view displays a list of your Docker images and allows you to run an image as a container, pull the latest version of an image from Docker Hub, and inspect images. It also displays a summary of the vulnerability scanning report using Snyk. In addition, the **Images** view contains clean-up options to remove unwanted images from the disk to reclaim space. If you are logged in, you can also see the images you and your organization have shared on Docker Hub. For more information, see [Explore your images](use-desktop/images.md).
The **Volumes** view displays a list of volumes and allows you to easily create and delete volumes and see which ones are being used. For more information, see [Explore volumes](use-desktop/volumes.md).

View File

@ -49,10 +49,10 @@ Recommended approach to install Docker Desktop on Debian:
1. Set up [Docker's package repository](../../engine/install/debian.md#set-up-the-repository).
2. Download latest DEB package from the [release](../release-notes.md) page.
2. Download latest [DEB package](https://desktop.docker.com/linux/main/amd64/docker-desktop-4.11.0-amd64.deb?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-linux-amd64).
3. Install the package with apt as follows:
```console
$ sudo apt-get update
$ sudo apt-get install ./docker-desktop-<version>-<arch>.deb
@ -112,4 +112,4 @@ Remove the `credsStore` and `currentContext` properties from `$HOME/.docker/conf
## Next steps
- Take a look at the [Get started](../../get-started/index.md) training modules to learn how to build an image and run it as a containerized application.
- Review the topics in [Develop with Docker](../../develop/index.md) to learn how to build new applications using Docker.
- Review the topics in [Develop with Docker](../../develop/index.md) to learn how to build new applications using Docker.

View File

@ -29,10 +29,10 @@ To install Docker Desktop on Fedora:
1. Set up [Docker's package repository](../../engine/install/fedora.md#set-up-the-repository).
2. Download latest RPM package from the [release](../release-notes.md) page.
2. Download latest [RPM package](https://desktop.docker.com/linux/main/amd64/docker-desktop-4.11.0-x86_64.rpm?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-linux-amd64).
3. Install the package with dnf as follows:
```console
$ sudo dnf install ./docker-desktop-<version>-<arch>.rpm
```

View File

@ -8,27 +8,26 @@ redirect_from:
This page contains information about system requirements, download URLs, and instructions on how to install and update Docker Desktop for Linux.
> Download Docker Desktop for Linux packages
> Follow the links below to view the distro-specific installation instructions:
>
> [DEB](https://desktop.docker.com/linux/main/amd64/docker-desktop-4.10.1-amd64.deb?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-linux-amd64){: .button .primary-btn }
> [RPM](https://desktop.docker.com/linux/main/amd64/docker-desktop-4.10.1-x86_64.rpm?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-linux-amd64){: .button .primary-btn }
*For checksums, see [Release notes](../release-notes.md)*
> * [Ubuntu](ubuntu.md)
> * [Debian](debian.md)
> * [Fedora](fedora.md)
## System requirements
To install Docker Desktop successfully, your Linux host must meet the following requirements:
- 64-bit kernel and CPU support for virtualization
- 64-bit kernel and CPU support for virtualization.
- KVM virtualization support. Follow the [KVM virtualization support instructions](#kvm-virtualization-support) to check if the KVM kernel modules are enabled and how to provide access to the kvm device.
- **QEMU must be version 5.2 or newer**. We recommend upgrading to the latest version.
- **QEMU must be version 5.2 or newer**. We recommend upgrading to the latest version.
- systemd init system.
- Gnome or KDE Desktop environment.
-For many Linux distros, the Gnome environment does not support tray icons. To add support for tray icons, you need to install a Gnome extension. For example, [AppIndicator](https://extensions.gnome.org/extension/615/appindicator-support/)).
- For many Linux distros, the Gnome environment does not support tray icons. To add support for tray icons, you need to install a Gnome extension. For example, [AppIndicator](https://extensions.gnome.org/extension/615/appindicator-support/)).
- At least 4 GB of RAM.
@ -65,7 +64,7 @@ Docker supports Docker Desktop on the current LTS release of the aforementioned
### KVM virtualization support
Docker Desktop runs a VM that requires [KVM support](https://www.linux-kvm.org).
Docker Desktop runs a VM that requires [KVM support](https://www.linux-kvm.org).
The `kvm` module should load automatically if the host has virtualization support. To load the module manually, run:
@ -270,9 +269,7 @@ Docker Desktop for Linux runs a Virtual Machine (VM) for the following reasons:
## Where to go next
- [Getting started](../linux/index.md) provides an overview of Docker Desktop on Linux, basic Docker command examples, how to get help or give feedback, and links to other topics about Docker Desktop on Linux.
- [Troubleshooting](../troubleshoot/overview.md) describes common problems, workarounds, how
to run and submit diagnostics, and submit issues.
- [Troubleshooting](../troubleshoot/overview.md) describes common problems, workarounds, how to run and submit diagnostics, and submit issues.
- [FAQs](../faqs/general.md) provide answers to frequently asked questions.
- [Release notes](../release-notes.md) lists component updates, new features, and improvements associated with Docker Desktop releases.
- [Get started with Docker](../../get-started/index.md) provides a general Docker tutorial.

View File

@ -3,8 +3,10 @@ description: How to install Docker Desktop on Mac
keywords: mac, install, download, run, docker, local
title: Install Docker Desktop on Mac
redirect_from:
- /docker-for-mac/install/
- /desktop/mac/install/
- /docker-for-mac/install/
- /engine/installation/mac/
- /installation/mac/
---
> **Update to the Docker Desktop terms**
@ -102,6 +104,7 @@ $ sudo hdiutil detach /Volumes/Docker
The `install` command accepts the following flags:
- `--accept-license`: accepts the [Docker Subscription Service Agreement](https://www.docker.com/legal/docker-subscription-service-agreement){: target="_blank" rel="noopener" class="_"} now, rather than requiring it to be accepted when the application is first run
- `--allowed-org=<org name>`: requires the user to sign in and be part of the specified Docker Hub organization when running the application
- `--user=<username>`: Runs the privileged helper service once during installation, then disables it at runtime. This removes the need for the user to grant root privileges on first run. For more information, see [Privileged helper permission requirements](../mac/permission-requirements.md#permission-requirements){: target="_blank" rel="noopener" class="_"}. To find the username, enter `ls /Users` in the CLI.
## Updates
@ -138,7 +141,6 @@ To uninstall Docker Desktop from your Mac:
## Where to go next
- [Getting started](../mac/index.md) provides an overview of Docker Desktop on Mac, basic Docker command examples, how to get help or give feedback, and links to other topics about Docker Desktop on Mac.
- [Docker Desktop for Apple silicon](../mac/apple-silicon.md) for detailed information about Docker Desktop for Apple silicon.
- [Troubleshooting](../troubleshoot/overview.md) describes common problems, workarounds, how
to run and submit diagnostics, and submit issues.

View File

@ -46,12 +46,12 @@ $ sudo apt install gnome-terminal
Recommended approach to install Docker Desktop on Ubuntu:
1. Set up [Docker's package repository](../../engine/install/ubuntu.md#set-up-the-repository).
1. Set up [Docker's package repository](../../engine/install/ubuntu.md#set-up-the-repository).
2. Download latest DEB package from the [release](../release-notes.md) page.
2. Download latest [DEB package](https://desktop.docker.com/linux/main/amd64/docker-desktop-4.11.0-amd64.deb?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-linux-amd64).
3. Install the package with apt as follows:
```console
$ sudo apt-get update
$ sudo apt-get install ./docker-desktop-<version>-<arch>.deb

View File

@ -3,14 +3,16 @@ description: How to install Docker Desktop for Windows
keywords: windows, install, download, run, docker, local
title: Install Docker Desktop on Windows
redirect_from:
- /docker-for-windows/install/
- /desktop/windows/install/
- /docker-ee-for-windows/install/
- /docker-for-windows/install-windows-home/
- /docker-for-windows/install/
- /ee/docker-ee/windows/docker-ee/
- /engine/installation/windows/
- /engine/installation/windows/docker-ee/
- /install/windows/docker-ee/
- /install/windows/ee-preview/
- /desktop/windows/install/
- /installation/windows/
---
> **Update to the Docker Desktop terms**
@ -18,7 +20,7 @@ redirect_from:
> Commercial use of Docker Desktop in larger enterprises (more than 250
> employees OR more than $10 million USD in annual revenue) now requires a paid
> subscription.
{: .important}
> {: .important}
Welcome to Docker Desktop for Windows. This page contains information about Docker Desktop for Windows system requirements, download URL, instructions to install and update Docker Desktop for Windows.
@ -26,7 +28,7 @@ Welcome to Docker Desktop for Windows. This page contains information about Dock
>
> [Docker Desktop for Windows](https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe){: .button .primary-btn }
*For checksums, see [Release notes](../release-notes.md)*
_For checksums, see [Release notes](../release-notes.md)_
## System requirements
@ -44,15 +46,16 @@ Your Windows machine must meet the following requirements to successfully instal
- Windows 11 64-bit: Home or Pro version 21H2 or higher, or Enterprise or Education version 21H2 or higher.
- Windows 10 64-bit: Home or Pro 21H1 (build 19043) or higher, or Enterprise or Education 20H2 (build 19042) or higher.
- Enable the WSL 2 feature on Windows. For detailed instructions, refer to the
[Microsoft documentation](https://docs.microsoft.com/en-us/windows/wsl/install-win10){: target="_blank" rel="noopener" class="_"}.
[Microsoft documentation](https://docs.microsoft.com/en-us/windows/wsl/install-win10){: target="_blank" rel="noopener" class="_"}.
- The following hardware prerequisites are required to successfully run
WSL 2 on Windows 10 or Windows 11:
WSL 2 on Windows 10 or Windows 11:
- 64-bit processor with [Second Level Address Translation (SLAT)](https://en.wikipedia.org/wiki/Second_Level_Address_Translation){: target="_blank" rel="noopener" class="_"}
- 4GB system RAM
- BIOS-level hardware virtualization support must be enabled in the
BIOS settings. For more information, see
[Virtualization](../troubleshoot/topics.md).
BIOS settings. For more information, see
[Virtualization](../troubleshoot/topics.md#virtualization).
- Download and install the [Linux kernel update package](https://docs.microsoft.com/windows/wsl/wsl2-kernel){: target="_blank" rel="noopener" class="_"}.
</div>
@ -63,16 +66,17 @@ WSL 2 on Windows 10 or Windows 11:
- Windows 11 64-bit: Pro version 21H2 or higher, or Enterprise or Education version 21H2 or higher.
- Windows 10 64-bit: Pro 21H1 (build 19043) or higher, or Enterprise or Education 20H2 (build 19042) or higher.
For Windows 10 and Windows 11 Home, see the system requirements in the [WSL 2 backend](#wsl-2-backend){: data-toggle="tab" data-target="#win-wsl2" } tab.
For Windows 10 and Windows 11 Home, see the system requirements in the [WSL 2 backend](#wsl-2-backend){: data-toggle="tab" data-target="#win-wsl2" } tab.
- Hyper-V and Containers Windows features must be enabled.
- The following hardware prerequisites are required to successfully run Client
Hyper-V on Windows 10:
Hyper-V on Windows 10:
- 64 bit processor with [Second Level Address Translation (SLAT)](https://en.wikipedia.org/wiki/Second_Level_Address_Translation){: target="_blank" rel="noopener" class="_"}
- 4GB system RAM
- BIOS-level hardware virtualization support must be enabled in the
BIOS settings. For more information, see
[Virtualization](../troubleshoot/topics.md).
BIOS settings. For more information, see
[Virtualization](../troubleshoot/topics.md#virtualization).
</div>
</div>
@ -85,26 +89,26 @@ Containers and images created with Docker Desktop are shared between all
user accounts on machines where it is installed. This is because all Windows
accounts use the same VM to build and run containers. Note that it is not possible to share containers and images between user accounts when using the Docker Desktop WSL 2 backend.
Nested virtualization scenarios, such as running Docker Desktop on a
VMWare or Parallels instance might work, but there are no guarantees. For
more information, see [Running Docker Desktop in nested virtualization scenarios](../troubleshoot/topics.md#running-docker-desktop-in-nested-virtualization-scenarios).
Running Docker Desktop inside a VMware ESXi or Azure VM is supported for Docker Business customers.
It requires enabling nested virtualization on the hypervisor first.
For more information, see [Running Docker Desktop in a VM or VDI environment](../vm-vdi.md).
### About Windows containers
Looking for information on using Windows containers?
* [Switch between Windows and Linux containers](../windows/index.md#switch-between-windows-and-linux-containers)
* [Switch between Windows and Linux containers](../faqs/windowsfaqs.md#how-do-i-switch-between-windows-and-linux-containers)
describes how you can toggle between Linux and Windows containers in Docker Desktop and points you to the tutorial mentioned above.
* [Getting Started with Windows Containers (Lab)](https://github.com/docker/labs/blob/master/windows/windows-containers/README.md)
- [Getting Started with Windows Containers (Lab)](https://github.com/docker/labs/blob/master/windows/windows-containers/README.md)
provides a tutorial on how to set up and run Windows containers on Windows 10, Windows Server 2016 and Windows Server 2019. It shows you how to use a MusicStore application
with Windows containers.
* Docker Container Platform for Windows [articles and blog
- Docker Container Platform for Windows [articles and blog
posts](https://www.docker.com/microsoft/) on the Docker website.
> **Note**
>
> To run Windows containers, you need Windows 10 or Windows 11 Professional or Enterprise edition.
Windows Home or Education editions will only allow you to run Linux containers.
> To run Windows containers, you need Windows 10 or Windows 11 Professional or Enterprise edition.
> Windows Home or Education editions will only allow you to run Linux containers.
## Install Docker Desktop on Windows
@ -112,21 +116,21 @@ Windows Home or Education editions will only allow you to run Linux containers.
1. Double-click **Docker Desktop Installer.exe** to run the installer.
If you haven't already downloaded the installer (`Docker Desktop Installer.exe`), you can get it from
[**Docker Hub**](https://hub.docker.com/editions/community/docker-ce-desktop-windows/).
It typically downloads to your `Downloads` folder, or you can run it from
the recent downloads bar at the bottom of your web browser.
If you haven't already downloaded the installer (`Docker Desktop Installer.exe`), you can get it from
[**Docker Hub**](https://hub.docker.com/editions/community/docker-ce-desktop-windows/).
It typically downloads to your `Downloads` folder, or you can run it from
the recent downloads bar at the bottom of your web browser.
2. When prompted, ensure the **Use WSL 2 instead of Hyper-V** option on the Configuration page is selected or not depending on your choice of backend.
If your system only supports one of the two options, you will not be able to select which backend to use.
If your system only supports one of the two options, you will not be able to select which backend to use.
3. Follow the instructions on the installation wizard to authorize the installer and proceed with the install.
4. When the installation is successful, click **Close** to complete the installation process.
5. If your admin account is different to your user account, you must add the user to the **docker-users** group. Run **Computer Management** as an **administrator** and navigate to **Local Users and Groups** > **Groups** > **docker-users**. Right-click to add the user to the group.
Log out and log back in for the changes to take effect.
Log out and log back in for the changes to take effect.
### Install from the command line
@ -149,12 +153,15 @@ start /w "" "Docker Desktop Installer.exe" install
```
The install command accepts the following flags:
- `--quiet`: suppresses information output when running the installer
- `--accept-license`: accepts the [Docker Subscription Service Agreement](https://www.docker.com/legal/docker-subscription-service-agreement){: target="_blank" rel="noopener" class="_"} now, rather than requiring it to be accepted when the application is first run
- `--no-windows-containers`: disables Windows containers integration
- `--allowed-org=<org name>`: requires the user to sign in and be part of the specified Docker Hub organization when running the application
- `--backend=<backend name>`: selects the backend to use for Docker Desktop, `hyper-v` or `wsl-2` (default)
- `--backend=<backend name>`: selects the default backend to use for Docker Desktop, `hyper-v`, `windows` or `wsl-2` (default)
If your admin account is different to your user account, you must add the user to the **docker-users** group:
```
net localgroup docker-users <user> /add
```
@ -165,20 +172,20 @@ Docker Desktop does not start automatically after installation. To start Docker
1. Search for Docker, and select **Docker Desktop** in the search results.
![search for Docker app](images/docker-app-search.png){:width="300px"}
![search for Docker app](images/docker-app-search.png){:width="300px"}
2. The Docker menu (![whale menu](images/whale-x.png){: .inline}) displays the Docker Subscription Service Agreement window. It includes a change to the terms of use for Docker Desktop.
{% include desktop-license-update.md %}
{% include desktop-license-update.md %}
3. Click the checkbox to indicate that you accept the updated terms and then click **Accept** to continue. Docker Desktop starts after you accept the terms.
> **Important**
>
> If you do not agree to the updated terms, the Docker Desktop application will close and you can no longer run Docker Desktop on your machine. You can choose to accept the terms at a later date by opening Docker Desktop.
{: .important}
> **Important**
>
> If you do not agree to the updated terms, the Docker Desktop application will close and you can no longer run Docker Desktop on your machine. You can choose to accept the terms at a later date by opening Docker Desktop.
> {: .important}
For more information, see [Docker Desktop License Agreement](../../subscription/index.md#docker-desktop-license-agreement). We recommend that you also read the [Blog](https://www.docker.com/blog/updating-product-subscriptions/){: target="_blank" rel="noopener" class="_" id="dkr_docs_desktop_install_btl"} and [FAQs](https://www.docker.com/pricing/faq){: target="_blank" rel="noopener" class="_" id="dkr_docs_desktop_install_btl"} to learn how companies using Docker Desktop may be affected.
For more information, see [Docker Desktop License Agreement](../../subscription/index.md#docker-desktop-license-agreement). We recommend that you also read the [Blog](https://www.docker.com/blog/updating-product-subscriptions/){: target="_blank" rel="noopener" class="_" id="dkr*docs_desktop_install_btl"} and [FAQs](https://www.docker.com/pricing/faq){: target="\_blank" rel="noopener" class="*" id="dkr_docs_desktop_install_btl"} to learn how companies using Docker Desktop may be affected.
## Updates
@ -201,11 +208,9 @@ To uninstall Docker Desktop from your Windows machine:
## Where to go next
* [Getting started](../windows/index.md) introduces Docker Desktop for Windows.
* [Get started with Docker](/get-started/) is a tutorial that teaches you how to
deploy a multi-service stack.
* [Troubleshooting](../troubleshoot/overview.md) describes common problems, workarounds, and
* [Get started with Docker](/get-started/) is a tutorial that teaches you how to deploy a multi-service stack.
- [Troubleshooting](../troubleshoot/overview.md) describes common problems, workarounds, and
how to get support.
* [FAQs](../faqs/general.md) provide answers to frequently asked questions.
* [Release notes](../release-notes.md) lists component updates, new features, and improvements associated with Docker Desktop releases.
* [Back up and restore data](../backup-and-restore.md) provides instructions on backing up and restoring data related to Docker.
- [FAQs](../faqs/general.md) provide answers to frequently asked questions.
- [Release notes](../release-notes.md) lists component updates, new features, and improvements associated with Docker Desktop releases.
- [Back up and restore data](../backup-and-restore.md) provides instructions on backing up and restoring data related to Docker.

View File

@ -1,93 +0,0 @@
---
description: Getting Started
keywords: linux, tutorial, run, docker, local, machine
title: Docker Desktop for Linux user manual
---
The Docker Desktop for Linux user manual provides information on how to manage your credentials.
For information about Docker Desktop download, system requirements, and installation instructions, see [Install Docker Desktop](../install/linux-install.md).
## Credentials management
Docker Desktop relies on [`pass`](https://www.passwordstore.org/){: target="_blank" rel="noopener" class="_"} to store credentials in gpg2-encrypted files.
Before signing in to Docker Hub from the Docker Dashboard or the Docker menu, you must initialize `pass`.
Docker Desktop displays a warning if you've not initialized `pass`.
You can intialize pass by using a gpg key. To generate a gpg key, run:
``` console
$ gpg --generate-key
...
GnuPG needs to construct a user ID to identify your key.
Real name: Molly
Email address: molly@example.com
You selected this USER-ID:
"Molly <molly@example.com>"
Change (N)ame, (E)mail, or (O)kay/(Q)uit? O
...
pub rsa3072 2022-03-31 [SC] [expires: 2024-03-30]
7865BA9185AFA2C26C5B505669FC4F36530097C2
uid Molly <molly@example.com>
sub rsa3072 2022-03-31 [E] [expires: 2024-03-30]
```
To initialize `pass`, run:
```console
molly@ubuntu:~$ pass init 7865BA9185AFA2C26C5B505669FC4F36530097C2
mkdir: created directory '/home/molly/.password-store/'
Password store initialized for 7865BA9185AFA2C26C5B505669FC4F36530097C2
```
Once `pass` is initialized, we can sign in on the Docker Dashboard and pull our private images.
When credentials are used by the Docker CLI or Docker Desktop, a user prompt may pop up for the password you set during the gpg key generation.
```console
$ docker pull molly/privateimage
Using default tag: latest
latest: Pulling from molly/privateimage
3b9cc81c3203: Pull complete
Digest: sha256:3c6b73ce467f04d4897d7a7439782721fd28ec9bf62ea2ad9e81a5fb7fb3ff96
Status: Downloaded newer image for molly/privateimage:latest
docker.io/molly/privateimage:latest
```
## Docker Hub
Select **Sign in / Create Docker ID** from the Docker Desktop menu to access your [Docker](https://hub.docker.com/){: target="_blank" rel="noopener" class="_" } account. Once logged in, you can access your Docker Hub repositories and organizations directly from the Docker Desktop menu.
For more information, refer to the following [Docker Hub topics](../../docker-hub/index.md){:target="_blank"
class="_"}:
* [Organizations and Teams in Docker Hub](../../docker-hub/orgs.md){:target="_blank" rel="noopener" class="_"}
* [Builds](../../docker-hub/builds/index.md){:target="_blank" rel="noopener" class="_"}
## Pause/Resume
You can pause your Docker Desktop session when you are not actively using it and save CPU resources on your machine. When you pause Docker Desktop, the Linux VM running Docker Engine is paused, the current state of all your containers are saved in memory, and all processes are frozen. This reduces the CPU usage and helps you retain a longer battery life on your laptop. You can resume Docker Desktop when you want by clicking the Resume option.
From the Docker menu, select ![whale menu](images/whale-x.png){: .inline} > **Pause** to pause Docker Desktop.
![Docker context menu](images/menu/prefs.png){:width="250px"}
Docker Desktop now displays the paused status on the Docker menu and on the **Containers**, **Images**, **Volumes**, and **Dev Environment** screens on the Docker Dashboard. You can still access the **Settings** and the **Troubleshoot** menu from the Dashboard when you've paused Docker Desktop.
Select ![whale menu](images/whale-x.png){: .inline} > **Resume** to resume Docker Desktop.
> **Note**
>
> When Docker Desktop is paused, running any commands in the Docker CLI will automatically resume Docker Desktop.
## Where to go next
* Try out the walkthrough at [Get Started](/get-started/){: target="_blank"
class="_"}.
* Dig in deeper with [Docker Labs](https://github.com/docker/labs/) example
walkthroughs and source code.
* For a summary of Docker command line interface (CLI) commands, see
[Docker CLI Reference Guide](../../engine/api/index.md){: target="_blank" rel="noopener" class="_"}.

View File

@ -1,160 +0,0 @@
---
description: Networking
keywords: linux, networking
title: Networking features in Docker Desktop for Linux
---
{% assign Arch = 'Linux' %}
Docker Desktop for {{Arch}} provides several networking features to make it
easier to use.
## Features
### VPN Passthrough
Docker Desktop for {{Arch}}'s networking can work when attached to a VPN. To do this,
Docker Desktop for {{Arch}} intercepts traffic from the containers and injects it into
{{Arch}} as if it originated from the Docker application.
### Port Mapping
When you run a container with the `-p` argument, for example:
```console
$ docker run -p 80:80 -d nginx
```
Docker Desktop for {{Arch}} makes whatever is running on port 80 in the container (in
this case, `nginx`) available on port 80 of `localhost`. In this example, the
host and container ports are the same. What if you need to specify a different
host port? If, for example, you already have something running on port 80 of
your host machine, you can connect the container to a different port:
```console
$ docker run -p 8000:80 -d nginx
```
Now, connections to `localhost:8000` are sent to port 80 in the container. The
syntax for `-p` is `HOST_PORT:CLIENT_PORT`.
### HTTP/HTTPS Proxy Support
See [Proxies](index.md#proxies).
### SSH agent forwarding
Docker Desktop for Linux allows you to use the hosts SSH agent inside a container. To do this:
1. Bind mount the SSH agent socket by adding the following parameter to your `docker run` command:
```ssh
--mount type=bind,src=/run/host-services/ssh-auth.sock,target=/run/host-services/ssh-auth.sock
```
2. Add the `SSH_AUTH_SOCK` environment variable in your container:
`-e SSH_AUTH_SOCK="/run/host-services/ssh-auth.sock"`
To enable the SSH agent in Docker Compose, add the following flags to your service:
```yaml
services:
web:
image: nginx:alpine
volumes:
- type: bind
source: /run/host-services/ssh-auth.sock
target: /run/host-services/ssh-auth.sock
environment:
- SSH_AUTH_SOCK=/run/host-services/ssh-auth.sock
```
## Known limitations, use cases, and workarounds
Below is a summary of the current limitations on the Docker Desktop for {{Arch}}
networking stack, along with some ideas for workarounds.
### Changing internal IP addresses
The internal IP addresses used by Docker can be changed from the **Settings** panel.
After changing IPs, you need to reset the Kubernetes cluster and leave any active Swarm.
### I cannot ping my containers
Docker Desktop for Linux can't route traffic to containers.
### Per-container IP addressing is not possible
The docker bridge network is not reachable from the Linux host.
### Use cases and workarounds
There are two scenarios that the above limitations affect:
#### I want to connect from a container to a service on the host
The host has a changing IP address (or none if you have no network access). We recommend that you connect to the special DNS name
`host.docker.internal` which resolves to the internal IP address used by the
host. This is for development purposes and will not work in a production environment outside of Docker Desktop for Linux.
You can also reach the gateway using `gateway.docker.internal`.
If you have installed Python on your machine, use the following instructions as an example to connect from a container to a service on the host:
1. Run the following command to start a simple HTTP server on port 8000.
```console
$ python -m http.server 8000
```
If you have installed Python 2.x, run:
```console
$ python -m SimpleHTTPServer 8000
```
2. Now, run a container, install `curl`, and try to connect to the host using the following commands:
```console
$ docker run --rm -it alpine sh
# apk add curl
# curl http://host.docker.internal:8000
# exit
```
#### I want to connect to a container from the Linux host
Port forwarding works for `localhost`; `--publish`, `-p`, or `-P` all work.
Ports exposed from the Linux VM are forwarded to the host.
Our current recommendation is to publish a port, or to connect from another
container. This is what you need to do even on Linux if the container is on an
overlay network, not a bridge network, as these are not routed.
For example, to run an `nginx` webserver:
```console
$ docker run -d -p 80:80 --name webserver nginx
```
To clarify the syntax, the following two commands both expose port `80` on the
container to port `8000` on the host:
```console
$ docker run --publish 8000:80 --name webserver nginx
$ docker run -p 8000:80 --name webserver nginx
```
To expose all ports, use the `-P` flag. For example, the following command
starts a container (in detached mode) and the `-P` exposes all ports on the
container to random ports on the host.
```console
$ docker run -d -P --name webserver nginx
```
See the [run command](../../engine/reference/commandline/run.md) for more details on
publish options used with `docker run`.

View File

@ -1,42 +0,0 @@
---
description: Change log / release notes for Docker Desktop for Linux
keywords: Docker Desktop for Linux, release notes
title: Docker Desktop for Linux release notes
toc_min: 1
toc_max: 2
---
This page contains information about the new features, improvements, known issues, and bug fixes in Docker Desktop releases.
Take a look at the [Docker Public Roadmap](https://github.com/docker/roadmap/projects/1){: target="_blank" rel="noopener" class="_"} to see what's coming next.
## Docker Desktop 4.8.1
2022-05-09
> Download Docker Desktop
>
> [DEB](https://desktop-stage.docker.com/linux/main/amd64/78998/docker-desktop-4.8.1-amd64.deb) |
> [RPM](https://desktop-stage.docker.com/linux/main/amd64/78998/docker-desktop-4.8.1-x86_64.rpm) |
> [Arch package](https://desktop-stage.docker.com/linux/main/amd64/78998/docker-desktop-4.8.1-x86_64.pkg.tar.zst)
## Bugfixes and minor changes
- Fixed a bug that caused the Kubernetes cluster to be deleted when updating Docker Desktop.
## Known issues
- Changing ownership rights for files in bind mounts fails. This is due to the way we have implemented file sharing between the host and VM within which the Docker Engine runs. We aim to resolve this issue in the next release.
## Docker Desktop 4.8.0
2022-05-06
> Download Docker Desktop
>
> [DEB](https://desktop.docker.com/linux/main/amd64/docker-desktop-4.8.0-amd64.deb?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-linux-amd64) |
> [RPM](https://desktop.docker.com/linux/main/amd64/docker-desktop-4.8.0-x86_64.rpm?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-linux-amd64) |
> [Arch package](https://desktop.docker.com/linux/main/amd64/docker-desktop-4.8.0-x86_64.pkg.tar.zst?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-linux-amd64)
## Known issues
- Changing ownership rights for files in bind mounts fails. This is due to the way we have implemented file sharing between the host and VM within which the Docker Engine runs. We aim to resolve this issue in the next release.
- Currently, if you are running a Kubernetes cluster, it will be deleted when you upgrade to Docker Desktop 4.8.0. We aim to fix this in the next release.

View File

@ -1,98 +0,0 @@
---
description: Disk utilization
keywords: linux, disk
title: Disk utilization in Docker Desktop for Linux
---
Docker Desktop stores Linux containers and images in a single, large "disk image" file in the Linux filesystem. This is different from Docker on Linux, which usually stores containers and images in the `/var/lib/docker` directory on the host's filesystem.
## Where is the disk image file?
To locate the disk image file, select the Docker icon and then
**Settings** > **Resources** > **Advanced**.
![Disk preferences](images/menu/prefs-advanced.png){:width="750px"}
The **Advanced** tab displays the location of the disk image. It also displays the maximum size of the disk image and the actual space the disk image is consuming. Note that other tools might display space usage of the file in terms of the maximum file size, and not the actual file size.
## If the file is too large
If the disk image file is too large, you can:
- move it to a bigger drive,
- delete unnecessary containers and images, or
- reduce the maximum allowable size of the file.
### Move the file to a bigger drive
To move the disk image file to a different location:
1. Select **Settings** > **Resources** > **Advanced**.
2. In the **Disk image location** section, click **Browse** and choose a new location for the disk image.
3. Click **Apply & Restart** for the changes to take effect.
Do not move the file directly in Finder as this can cause Docker Desktop to lose track of the file.
### Delete unnecessary containers and images
Check whether you have any unnecessary containers and images. If your client and daemon API are running version 1.25 or later (use the `docker version` command on the client to check your client and daemon API versions), you can see the detailed space usage information by running:
```console
$ docker system df -v
```
Alternatively, to list images, run:
```console
$ docker image ls
```
and then, to list containers, run:
```console
$ docker container ls -a
```
If there are lots of redundant objects, run the command:
```console
$ docker system prune
```
This command removes all stopped containers, unused networks, dangling images, and build cache.
It might take a few minutes to reclaim space on the host depending on the format of the disk image file:
- If the file is named `Docker.raw`: space on the host should be reclaimed within a few seconds.
- If the file is named `Docker.qcow2`: space will be freed by a background process after a few minutes.
Space is only freed when images are deleted. Space is not freed automatically when files are deleted inside running containers. To trigger a space reclamation at any point, run the command:
```console
$ docker run --privileged --pid=host docker/desktop-reclaim-space
```
Note that many tools report the maximum file size, not the actual file size.
To query the actual size of the file on the host from a terminal, run:
```console
$ cd ~/.docker/desktop/vms/0/data
$ ls -klsh Docker.raw
2333548 -rw-r--r--@ 1 username staff 64G Dec 13 17:42 Docker.raw
```
In this example, the actual size of the disk is `2333548` KB, whereas the maximum size of the disk is `64` GB.
### Reduce the maximum size of the file
To reduce the maximum size of the disk image file:
1. Select the Docker icon and then select **Settings** > **Resources** > **Advanced**.
2. The **Disk image size** section contains a slider that allows you to change the maximum size of the disk image. Adjust the slider to set a lower limit.
3. Click **Apply & Restart**.
When you reduce the maximum size, the current disk image file is deleted, and therefore, all containers and images will be lost.

View File

@ -1,250 +0,0 @@
---
description: Getting Started
keywords: mac, tutorial, run, docker, local, machine
redirect_from:
- /docker-for-mac/
- /docker-for-mac/index/
- /docker-for-mac/mutagen/
- /docker-for-mac/mutagen-caching/
- /docker-for-mac/osx/
- /docker-for-mac/started/
- /engine/installation/mac/
- /installation/mac/
- /mac/
- /mac/started/
- /mackit/
- /mackit/getting-started/
- /docker-for-mac/osxfs/
- /docker-for-mac/osxfs-caching/
title: Docker Desktop for Mac user manual
---
The Docker Desktop for Mac user manual provides information on how to Add TLS certificates and other useful topics.
For information about Docker Desktop download, system requirements, and installation instructions, see [Install Docker Desktop](../install/mac-install.md).
## Add TLS certificates
You can add trusted Certificate Authorities (CAs) (used to verify registry
server certificates) and client certificates (used to authenticate to
registries) to your Docker daemon.
### Add custom CA certificates (server side)
All trusted CAs (root or intermediate) are supported. Docker Desktop creates a
certificate bundle of all user-trusted CAs based on the Mac Keychain, and
appends it to Moby trusted certificates. So if an enterprise SSL certificate is
trusted by the user on the host, it is trusted by Docker Desktop.
To manually add a custom, self-signed certificate, start by adding the
certificate to the macOS keychain, which is picked up by Docker Desktop. Here is
an example:
```console
$ sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ca.crt
```
Or, if you prefer to add the certificate to your own local keychain only (rather
than for all users), run this command instead:
```console
$ security add-trusted-cert -d -r trustRoot -k ~/Library/Keychains/login.keychain ca.crt
```
See also, [Directory structures for
certificates](#directory-structures-for-certificates).
> **Note**: You need to restart Docker Desktop after making any changes to the
> keychain or to the `~/.docker/certs.d` directory in order for the changes to
> take effect.
For a complete explanation of how to do this, see the blog post [Adding
Self-signed Registry Certs to Docker & Docker Desktop for
Mac](https://blog.container-solutions.com/adding-self-signed-registry-certs-docker-mac){:target="_blank" rel="noopener" class="_"}.
### Add client certificates
You can put your client certificates in
`~/.docker/certs.d/<MyRegistry>:<Port>/client.cert` and
`~/.docker/certs.d/<MyRegistry>:<Port>/client.key`.
When the Docker Desktop application starts, it copies the `~/.docker/certs.d`
folder on your Mac to the `/etc/docker/certs.d` directory on Moby (the Docker
Desktop `xhyve` virtual machine).
> * You need to restart Docker Desktop after making any changes to the keychain
> or to the `~/.docker/certs.d` directory in order for the changes to take
> effect.
>
> * The registry cannot be listed as an _insecure registry_ (see [Docker
> Engine](#docker-engine). Docker Desktop ignores certificates listed
> under insecure registries, and does not send client certificates. Commands
> like `docker run` that attempt to pull from the registry produce error
> messages on the command line, as well as on the registry.
### Directory structures for certificates
If you have this directory structure, you do not need to manually add the CA
certificate to your Mac OS system login:
```
/Users/<user>/.docker/certs.d/
└── <MyRegistry>:<Port>
├── ca.crt
├── client.cert
└── client.key
```
The following further illustrates and explains a configuration with custom
certificates:
```
/etc/docker/certs.d/ <-- Certificate directory
└── localhost:5000 <-- Hostname:port
├── client.cert <-- Client certificate
├── client.key <-- Client key
└── ca.crt <-- Certificate authority that signed
the registry certificate
```
You can also have this directory structure, as long as the CA certificate is
also in your keychain.
```
/Users/<user>/.docker/certs.d/
└── <MyRegistry>:<Port>
├── client.cert
└── client.key
```
To learn more about how to install a CA root certificate for the registry and
how to set the client TLS certificate for verification, see
[Verify repository client with certificates](../../engine/security/certificates.md)
in the Docker Engine topics.
## Install shell completion
Docker Desktop comes with scripts to enable completion for the `docker` and `docker-compose` commands. The completion scripts may be
found inside `Docker.app`, in the `Contents/Resources/etc/` directory and can be
installed both in Bash and Zsh.
### Bash
Bash has [built-in support for
completion](https://www.debian-administration.org/article/316/An_introduction_to_bash_completion_part_1){:target="_blank"
class="_"} To activate completion for Docker commands, these files need to be
copied or symlinked to your `bash_completion.d/` directory. For example, if you
installed bash via [Homebrew](https://brew.sh):
```bash
etc=/Applications/Docker.app/Contents/Resources/etc
ln -s $etc/docker.bash-completion $(brew --prefix)/etc/bash_completion.d/docker
ln -s $etc/docker-compose.bash-completion $(brew --prefix)/etc/bash_completion.d/docker-compose
```
Add the following to your `~/.bash_profile`:
```bash
[ -f /usr/local/etc/bash_completion ] && . /usr/local/etc/bash_completion
```
OR
```bash
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi
```
### Zsh
In Zsh, the [completion
system](http://zsh.sourceforge.net/Doc/Release/Completion-System.html){:target="_blank" rel="nooopener" class="_"}
takes care of things. To activate completion for Docker commands,
these files need to be copied or symlinked to your Zsh `site-functions/`
directory. For example, if you installed Zsh via [Homebrew](https://brew.sh){:target="_blank" rel="nooopener" class="_"}:
```bash
etc=/Applications/Docker.app/Contents/Resources/etc
ln -s $etc/docker.zsh-completion /usr/local/share/zsh/site-functions/_docker
ln -s $etc/docker-compose.zsh-completion /usr/local/share/zsh/site-functions/_docker-compose
```
### Fish-Shell
Fish-shell also supports tab completion [completion
system](https://fishshell.com/docs/current/#tab-completion){:target="_blank"
class="_"}. To activate completion for Docker commands,
these files need to be copied or symlinked to your Fish-shell `completions/`
directory.
Create the `completions` directory:
```console
$ mkdir -p ~/.config/fish/completions
```
Now add fish completions from docker.
```console
$ ln -shi /Applications/Docker.app/Contents/Resources/etc/docker.fish-completion ~/.config/fish/completions/docker.fish
$ ln -shi /Applications/Docker.app/Contents/Resources/etc/docker-compose.fish-completion ~/.config/fish/completions/docker-compose.fish
```
## Docker Hub
Select **Sign in /Create Docker ID** from the Docker Desktop menu to access your [Docker Hub](https://hub.docker.com/){: target="_blank" rel="noopener" class="_" } account. Once logged in, you can access your Docker Hub repositories and organizations directly from the Docker Desktop menu.
For more information, refer to the following [Docker Hub topics](../../docker-hub/index.md){:target="_blank"
class="_"}:
* [Organizations and Teams in Docker Hub](../../docker-hub/orgs.md){:target="_blank" rel="noopener" class="_"}
* [Builds](../../docker-hub/builds/index.md){:target="_blank" rel="noopener" class="_"}
### Two-factor authentication
Docker Desktop enables you to sign into Docker Hub using two-factor authentication. Two-factor authentication provides an extra layer of security when accessing your Docker Hub account.
You must enable two-factor authentication in Docker Hub before signing into your Docker Hub account through Docker Desktop. For instructions, see [Enable two-factor authentication for Docker Hub](/docker-hub/2fa/).
After you have enabled two-factor authentication:
1. Go to the Docker Desktop menu and then select **Sign in / Create Docker ID**.
2. Enter your Docker ID and password and click **Sign in**.
3. After you have successfully signed in, Docker Desktop prompts you to enter the authentication code. Enter the six-digit code from your phone and then click **Verify**.
![Docker Desktop 2FA](images/desktop-mac-2fa.png){:width="500px"}
After you have successfully authenticated, you can access your organizations and repositories directly from the Docker Desktop menu.
## Pause/Resume
Starting with the Docker Desktop 4.2 release, you can pause your Docker Desktop session when you are not actively using it and save CPU resources on your machine. When you pause Docker Desktop, the Linux VM running Docker Engine is paused, the current state of all your containers are saved in memory, and all processes are frozen. This reduces the CPU usage and helps you retain a longer battery life on your laptop. You can resume Docker Desktop when you want by clicking the Resume option.
From the Docker menu, select ![whale menu](images/whale-x.png){: .inline} > **Pause** to pause Docker Desktop.
![Docker context menu](images/menu/prefs.png){:width="250px"}
Docker Desktop now displays the paused status on the Docker menu and on the **Containers / Apps**, **Images**, **Volumes**, and **Dev Environment** screens on the Docker Dashboard. You can still access the **Preferences** and the **Troubleshoot** menu from the Dashboard when you've paused Docker Desktop.
Select ![whale menu](images/whale-x.png){: .inline} > **Resume** to resume Docker Desktop.
> **Note**
>
> When Docker Desktop is paused, running any commands in the Docker CLI will automatically resume Docker Desktop.
## Where to go next
* Try out the walkthrough at [Get Started](/get-started/){: target="_blank"
class="_"}.
* Dig in deeper with [Docker Labs](https://github.com/docker/labs/) example
walkthroughs and source code.
* For a summary of Docker command line interface (CLI) commands, see
[Docker CLI Reference Guide](../../engine/api/index.md){: target="_blank" rel="noopener" class="_"}.
* Check out the blog post, [Whats New in Docker 17.06 Community Edition
(CE)](https://blog.docker.com/2017/07/whats-new-docker-17-06-community-edition-ce/){: target="_blank" rel="noopener" class="_"}.

View File

@ -1,160 +0,0 @@
---
description: Networking
keywords: mac, networking
redirect_from:
- /docker-for-mac/networking/
- /mackit/networking/
title: Networking features in Docker Desktop for Mac
---
{% assign Arch = 'Mac' %}
Docker Desktop for {{Arch}} provides several networking features to make it
easier to use.
## Features
### VPN Passthrough
Docker Desktop for {{Arch}}'s networking can work when attached to a VPN. To do this,
Docker Desktop for {{Arch}} intercepts traffic from the containers and injects it into
{{Arch}} as if it originated from the Docker application.
### Port Mapping
When you run a container with the `-p` argument, for example:
```console
$ docker run -p 80:80 -d nginx
```
Docker Desktop for {{Arch}} makes whatever is running on port 80 in the container (in
this case, `nginx`) available on port 80 of `localhost`. In this example, the
host and container ports are the same. What if you need to specify a different
host port? If, for example, you already have something running on port 80 of
your host machine, you can connect the container to a different port:
```console
$ docker run -p 8000:80 -d nginx
```
Now, connections to `localhost:8000` are sent to port 80 in the container. The
syntax for `-p` is `HOST_PORT:CLIENT_PORT`.
### HTTP/HTTPS Proxy Support
See [Proxies](index.md#proxies).
### SSH agent forwarding
Docker Desktop for Mac allows you to use the hosts SSH agent inside a container. To do this:
1. Bind mount the SSH agent socket by adding the following parameter to your `docker run` command:
`--mount type=bind,src=/run/host-services/ssh-auth.sock,target=/run/host-services/ssh-auth.sock`
1. Add the `SSH_AUTH_SOCK` environment variable in your container:
`-e SSH_AUTH_SOCK="/run/host-services/ssh-auth.sock"`
To enable the SSH agent in Docker Compose, add the following flags to your service:
```yaml
services:
web:
image: nginx:alpine
volumes:
- type: bind
source: /run/host-services/ssh-auth.sock
target: /run/host-services/ssh-auth.sock
environment:
- SSH_AUTH_SOCK=/run/host-services/ssh-auth.sock
```
## Known limitations, use cases, and workarounds
Following is a summary of current limitations on the Docker Desktop for {{Arch}}
networking stack, along with some ideas for workarounds.
### Changing internal IP addresses
The internal IP addresses used by Docker can be changed via the Settings (Windows)
or Preferences (Mac). After changing IPs, it is necessary to reset the Kubernetes
cluster and to leave any active Swarm.
### There is no docker0 bridge on macOS
Because of the way networking is implemented in Docker Desktop for Mac, you cannot see a
`docker0` interface on the host. This interface is actually within the virtual
machine.
### I cannot ping my containers
Docker Desktop for Mac can't route traffic to containers.
### Per-container IP addressing is not possible
The docker (Linux) bridge network is not reachable from the macOS host.
### Use cases and workarounds
There are two scenarios that the above limitations affect:
#### I want to connect from a container to a service on the host
The host has a changing IP address (or none if you have no network access). We recommend that you connect to the special DNS name
`host.docker.internal` which resolves to the internal IP address used by the
host. This is for development purpose and will not work in a production environment outside of Docker Desktop for Mac.
You can also reach the gateway using `gateway.docker.internal`.
If you have installed Python on your machine, use the following instructions as an example to connect from a container to a service on the host:
1. Run the following command to start a simple HTTP server on port 8000.
`python -m http.server 8000`
If you have installed Python 2.x, run `python -m SimpleHTTPServer 8000`.
2. Now, run a container, install `curl`, and try to connect to the host using the following commands:
```console
$ docker run --rm -it alpine sh
# apk add curl
# curl http://host.docker.internal:8000
# exit
```
#### I want to connect to a container from the Mac
Port forwarding works for `localhost`; `--publish`, `-p`, or `-P` all work.
Ports exposed from Linux are forwarded to the host.
Our current recommendation is to publish a port, or to connect from another
container. This is what you need to do even on Linux if the container is on an
overlay network, not a bridge network, as these are not routed.
For example, to run an `nginx` webserver:
```console
$ docker run -d -p 80:80 --name webserver nginx
```
To clarify the syntax, the following two commands both expose port `80` on the
container to port `8000` on the host:
```console
$ docker run --publish 8000:80 --name webserver nginx
$ docker run -p 8000:80 --name webserver nginx
```
To expose all ports, use the `-P` flag. For example, the following command
starts a container (in detached mode) and the `-P` exposes all ports on the
container to random ports on the host.
```console
$ docker run -d -P --name webserver nginx
```
See the [run command](../../engine/reference/commandline/run.md) for more details on
publish options used with `docker run`.

View File

@ -1,28 +1,29 @@
---
description: Docker Desktop Privileged Helper on Mac
description: Permission requirements for Docker Desktop for Mac
keywords: Docker Desktop, mac, security, install
title: Docker Desktop Privileged Helper on Mac
title: Docker Desktop permission requirements for Mac
redirect_from:
- /docker-for-mac/privileged-helper/
- /desktop/mac/privileged-helper/
---
This page contains information about the permission requirements for running and installing Docker Desktop on Mac, the functionality of the privileged helper process `com.docker.vmnetd` and the reasoning behind this approach, as well as clarification about running containers as `root` as opposed to having `root` access on the host.
## Permission requirements
While Docker Desktop does not generally require the user running or installing it to have `root` privileges, in the default use case it needs `root` access to be granted on the first run. The first time Docker Desktop is launched the user gets an admin prompt to grant permissions for a privileged helper service to be installed. For subsequent runs, no `root` privileges are required.
In the default set up flow, Docker Desktop for Mac does not require root privileges for installation but does require `root` access to be granted on the first run. The first time that Docker Desktop is launched the user receives an admin prompt to grant permissions for a privileged helper service to be installed. For subsequent runs, no `root` privileges are required.
The reason for this is that Docker Desktop needs to perform a limited set of privileged operations using the privileged helper process `com.docker.vmnetd`. This approach allows, following the principle of least privilege, `root` access to be used only for the operations for which it is absolutely necessary, while still being able to use Docker Desktop as an unprivileged user.
From version 4.11, it will be possible to avoid running a privileged service in the background by using `com.docker.vmnetd` for setup during installation and disabling it at runtime. In this case the user will not be prompted on the first run. Administrators would be able to do that by using the `-user` flag on the [install command](../install/mac-install.md#install-from-the-command-line) which would:
- Uninstall the previous `com.docker.vmnetd` if present
- Set up symlinks for the user
- Ensure that `localhost` and `kubernetes.docker.internal` are present in `/etc/hosts`
In version 4.11 and above of Docker Desktop for Mac you can avoid running the privileged helper service in the background by using the `--user` flag on the [install command](../install/mac-install.md#install-from-the-command-line). This will result in `com.docker.vmnetd` being used for set up during installation and then disabled at runtime. In this case, the user will not be prompted to grant root privileges on the first run of Docker Desktop. Specifically, the `--user` flag:
- Uninstalls the previous `com.docker.vmnetd` if present
- Sets up symlinks for the user
- Ensures that `localhost` and `kubernetes.docker.internal` are present in `/etc/hosts`
This approach will have certain limitations:
- Docker Desktop would only be able to be run by one user account per machine, namely the one specified in the `-user` flag.
- Ports 1-79 would be blocked - the containers would run but the port wont be exposed on the host.
- Spindump diagnostics for fine grained CPU utilization would not be gathered.
This approach has the following limitations:
- Docker Desktop can only be run by one user account per machine, namely the one specified in the `-user` flag.
- Ports 1-79 are blocked. The containers will run but the port wont be exposed on the host.
- Spindump diagnostics for fine grained CPU utilization are not gathered.
## Privileged Helper

View File

@ -1,500 +0,0 @@
---
description: Change log / release notes for Docker Desktop for Mac
keywords: Docker Desktop for Mac, release notes
title: Docker Desktop for Mac release notes
toc_min: 1
toc_max: 2
redirect_from:
- /docker-for-mac/release-notes/
- /docker-for-mac/edge-release-notes/
- /mackit/release-notes/
---
> **Update to the Docker Desktop terms**
>
> Commercial use of Docker Desktop in larger enterprises (more than 250
> employees OR more than $10 million USD in annual revenue) now requires a paid
> subscription. The grace period for those that will require a paid subscription
> ends on January 31, 2022. [Learn more](https://www.docker.com/blog/the-grace-period-for-the-docker-subscription-service-agreement-ends-soon-heres-what-you-need-to-know/){:
target="_blank" rel="noopener" class="_" id="dkr_docs_cta"}.
{: .important}
This page contains information about the new features, improvements, known issues, and bug fixes in Docker Desktop releases.
Take a look at the [Docker Public Roadmap](https://github.com/docker/roadmap/projects/1){: target="_blank" rel="noopener" class="_"} to see what's coming next.
## Docker Desktop 4.8.1
2022-05-09
> Download Docker Desktop
>
> [Mac with Intel chip](https://desktop.docker.com/mac/main/amd64/Docker.dmg?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-mac-amd64){: .button .primary-btn }
> [Mac with Apple
> chip](https://desktop.docker.com/mac/main/arm64/Docker.dmg?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-mac-arm64){:
> .button .primary-btn }
### New
- Released [Docker Desktop for Linux](https://docs.docker.com/desktop/linux/).
- Beta release of [Docker Extensions](https://docs.docker.com/desktop/extensions) and Extensions SDK.
- Created a Docker Homepage where you can run popular images and discover how to use them.
- [Compose V2 is now GA](https://www.docker.com/blog/announcing-compose-v2-general-availability/)
### Bug fixes and minor changes
- Fixed a bug that caused the Kubernetes cluster to be deleted when updating Docker Desktop.
## Docker Desktop 4.8.0
2022-05-06
> Download Docker Desktop
>
> [Mac with Intel chip](https://desktop.docker.com/mac/main/amd64/78933/Docker.dmg) |
> [Mac with Apple chip](https://desktop.docker.com/mac/main/arm64/78933/Docker.dmg)
### New
- Released [Docker Desktop for Linux](https://docs.docker.com/desktop/linux/).
- Beta release of [Docker Extensions](https://docs.docker.com/desktop/extensions) and Extensions SDK.
- Created a Docker Homepage where you can run popular images and discover how to use them.
- [Compose V2 is now GA](https://www.docker.com/blog/announcing-compose-v2-general-availability/)
### Upgrades
- [Compose v2.5.0](https://github.com/docker/compose/releases/tag/v2.5.0)
- [Go 1.18.1](https://golang.org/doc/go1.18)
- [Kubernetes 1.24](https://github.com/kubernetes/kubernetes/releases/tag/v1.24.0)
### Bug fixes and minor changes
- Introduced reading system proxy. You no longer need to manually configure proxies unless it differs from your OS level proxy.
- Fixed a bug that showed Remote Repositories in the Dashboard when running behind a proxy.
- Fixed vpnkit establishing and blocking the client connection even if the server is gone. See [docker/for-mac#6235](https://github.com/docker/for-mac/issues/6235).
- Made improvements on the Volume tab in Docker Desktop:
- Volume size is displayed.
- Columns can be resized, hidden and reordered.
- A columns sort order and hidden state is persisted, even after Docker Desktop restarts.
- Row selection is persisted when switching between tabs, even after Docker Desktop restarts.
- Fixed a bug in the Dev Environments tab that did not add a scroll when more items were added to the screen.
- Standardised the header title and action in the Dashboard.
- Added support for downloading Registry Access Management policies through HTTP proxies.
- Fixed an issue related to empty remote repositories when the machine is in sleep mode for an extended period of time.
- Fixed a bug where dangling images were not selected in the cleanup process if their name was not marked as "<none>" but their tag is.
- Docker Desktop's icon now matches Big Sur Style guide. See [docker/for-mac#5536](https://github.com/docker/for-mac/issues/5536).
- Fixed a problem with duplicate Dock icons and Dock icon not working as expected. Fixes [docker/for-mac#6189](https://github.com/docker/for-mac/issues/6189).
- Improved the error message when `docker pull` fails because an HTTP proxy is required.
- Added the ability to clear the search bar easily in Docker Desktop.
- Renamed the "Containers / Apps" tab to "Containers".
- Improved support for the `Cmd+Q` shortcut.
### Known issues
- Currently, if you are running a Kubernetes cluster, it will be deleted when you upgrade to Docker Desktop 4.8.0. We aim to fix this in the next release.
## Docker Desktop 4.7.1
2022-04-19
> Download Docker Desktop
>
> [Mac with Intel chip](https://desktop.docker.com/mac/main/amd64/77678/Docker.dmg) |
> [Mac with Apple chip](https://desktop.docker.com/mac/main/arm64/77678/Docker.dmg)
### Bug fixes and minor changes
- Fixed a crash on the Quick Start Guide final screen.
## Docker Desktop 4.7.0
2022-04-07
> Download Docker Desktop
>
> [Mac with Intel chip](https://desktop.docker.com/mac/main/amd64/77141/Docker.dmg) |
> [Mac with Apple chip](https://desktop.docker.com/mac/main/arm64/77141/Docker.dmg)
### Security
- Update Docker Engine to v20.10.14 to address [CVE-2022-24769](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-24769){: target="_blank" rel="noopener" class="_"}
- Update containerd to v1.5.11 to address [CVE-2022-24769](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-24769)
### New
- IT Administrators can now install Docker Desktop remotely using the command line. For more information, see [Install Docker Desktop using the command line](../install.md#install-from-the-command-line).
- Add the Docker Software Bill of Materials (SBOM) CLI plugin. The new CLI plugin enables users to generate SBOMs for Docker images. For more information, see [Docker SBOM](../../../engine/sbom/index.md).
- Use [cri-dockerd](https://github.com/Mirantis/cri-dockerd){: target="_blank" rel="noopener" class="_"} for new Kubernetes clusters instead of `dockershim`. The change is transparent from the user's point of view and Kubernetes containers run on the Docker Engine as before. `cri-dockerd` allows Kubernetes to manage Docker containers using the standard [Container Runtime Interface](https://github.com/kubernetes/cri-api#readme){: target="_blank" rel="noopener" class="_"}, the same interface used to control other container runtimes. For more information, see [The Future of Dockershim is cri-dockerd](https://www.mirantis.com/blog/the-future-of-dockershim-is-cri-dockerd/){: target="_blank" rel="noopener" class="_"}.
### Upgrades
- [Docker Engine v20.10.14](https://docs.docker.com/engine/release-notes/#201014)
- [Compose v2.4.1](https://github.com/docker/compose/releases/tag/v2.4.1)
- [Buildx 0.8.2](https://github.com/docker/buildx/releases/tag/v0.8.2)
- [containerd v1.5.11](https://github.com/containerd/containerd/releases/tag/v1.5.11)
- [Go 1.18](https://golang.org/doc/go1.18)
### Bug fixes and minor changes
- Fixed an issue that sometimes caused Docker Desktop to display a blank white screen. Fixes [docker/for-mac#6134](https://github.com/docker/for-mac/issues/6134).
- Fixed a bug where the Registry Access Management policy was never refreshed after a failure.
- Fixed an issue that caused Docker Desktop to become unresponsive during startup when osxfs is used for file sharing.
- Fixed a problem where gettimeofday() performance drops after waking from sleep when using Hyperkit. Fixes [docker/for-mac#3455](https://github.com/docker/for-mac/issues/3455).
- Logs and terminals in the UI now respect your OS theme in light and dark mode.
- Easily clean up many volumes at once via multi-select checkboxes.
- Improved login feedback.
### Deprecation
- Deprecate macOS 10.14. For macOS system requirements, see [Docker Desktop for Mac system requirements](../install.md#system-requirements).
## Docker Desktop 4.6.1
2022-03-22
> Download Docker Desktop
>
> [Mac with Intel chip](https://desktop.docker.com/mac/main/amd64/76265/Docker.dmg) |
> [Mac with Apple chip](https://desktop.docker.com/mac/main/arm64/76265/Docker.dmg)
### Upgrades
- [Buildx 0.8.1](https://github.com/docker/buildx/releases/tag/v0.8.1)
### Bug fixes and minor changes
- Fixed diagnostics upload when there is no HTTP proxy set. Fixes [docker/for-mac#6234](https://github.com/docker/for-mac/issues/6234).
- Removed a false positive "vm is not running" error from self-diagnose. Fixes [docker/for-mac#6233](https://github.com/docker/for-mac/issues/6233).
- Prevented spinning in vpnkit-forwarder filling the logs with error messages.
## Docker Desktop 4.6.0
2022-03-14
> Download Docker Desktop
>
> [Mac with Intel chip](https://desktop.docker.com/mac/main/amd64/75818/Docker.dmg) |
> [Mac with Apple chip](https://desktop.docker.com/mac/main/arm64/75818/Docker.dmg)
### Security
- Fixed [CVE-2022-0847](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-0847){: target="_blank" rel="noopener" class="_"}, aka “Dirty Pipe”, an issue that could enable attackers to modify files in container images on the host, from inside a container.
### New
- Docker Desktop 4.6.0 gives macOS users the option of enabling a new experimental file sharing technology called VirtioFS. During testing VirtioFS has been shown to drastically reduce the time taken to sync changes between the host and VM, leading to substantial performance improvements. For more information, see [VirtioFS](../index.md#experimental-features).
- The Docker Dashboard Volume Management feature now offers the ability to efficiently clean up volumes using multi-select checkboxes.
### Upgrades
- [Docker Engine v20.10.13](https://docs.docker.com/engine/release-notes/#201013)
- [Compose v2.3.3](https://github.com/docker/compose/releases/tag/v2.3.3)
- [Buildx 0.8.0](https://github.com/docker/buildx/releases/tag/v0.8.0)
- [containerd v1.4.13](https://github.com/containerd/containerd/releases/tag/v1.4.13)
- [runc v1.0.3](https://github.com/opencontainers/runc/releases/tag/v1.0.3)
- [Go 1.17.8](https://golang.org/doc/go1.17)
- [Linux kernel 5.10.104](https://hub.docker.com/layers/docker/for-desktop-kernel/5.10.104-379cadd2e08e8b25f932380e9fdaab97755357b3/images/sha256-7753b60f4544e5c5eed629d12151a49c8a4b48d98b4fb30e4e65cecc20da484d?context=explore)
- [Qemu 6.2.0](https://wiki.qemu.org/ChangeLog/6.2)
### Bug fixes and minor changes
- Fixed uploading diagnostics when an HTTPS proxy is set.
- Fixed the systray menu not displaying all menu items after starting Docker Desktop. Fixes [docker/for-mac#6192](https://github.com/docker/for-mac/issues/6192).
- Fixed a regression about Docker Desktop not starting in background anymore. Fixes [docker/for-mac#6167](https://github.com/docker/for-mac/issues/6167).
- Fixed missing Docker Desktop Dock icon. Fixes [docker/for-mac#6173](https://github.com/docker/for-mac/issues/6173).
- Made checking for updates from the systray menu open the Software updates settings section.
- Used speed up block device access when using the experimental `virtualization.framework`. See [benchmarks](https://github.com/docker/roadmap/issues/7#issuecomment-1050626886).
- Increased default VM memory allocation to half of physical memory (min 2 GB, max 8 GB) for better out-of-the-box performances.
- Fixed copying text from terminal in Quick Start Guide. Fixes [docker/for-win#12444](https://github.com/docker/for-win/issues/12444).
### Known issues
- After enabling VirtioFS, containers with processes running with different Unix user IDs may experience caching issues. For example if a process running as `root` queries a file and another process running as user `nginx` tries to access the same file immediately, the `nginx` process will get a "Permission Denied" error.
## Docker Desktop 4.5.0
2022-02-10
> Download Docker Desktop
>
> [Mac with Intel chip](https://desktop.docker.com/mac/main/amd64/74594/Docker.dmg) |
> [Mac with Apple chip](https://desktop.docker.com/mac/main/arm64/74594/Docker.dmg)
### Security
- Fixed [CVE-2021-44719](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44719){: target="_blank" rel="noopener" class="_"} where Docker Desktop could be used to access any user file on the host from a container, bypassing the allowed list of shared folders.
### New
- Docker Desktop 4.5.0 introduces a new version of the Docker menu which creates a consistent user experience across all operating systems. For more information, see the blog post [New Docker Menu & Improved Release Highlights with Docker Desktop 4.5](https://www.docker.com/blog/new-docker-menu-improved-release-highlights-with-docker-desktop-4-5/){: target="_blank" rel="noopener" class="_"}
- The 'docker version' output now displays the version of Docker Desktop installed on the machine.
### Upgrades
- [Amazon ECR Credential Helper v0.6.0](https://github.com/awslabs/amazon-ecr-credential-helper/releases/tag/v0.6.0){: target="blank" rel="noopener" class=""}
### Bug fixes and minor changes
- Fixed an issue that caused the VM to become unresponsive during startup when using `osxfs` and when no host directories are shared with the VM.
- Increased the filesystem watch (inotify) limits by setting `fs.inotify.max_user_watches=1048576` and `fs.inotify.max_user_instances=8192` in Linux. Fixes [docker/for-mac#6071](https://github.com/docker/for-mac/issues/6071).
- Fixed an issue that didn't allow users to stop a Docker Compose application using Docker Dashboard if the application was started in a different version of Docker Compose. For example, if the user started a Docker Compose application in V1 and then switched to Docker Compose V2, attempts to stop the Docker Compose application would fail.
- Fixed an issue where Docker Desktop incorrectly prompted users to sign in after they quit Docker Desktop and start the application.
- Fixed an issue where the **About Docker Desktop** window wasn't working anymore.
- Limit the number of CPUs to 8 on Mac M1 to fix the startup problem. Fixes [docker/for-mac#6063](https://github.com/docker/for-mac/issues/6063).
## Docker Desktop 4.4.2
2022-01-13
> Download Docker Desktop
>
> [Mac with Intel chip](https://desktop.docker.com/mac/main/amd64/73305/Docker.dmg) |
> [Mac with Apple chip](https://desktop.docker.com/mac/main/arm64/73305/Docker.dmg)
### Security
- Fixed [CVE-2021-45449](https://docs.docker.com/security/#cve-2021-45449) that affects users currently on Docker Desktop version 4.3.0 or 4.3.1.
Docker Desktop version 4.3.0 and 4.3.1 has a bug that may log sensitive information (access token or password) on the user's machine during login.
This only affects users if they are on Docker Desktop 4.3.0, 4.3.1 and the user has logged in while on 4.3.0, 4.3.1. Gaining access to this data would require having access to the users local files.
### New
- Easy, Secure sign in with Auth0 and Single Sign-on
- Single Sign-on: Users with a Docker Business subscription can now configure SSO to authenticate using their identity providers (IdPs) to access Docker. For more information, see [Single Sign-on](../../../single-sign-on/index.md).
- Signing in to Docker Desktop now takes you through the browser so that you get all the benefits of auto-filling from password managers.
### Upgrades
- [Docker Engine v20.10.12](https://docs.docker.com/engine/release-notes/#201012)
- [Compose v2.2.3](https://github.com/docker/compose/releases/tag/v2.2.3)
- [Kubernetes 1.22.5](https://github.com/kubernetes/kubernetes/releases/tag/v1.22.5)
- [docker scan v0.16.0](https://github.com/docker/scan-cli-plugin/releases/tag/v0.16.0){: target="_blank" rel="noopener" class="_"}
### Bug fixes and minor changes
- Docker Desktop displays an error if `registry.json` contains more than one organization in the `allowedOrgs` field. If you are using multiple organizations for different groups of developers, you must provision a separate `registry.json` file for each group.
- Fixed the memory statistics for containers in the Dashboard. Fixes [docker/for-mac/#4774](https://github.com/docker/for-mac/issues/6076).
- Added a deprecated option to `settings.json`: `"deprecatedCgroupv1": true`, which switches the Linux environment back to cgroups v1. If your software requires cgroups v1, you should update it to be compatible with cgroups v2. Although cgroups v1 should continue to work, it is likely that some future features will depend on cgroups v2. It is also possible that some Linux kernel bugs will only be fixed with cgroups v2.
- Fixed a regression in Compose that reverted the container name separator from `-` to `_`. Fixes [docker/compose-switch](https://github.com/docker/compose-switch/issues/24).
- Fixed an issue where putting the machine to Sleep mode after pausing Docker Desktop results in Docker Desktop not being able to resume from pause after the machine comes out of Sleep mode. Fixes [for-mac#6058](https://github.com/docker/for-mac/issues/6058).
### Known issues
- The tips of the week show on top of the mandatory login dialog when an organization restriction is enabled via a `registry.json` file.
## Docker Desktop 4.3.2
2021-12-21
> Download Docker Desktop
>
> [Mac with Intel chip](https://desktop.docker.com/mac/main/amd64/72729/Docker.dmg) |
> [Mac with Apple chip](https://desktop.docker.com/mac/main/arm64/72729/Docker.dmg)
### Security
- Fixed [CVE-2021-45449](https://docs.docker.com/security/#cve-2021-45449) that affects users currently on Docker Desktop version 4.3.0 or 4.3.1.
Docker Desktop version 4.3.0 and 4.3.1 has a bug that may log sensitive information (access token or password) on the user's machine during login.
This only affects users if they are on Docker Desktop 4.3.0, 4.3.1 and the user has logged in while on 4.3.0, 4.3.1. Gaining access to this data would require having access to the users local files.
### Upgrades
[docker scan v0.14.0](https://github.com/docker/scan-cli-plugin/releases/tag/v0.14.0){: target="_blank" rel="noopener" class="_"}
### Security
**Log4j 2 CVE-2021-44228**: We have updated the `docker scan` CLI plugin.
This new version of `docker scan` is able to detect [Log4j 2
CVE-2021-44228](https://nvd.nist.gov/vuln/detail/CVE-2021-44228){:
target="_blank" rel="noopener" class="_"} and [Log4j 2
CVE-2021-45046](https://nvd.nist.gov/vuln/detail/CVE-2021-45046).
For more information, read the blog post [Apache Log4j 2
CVE-2021-44228](https://www.docker.com/blog/apache-log4j-2-cve-2021-44228/){: target="_blank" rel="noopener" class="_"}.
## Docker Desktop 4.3.1
2021-12-11
> Download Docker Desktop
>
> [Mac with Intel chip](https://desktop.docker.com/mac/main/amd64/72247/Docker.dmg) |
> [Mac with Apple chip](https://desktop.docker.com/mac/main/arm64/72247/Docker.dmg)
### Upgrades
[docker scan v0.11.0](https://github.com/docker/scan-cli-plugin/releases/tag/v0.11.0){: target="_blank" rel="noopener" class="_"}
### Security
**Log4j 2 CVE-2021-44228**: We have updated the `docker scan` CLI plugin for you.
Older versions of `docker scan` in Docker Desktop 4.3.0 and earlier versions are
not able to detect [Log4j 2
CVE-2021-44228](https://nvd.nist.gov/vuln/detail/CVE-2021-44228){:
target="_blank" rel="noopener" class="_"}.
For more information, read the
blog post [Apache Log4j 2 CVE-2021-44228](https://www.docker.com/blog/apache-log4j-2-cve-2021-44228/){: target="_blank" rel="noopener" class="_"}.
## Docker Desktop 4.3.0
2021-12-02
> Download Docker Desktop
>
> [Mac with Intel chip](https://desktop.docker.com/mac/main/amd64/71786/Docker.dmg) |
> [Mac with Apple chip](https://desktop.docker.com/mac/main/arm64/71786/Docker.dmg)
### Upgrades
- [Docker Engine v20.10.11](https://docs.docker.com/engine/release-notes/#201011)
- [containerd v1.4.12](https://github.com/containerd/containerd/releases/tag/v1.4.12)
- [Buildx 0.7.1](https://github.com/docker/buildx/releases/tag/v0.7.1)
- [Compose v2.2.1](https://github.com/docker/compose/releases/tag/v2.2.1)
- [Kubernetes 1.22.4](https://github.com/kubernetes/kubernetes/releases/tag/v1.22.4)
- [Docker Hub Tool v0.4.4](https://github.com/docker/hub-tool/releases/tag/v0.4.4)
- [Go 1.17.3](https://golang.org/doc/go1.17)
### Bug fixes and minor changes
- Docker Desktop on Apple silicon no longer requires Rosetta 2, with the exception of [three optional command line tools](../apple-silicon/#known-issues).
- Fixed an issue which prevented users from saving files from a volume using the Save As option in the Volumes UI. Fixes [docker/for-win#12407](https://github.com/docker/for-win/issues/12407).
- Fixed an issue that sometimes launched the existing version of Docker Desktop even after updating to a newer version.
- Added a self-diagnose warning if the host lacks Internet connectivity.
- Docker Desktop now uses cgroupv2. If you need to run `systemd` in a container then:
- Ensure your version of `systemd` supports cgroupv2. [It must be at least `systemd` 247](https://github.com/systemd/systemd/issues/19760#issuecomment-851565075). Consider upgrading any `centos:7` images to `centos:8`.
- Containers running `systemd` need the following options: [`--privileged --cgroupns=host -v /sys/fs/cgroup:/sys/fs/cgroup:rw`](https://serverfault.com/questions/1053187/systemd-fails-to-run-in-a-docker-container-when-using-cgroupv2-cgroupns-priva).
### Known issue
Docker Dashboard incorrectly displays the container memory usage as zero.
You can use the [`docker stats`](../../../engine/reference/commandline/stats.md)
command on the command line as a workaround to view the
actual memory usage. See
[docker/for-mac#6076](https://github.com/docker/for-mac/issues/6076).
### Deprecation
- The following internal DNS names are deprecated and will be removed from a future release: `docker-for-desktop`, `docker-desktop`, `docker.for.mac.host.internal`, `docker.for.mac.localhost`, `docker.for.mac.gateway.internal`. You must now use `host.docker.internal`, `vm.docker.internal`, and `gateway.docker.internal`.
- Custom RBAC rules have been removed from Docker Desktop as it gives `cluster-admin` privileges to all Service Accounts. Fixes [docker/for-mac/#4774](https://github.com/docker/for-mac/issues/4774).
## Docker Desktop 4.2.0
2021-11-09
> Download Docker Desktop
>
> [Mac with Intel chip](https://desktop.docker.com/mac/main/amd64/70708/Docker.dmg) |
> [Mac with Apple chip](https://desktop.docker.com/mac/main/arm64/70708/Docker.dmg)
### New
**Pause/Resume**: You can now pause your Docker Desktop session when you are not actively using it and save CPU resources on your machine. For more information, see [Pause/Resume](../index.md#pauseresume).
- Ships [Docker Public Roadmap#226](https://github.com/docker/roadmap/issues/226){: target="_blank" rel="noopener" class="_"}
**Software Updates**: The option to turn off automatic check for updates is now available for users on all Docker subscriptions, including Docker Personal and Docker Pro. All update-related settings have been moved to the **Software Updates** section. For more information, see [Software updates](../index.md#software-updates).
- Ships [Docker Public Roadmap#228](https://github.com/docker/roadmap/issues/228){: target="_blank" rel="noopener" class="_"}
**Window management**: The Docker Dashboard window size and position persists when you close and reopen Docker Desktop.
### Upgrades
- [Docker Engine v20.10.10](https://docs.docker.com/engine/release-notes/#201010)
- [containerd v1.4.11](https://github.com/containerd/containerd/releases/tag/v1.4.11)
- [runc v1.0.2](https://github.com/opencontainers/runc/releases/tag/v1.0.2)
- [Go 1.17.2](https://golang.org/doc/go1.17)
- [Compose v2.1.1](https://github.com/docker/compose/releases/tag/v2.1.1)
- [docker-scan 0.9.0](https://github.com/docker/scan-cli-plugin/releases/tag/v0.9.0)
### Bug fixes and minor changes
- Improved: Self-diagnose now also checks for overlap between host IPs and `docker networks`.
- Fixed the position of the indicator that displays the availability of an update on the Docker Dashboard.
- Fixed an issue that caused Docker Desktop to stop responding upon clicking **Exit** on the fatal error dialog.
- Fixed a rare startup failure affecting users having a `docker volume` bind-mounted on top of a directory from the host. If existing, this fix will also remove manually user added `DENY DELETE` ACL entries on the corresponding host directory.
- Fixed a bug where a `Docker.qcow2` file would be ignored on upgrade and a fresh `Docker.raw` used instead, resulting in containers and images disappearing. Note that if a system has both files (due to the previous bug) then the most recently modified file will be used, to avoid recent containers and images disappearing again. To force the use of the old `Docker.qcow2`, delete the newer `Docker.raw` file. Fixes [docker/for-mac#5998](https://github.com/docker/for-mac/issues/5998).
- Fixed a bug where subprocesses could fail unexpectedly during shutdown, triggering an unexpected fatal error popup. Fixes [docker/for-mac#5834](https://github.com/docker/for-mac/issues/5834).
## Docker Desktop 4.1.1
2021-10-12
> Download Docker Desktop
>
> [Mac with Intel chip](https://desktop.docker.com/mac/main/amd64/69879/Docker.dmg) |
> [Mac with Apple chip](https://desktop.docker.com/mac/main/arm64/69879/Docker.dmg)
### Bug fixes and minor changes
> When upgrading from 4.1.0, the Docker menu does not change to **Update and restart** so you can just wait for the download to complete (icon changes) and then select **Restart**. This bug is fixed in 4.1.1, for future upgrades.
- Fixed a bug where a `Docker.qcow2` file would be ignored on upgrade and a fresh `Docker.raw` used instead, resulting in containers and images disappearing. If a system has both files (due to the previous bug), then the most recently modified file will be used to avoid recent containers and images disappearing again. To force the use of the old `Docker.qcow2`, delete the newer `Docker.raw` file. Fixes [docker/for-mac#5998](https://github.com/docker/for-mac/issues/5998).
- Fixed the update notification overlay sometimes getting out of sync between the **Settings** button and the **Software update** button in the Docker Dashboard.
- Fixed the menu entry to install a newly downloaded Docker Desktop update. When an update is ready to install, the **Restart** option changes to **Update and restart**.
## Docker Desktop 4.1.0
2021-09-30
> Download Docker Desktop
>
> [Mac with Intel chip](https://desktop.docker.com/mac/main/amd64/69386/Docker.dmg) |
> [Mac with Apple chip](https://desktop.docker.com/mac/main/arm64/69386/Docker.dmg)
### New
- **Software Updates**: The Settings tab now includes a new section to help you manage Docker Desktop updates. The **Software Updates** section notifies you whenever there's a new update and allows you to download the update or view information on what's included in the newer version. For more information, see [Software Updates](../index.md#software-updates).
- **Compose V2** You can now specify whether to use [Docker Compose V2](../../../compose/index.md#compose-v2-and-the-new-docker-compose-command) in the General settings.
- **Volume Management**: Volume management is now available for users on any subscription, including Docker Personal. For more information, see [Explore volumes](../../dashboard.md#explore-volumes). Ships [Docker Public Roadmap#215](https://github.com/docker/roadmap/issues/215){: target="_blank" rel="noopener" class="_"}
### Upgrades
- [Compose V2](https://github.com/docker/compose/releases/tag/v2.0.0)
- [Buildx 0.6.3](https://github.com/docker/buildx/releases/tag/v0.6.3)
- [Kubernetes 1.21.5](https://github.com/kubernetes/kubernetes/releases/tag/v1.21.5)
- [Go 1.17.1](https://github.com/golang/go/releases/tag/go1.17.1)
- [Alpine 3.14](https://alpinelinux.org/posts/Alpine-3.14.0-released.html)
- [Qemu 6.1.0](https://wiki.qemu.org/ChangeLog/6.1)
- Base distro to debian:bullseye
## Docker Desktop 4.0.1
2021-09-13
> Download Docker Desktop
>
> [Mac with Intel chip](https://desktop.docker.com/mac/main/amd64/68347/Docker.dmg) |
> [Mac with Apple chip](https://desktop.docker.com/mac/main/arm64/68347/Docker.dmg)
### Upgrades
- [Compose V2 RC3](https://github.com/docker/compose/releases/tag/v2.0.0-rc.3)
- Compose v2 is now hosted on github.com/docker/compose.
- Fixed go panic on downscale using `compose up --scale`.
- Fixed a race condition in `compose run --rm` while capturing exit code.
### Bug fixes and minor changes
- Fixed a bug where copy-paste was not available in the Docker Dashboard.
## Docker Desktop 4.0.0
2021-08-31
> Download Docker Desktop
>
> [Mac with Intel chip](https://desktop.docker.com/mac/main/amd64/67817/Docker.dmg) |
> [Mac with Apple chip](https://desktop.docker.com/mac/main/arm64/67817/Docker.dmg)
### New
Docker has [announced](https://www.docker.com/blog/updating-product-subscriptions/){: target="*blank" rel="noopener" class="*" id="dkr_docs_relnotes_btl"} updates and extensions to the product subscriptions to increase productivity, collaboration, and added security for our developers and businesses.
The updated [Docker Subscription Service Agreement](https://www.docker.com/legal/docker-subscription-service-agreement) includes a change to the terms for **Docker Desktop**.
- Docker Desktop **remains free** for small businesses (fewer than 250 employees AND less than $10 million in annual revenue), personal use, education, and non-commercial open source projects.
- It requires a paid subscription (**Pro, Team, or Business**), for as little as $5 a month, for professional use in larger enterprises.
- The effective date of these terms is August 31, 2021. There is a grace period until January 31, 2022 for those that will require a paid subscription to use Docker Desktop.
- The Docker Pro and Docker Team subscriptions now **include commercial use** of Docker Desktop.
- The existing Docker Free subscription has been renamed **Docker Personal**.
- **No changes** to Docker Engine or any other upstream **open source** Docker or Moby project.
To understand how these changes affect you, read the [FAQs](https://www.docker.com/pricing/faq){: target="*blank" rel="noopener" class="*" id="dkr_docs_relnotes_btl"}. For more information, see [Docker subscription overview](../../../subscription/index.md).
### Upgrades
- [Compose V2 RC2](https://github.com/docker/compose-cli/releases/tag/v2.0.0-rc.2)
- Fixed project name to be case-insensitive for `compose down`. See [docker/compose-cli#2023](https://github.com/docker/compose-cli/issues/2023)
- Fixed non-normalized project name.
- Fixed port merging on partial reference.
- [Kubernetes 1.21.4](https://github.com/kubernetes/kubernetes/releases/tag/v1.21.4)
### Bug fixes and minor changes
- Fixed a bug where SSH was not available for builds from git URL. Fixes [for-mac#5902](https://github.com/docker/for-mac/issues/5902)

View File

@ -1,100 +0,0 @@
---
description: Disk utilization
keywords: mac, disk
title: Disk utilization in Docker for Mac
redirect_from:
- /docker-for-mac/space/
---
Docker Desktop stores Linux containers and images in a single, large "disk image" file in the Mac filesystem. This is different from Docker on Linux, which usually stores containers and images in the `/var/lib/docker` directory.
## Where is the disk image file?
To locate the disk image file, select the Docker icon and then
**Preferences** > **Resources** > **Advanced**.
![Disk preferences](images/menu/prefs-advanced.png){:width="750px"}
The **Advanced** tab displays the location of the disk image. It also displays the maximum size of the disk image and the actual space the disk image is consuming. Note that other tools might display space usage of the file in terms of the maximum file size, and not the actual file size.
## If the file is too big
If the disk image file is too big, you can:
- move it to a bigger drive,
- delete unnecessary containers and images, or
- reduce the maximum allowable size of the file.
### Move the file to a bigger drive
To move the disk image file to a different location:
1. Select **Preferences** > **Resources** > **Advanced**.
2. In the **Disk image location** section, click **Browse** and choose a new location for the disk image.
3. Click **Apply & Restart** for the changes to take effect.
Do not move the file directly in Finder as this can cause Docker Desktop to lose track of the file.
### Delete unnecessary containers and images
Check whether you have any unnecessary containers and images. If your client and daemon API are running version 1.25 or later (use the `docker version` command on the client to check your client and daemon API versions), you can see the detailed space usage information by running:
```console
$ docker system df -v
```
Alternatively, to list images, run:
```console
$ docker image ls
```
and then, to list containers, run:
```console
$ docker container ls -a
```
If there are lots of redundant objects, run the command:
```console
$ docker system prune
```
This command removes all stopped containers, unused networks, dangling images, and build cache.
It might take a few minutes to reclaim space on the host depending on the format of the disk image file:
- If the file is named `Docker.raw`: space on the host should be reclaimed within a few seconds.
- If the file is named `Docker.qcow2`: space will be freed by a background process after a few minutes.
Space is only freed when images are deleted. Space is not freed automatically when files are deleted inside running containers. To trigger a space reclamation at any point, run the command:
```console
$ docker run --privileged --pid=host docker/desktop-reclaim-space
```
Note that many tools report the maximum file size, not the actual file size.
To query the actual size of the file on the host from a terminal, run:
```console
$ cd ~/Library/Containers/com.docker.docker/Data/vms/0/data
$ ls -klsh Docker.raw
2333548 -rw-r--r--@ 1 username staff 64G Dec 13 17:42 Docker.raw
```
In this example, the actual size of the disk is `2333548` KB, whereas the maximum size of the disk is `64` GB.
### Reduce the maximum size of the file
To reduce the maximum size of the disk image file:
1. Select the Docker icon and then select **Preferences** > **Resources** > **Advanced**.
2. The **Disk image size** section contains a slider that allows you to change the maximum size of the disk image. Adjust the slider to set a lower limit.
3. Click **Apply & Restart**.
When you reduce the maximum size, the current disk image file is deleted, and therefore, all containers and images will be lost.

View File

@ -359,7 +359,7 @@ Docker Desktop 2.1.0.5 contains a Kubernetes upgrade. Note that your local Kuber
### New
Docker Desktop now enables you to sign into Docker Hub using two-factor authentication.
For more information, see [Two-factor authentication](../mac/index.md#docker-hub).
## Docker Desktop Community 2.1.0.3
2019-09-16

View File

@ -487,7 +487,7 @@ Docker Desktop 2.1.0.4 contains a Kubernetes upgrade. Note that your local Kuber
### New
Docker Desktop now enables you to sign into Docker Hub using two-factor authentication. For more information, see [Two-factor authentication](../windows/index.md#two-factor-authentication).
Docker Desktop now enables you to sign into Docker Hub using two-factor authentication.
## Docker Desktop Community 2.1.0.3
2019-09-16

View File

@ -195,7 +195,7 @@ This page contains release notes for older versions of Docker Desktop for Mac.
- VM entirely built with Linuxkit
- VM disk size can be changed in disk preferences. (See [docker/for-mac#1037](https://github.com/docker/for-mac/issues/1037))
- For systems running APFS on SSD on High Sierra, use `raw` format VM disks by default. This improves disk throughput (from 320MiB/sec to 600MiB/sec in `dd` on a 2015 MacBook Pro) and disk space handling.
Existing disks are kept in qcow format, if you want to switch to raw format you need to "Remove all data" or "Reset to factory defaults". See [Disk utilization](../mac/space.md)
Existing disks are kept in qcow format, if you want to switch to raw format you need to "Remove all data" or "Reset to factory defaults".
- DNS name `docker.for.mac.host.internal` should be used instead of `docker.for.mac.localhost` (still valid) for host resolution from containers, since since there is an RFC banning the use of subdomains of localhost. See https://tools.ietf.org/html/draft-west-let-localhost-be-localhost-06.
* Bug fixes and minor changes

View File

@ -10,7 +10,7 @@ redirect_from:
This page contains information about Docker Desktop Edge releases. Edge releases give you early access to our newest features. Note that some of the features may be experimental, and some of them may not ever reach the Stable release.
For information about Stable releases, see the [Stable release notes](../mac/index.md). For Docker Desktop system requirements, see
For Docker Desktop system requirements, see
[What to know before you install](../install/mac-install.md#system-requirements).
## Docker Desktop Community 2.5.4
@ -1683,7 +1683,7 @@ TCP connection is idle for more than five minutes (related to
**New**
- More options when moving disk image (see [Storage location](../mac/space.md) under Advanced preference settings)
- More options when moving disk image
- Filesharing and daemon table empty fields are editable
- DNS forwarder ignores responses from malfunctioning servers ([docker/for-mac#1025](https://github.com/docker/for-mac/issues/1025))
- DNS forwarder send all queries in parallel, process results in order
@ -2287,7 +2287,7 @@ events or unexpected unmounts.
**Bug fixes and minor changes**
* Documentation moved to [https://docs.docker.com/desktop/mac/](../mac/index.md)
* Documentation moved to [https://docs.docker.com/desktop/mac/](../index.md)
* Allow non-admin users to launch the app for the first time (using admin creds)
* Prompt non-admin users for admin password when needed in Preferences
* Fixed download links, documentation links

View File

@ -10,7 +10,7 @@ redirect_from:
This page contains information about Docker Desktop Edge releases. Edge releases give you early access to our newest features. Note that some of the features may be experimental, and some of them may not ever reach the Stable release.
For information about Stable releases, see the [Stable release notes](../windows/release-notes/index.md). For Docker Desktop system requirements, see
For Docker Desktop system requirements, see
[What to know before you install](../install/windows-install.md#system-requirements).
## Docker Desktop Community 2.5.4
@ -2009,7 +2009,7 @@ registry access (fixes [docker/for-win#569](https://github.com/docker/for-win/is
**New**
- Windows containers settings panel and options are working. In previous releases, settings were not implemented for
[Windows containers mode](../windows/index.md#switch-between-windows-and-linux-containers).
[Windows containers mode](../faqs/windowsfaqs.md#how-do-i-switch-between-windows-and-linux-containers).
- Windows containers: Restart from the settings panel works
- Windows containers: Factory default
- Windows containers: `Daemon.json` can be modified

View File

@ -11,6 +11,7 @@ redirect_from:
- /docker-for-windows/release-notes/
- /desktop/windows/release-notes/
- /desktop/linux/release-notes/
- /mackit/release-notes/
---
This page contains information about the new features, improvements, known issues, and bug fixes in Docker Desktop releases.
@ -23,13 +24,100 @@ Take a look at the [Docker Public Roadmap](https://github.com/docker/roadmap/pro
For frequently asked questions about Docker Desktop releases, see [FAQs](faqs/general.md/#releases)
## Docker Desktop 4.11.0
2022-07-28
> Download Docker Desktop
>
> {% include desktop-install.html %}
### New
- Docker Desktop is now fully supported for Docker Business customers inside VMware ESXi and Azure VMs. For more information, see [Run Docker Desktop inside a VM or VDI environment](../desktop/vm-vdi.md)
- Added two new extensions ([vcluster](https://hub.docker.com/extensions/loftsh/vcluster-dd-extension) and [PGAdmin4](https://hub.docker.com/extensions/mochoa/pgadmin4-docker-extension)) to the Extensions Marketplace.
- The ability to sort extensions has been added to the Extensions Marketplace.
- Fixed a bug that caused some users to be asked for feedback too frequently. You'll now only be asked for feedback twice a year.
- Added custom theme settings for Docker Desktop. This allows you to specify dark or light mode for Docker Desktop independent of your device settings. Fixes [docker/for-win#12747](https://github.com/docker/for-win/issues/12747)
- Added a new flag for Windows installer. `--no-windows-containers` disables the Windows containers integration.
- Added a new flag for Mac install command. `--user <username>` sets up Docker Desktop for a specific user, preventing them from needing an admin password on first run.
### Upgrades
- [Docker Compose v2.7.0](https://github.com/docker/compose/releases/tag/v2.7.0)
- [Docker Compose "Cloud Integrations" v1.0.28](https://github.com/docker/compose-cli/releases/tag/v1.0.28)
- [Kubernetes v1.24.2](https://github.com/kubernetes/kubernetes/releases/tag/v1.24.2)
- [Go 1.18.4](https://github.com/golang/go/releases/tag/go1.18.4)
### Bug fixes and minor changes
#### For all platforms
- Added the Container / Compose icon as well as the exposed port(s) / exit code to the Containers screen.
- Updated the Docker theme palette colour values to match our design system.
- Improved an error message from `docker login` if Registry Access Management is blocking the Docker engine's access to Docker Hub.
- Increased throughput between the Host and Docker. For example increasing performance of `docker cp`.
- Collecting diagnostics takes less time to complete.
- Selecting or deselecting a compose app on the containers overview now selects/deselects all its containers.
- Tag names on the container overview image column are visible.
- Added search decorations to the terminal's scrollbar so that matches outside the viewport are visible.
- Fixed an issue with search which doesn't work well on containers page [docker/for-win#12828](https://github.com/docker/for-win/issues/12828).
- Fixed an issue which caused infinite loading on the **Volume** screen [docker/for-win#12789](https://github.com/docker/for-win/issues/12789).
- Fixed a problem in the Container UI where resizing or hiding columns didn't work. Fixes [docker/for-mac#6391](https://github.com/docker/for-mac/issues/6391).
- Fixed a bug where the state of installing, updating, or uninstalling multiple extensions at once was lost when leaving the Marketplace screen.
- Fixed an issue where the compose version in the about page would only get updated from v2 to v1 after restarting Docker Desktop.
- Fixed an issue where users cannot see the log view because their underlying hardware didn't support WebGL2 rendering. Fixes [docker/for-win#12825](https://github.com/docker/for-win/issues/12825).
- Fixed a bug where the UI for Containers and Images got out of sync.
- Fixed a startup race when the experimental virtualization framework is enabled.
#### For Mac
- Fixed an issue executing Compose commands from the UI. Fixes [docker/for-mac#6400](https://github.com/docker/for-mac/issues/6400).
#### For Windows
- Fixed horizontal resizing issue. Fixes [docker/for-win#12816](https://github.com/docker/for-win/issues/12816).
- If an HTTP/HTTPS proxy is configured in the UI, then it automatically sends traffic from image builds and running containers to the proxy. This avoids the need to separately configure environment variables in each container or build.
- Added the `--backend=windows` installer option to set Windows containers as the default backend.
#### For Linux
- Fixed bug related to setting up file shares with spaces in their path.
## Docker Desktop 4.10.1
2022-07-05
> Download Docker Desktop
>
> {% include desktop-install.html %}
> [Windows](https://desktop.docker.com/win/main/amd64/82475/Docker%20Desktop%20Installer.exe) |
> [Mac with Intel chip](https://desktop.docker.com/mac/main/amd64/82475/Docker.dmg) |
> [Mac with Apple chip](https://desktop.docker.com/mac/main/arm64/82475/Docker.dmg) |
> [Debian](https://desktop.docker.com/linux/main/amd64/82475/docker-desktop-4.10.1-amd64.deb) |
> [RPM](https://desktop.docker.com/linux/main/amd64/82475/docker-desktop-4.10.1-x86_64.rpm) |
> [Arch package](https://desktop.docker.com/linux/main/amd64/82475/docker-desktop-4.10.1-x86_64.pkg.tar.zst)
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="headingSeven">
<h5 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#accordion" href="#collapseSeven" aria-expanded="true" aria-controls="collapseSeven">
Checksums
<i class="fa fa-chevron-down"></i>
</a>
</h5>
</div>
<div id="collapseSeven" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingSeven">
<div class="panel-body">
<li><b>Windows:</b> SHA-256 fe430d19d41cc56fd9a4cd2e22fc0e3522bed910c219208345918c77bbbd2a65</li>
<li><b>Mac Intel:</b> SHA-256 8be8e5245d6a8dbf7b8cb580fb7d99f04cc143c95323695c0d9be4f85dd60b0e</li>
<li><b>Mac Arm:</b> SHA-256 b3d4ef222325bde321045f3b8d946c849cd2812e9ad52a801000a95edb8af57b</li>
<li><b>Linux DEB:</b> SHA-256 9363bc584478c5c7654004bacb51429c275b58a868ef43c3bc6249d5844ec5be</li>
<li><b>Linux RPM:</b> SHA-256 92371d1a1ae4b57921721da95dc0252aefa4c79eb12208760c800ac07c0ae1d2</li>
<li><b>Linux Arch:</b> SHA-256 799af244b05e8b08f03b6e0dbbc1dfcc027ff49f15506b3c460e0f9bae06ca5d</li>
</div>
</div>
</div>
</div>
### Bug fixes and minor changes
@ -254,7 +342,7 @@ For frequently asked questions about Docker Desktop releases, see [FAQs](faqs/ge
### New
- Released [Docker Desktop for Linux](https://docs.docker.com/desktop/linux/).
- Released [Docker Desktop for Linux](install/linux-install.md).
- Beta release of [Docker Extensions](https://docs.docker.com/desktop/extensions) and Extensions SDK.
- Created a Docker Homepage where you can run popular images and discover how to use them.
- [Compose V2 is now GA](https://www.docker.com/blog/announcing-compose-v2-general-availability/)
@ -283,7 +371,7 @@ For frequently asked questions about Docker Desktop releases, see [FAQs](faqs/ge
### New
- Released [Docker Desktop for Linux](https://docs.docker.com/desktop/linux/).
- Released [Docker Desktop for Linux](install/linux-install.md).
- Beta release of [Docker Extensions](https://docs.docker.com/desktop/extensions) and Extensions SDK.
- Created a Docker Homepage where you can run popular images and discover how to use them.
- [Compose V2 is now GA](https://www.docker.com/blog/announcing-compose-v2-general-availability/)

View File

@ -18,6 +18,8 @@ On the **General** tab, you can configure when to start Docker and specify other
- **Start Docker Desktop when you log in**. Select to automatically start Docker
Desktop when you log into your machine.
- **Choose Theme for Docker Desktop**. Choose whether you want to apply a **Light** or **Dark** theme to Docker Desktop. Alternatively you can set Docker Desktop to **Use System Settings**.
- **Send usage statistics**. Select so Docker Desktop sends diagnostics,
crash reports, and usage data. This information helps Docker improve and
troubleshoot the application. Clear the check box to opt out. Docker may

View File

@ -2,6 +2,11 @@
description: Docker Desktop settings
keywords: settings, preferences, proxy, file sharing, resources, kubernetes, Docker Desktop, Mac
title: Change Docker Desktop preferences on Mac
redirect_from:
- /docker-for-mac/mutagen-caching/
- /docker-for-mac/mutagen/
- /docker-for-mac/osxfs-caching/
- /docker-for-mac/osxfs/
---
This page provides information on how to configure and manage your Docker Desktop settings.
@ -18,6 +23,8 @@ On the **General** tab, you can configure when to start Docker and specify other
- **Start Docker Desktop when you log in**. Select to automatically start Docker
Desktop when you log into your machine.
- **Choose Theme for Docker Desktop**. Choose whether you want to apply a **Light** or **Dark** theme to Docker Desktop. Alternatively you can set Docker Desktop to **Use System Settings**.
- **Include VM in Time Machine backups**. Select to back up the Docker Desktop
virtual machine. This option is disabled by default.

View File

@ -18,6 +18,8 @@ On the **General** tab, you can configure when to start Docker and specify other
- **Start Docker Desktop when you log in**. Select to automatically start Docker
Desktop when you log into your machine.
- **Choose Theme for Docker Desktop**. Choose whether you want to apply a **Light** or **Dark** theme to Docker Desktop. Alternatively you can set Docker Desktop to **Use System Settings**.
- **Expose daemon on tcp://localhost:2375 without TLS**. Check this option to
enable legacy clients to connect to the Docker daemon. You must use this option
with caution as exposing the daemon without TLS can result in remote code
@ -90,7 +92,7 @@ Linux containers. This is especially useful for editing source code in an IDE on
the host while running and testing the code in a container.
Note that configuring file sharing is not necessary for Windows containers,
only [Linux containers](../windows/index.md#switch-between-windows-and-linux-containers).
only [Linux containers](../faqs/windowsfaqs.md#how-do-i-switch-between-windows-and-linux-containers).
If a directory is not shared with a Linux container you may get `file not found`
or `cannot start service` errors at runtime. See [Volume mounting requires shared folders for Linux containers](../troubleshoot/topics.md).

View File

@ -57,6 +57,10 @@ Docker Desktop excludes support for the following types of issues:
* Reimbursing and expenses spent for third-party services not provided by Docker
* Docker Support excludes training, customization, and integration
>Note
>
> Support for [running Docker Desktop in a VM or VDI environment](vm-vdi.md) is only available to Docker Business customers.
### What versions are supported?
We currently only offer support for the latest version of Docker Desktop. If you are running an older version, you may be asked to upgrade before we investigate your support request.

View File

@ -3,8 +3,6 @@ description: Known issues for Mac
keywords: mac, troubleshooting, known issues
title: Known issues for Docker Desktop on Mac
---
## Known issues
* The following issues are seen when using the `virtualization.framework` experimental feature:
* Some VPN clients can prevent the VM running Docker from communicating with the host, preventing Docker Desktop starting correctly. See [docker/for-mac#5208](https://github.com/docker/for-mac/issues/5208).

View File

@ -215,7 +215,7 @@ $ /usr/bin/log show --debug --info --style syslog --last 1d --predicate "$pred"
### In the Console app
Mac provides a built-in log viewer, named "Console", which you can use to check
Mac provides a built-in log viewer, named **Console**, which you can use to check
Docker logs.
The Console lives in `/Applications/Utilities`. You can search for it with
@ -254,7 +254,11 @@ to learn how to view the Docker Daemon logs.
</div></div>
## What's next?
- View [Troubleshoot topics](topics.md).
- Implement [workarounds for common problems](workarounds.md)
- If you're a Mac user, see [Known issues for Mac](known-issues.md)

View File

@ -280,55 +280,6 @@ C:\Program Files\Docker\docker.exe:
See 'C:\Program Files\Docker\docker.exe run --help'.
```
### Running Docker Desktop in nested virtualization scenarios
Docker Desktop can run inside a Hyper-V VM, see
[Microsoft's nested virtualization user guide](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/nested-virtualization) for more information.
Docker Desktop can also run inside a Windows 10 VM running on apps like Parallels or VMware Fusion on a Mac provided that the VM is properly configured.
However, problems and intermittent failures may still occur due to the way these apps virtualize the hardware. For these reasons, _**Docker Desktop is not supported in nested virtualization scenarios**_. It might work
in some cases, and not in others.
For best results, we recommend you run Docker Desktop natively on a Windows system (to work with Windows or Linux containers), or on Mac or Linux to work with Linux containers.
#### If you still want to use nested virtualization
* If using Hyper-V, make sure nested virtualization support is enabled for the
Windows VM by running the following powershell as Administrator:
```none
Set-VMProcessor -VMName <Windows VM Name> -ExposeVirtualizationExtensions $true
```
* If using VMware or Parallels, make sure nested virtualization support is enabled.
Check the settings in **Hardware > CPU & Memory > Advanced Options > Enable
nested virtualization** (the exact menu sequence might vary slightly).
* Configure your Windows VM with at least 2 CPUs and sufficient memory to run your
workloads.
* Make sure your system is more or less idle.
* Make sure your Windows OS is up-to-date. There have been several issues with
some insider builds.
* The processor you have may also be relevant. For example, Westmere based Mac
Pros have some additional hardware virtualization features over Nehalem based
Mac Pros and so do newer generations of Intel processors. For Hyper-V, check
[Microsoft's nested virtualization user guide](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/nested-virtualization)
to verify the host OS version is supported on your hardware.
#### Typical failures we see with nested virtualization
* Sometimes the VM fails to boot when Linux tries to calibrate the time stamp
counter (TSC). This process is quite timing sensitive and may fail when
executed inside a VM which itself runs inside a VM. CPU utilization is also
likely to be higher.
* Ensure "PMU Virtualization" is turned off in Parallels on Macs. Check the
settings in **Hardware > CPU & Memory > Advanced Settings > PMU
Virtualization**.
### Networking issues
IPv6 is not (yet) supported on Docker Desktop.

Some files were not shown because too many files have changed in this diff Show More