mirror of https://github.com/docker/docs.git
Merge branch 'docker:master' into patch-1
This commit is contained in:
commit
7fa00f6ef5
|
@ -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 }}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
.jekyll-metadata
|
||||
_site/**
|
||||
.sass-cache/**
|
||||
.vscode
|
||||
CNAME
|
||||
_kbase/**
|
||||
/vendor
|
||||
|
|
28
Dockerfile
28
Dockerfile
|
@ -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
|
||||
|
|
1
Gemfile
1
Gemfile
|
@ -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'
|
||||
|
|
14
Gemfile.lock
14
Gemfile.lock
|
@ -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
|
||||
|
|
25
_config.yml
25
_config.yml
|
@ -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"
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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:
|
||||
|
||||
|
|
|
@ -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/
|
||||
|
|
|
@ -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/
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -84,17 +84,18 @@
|
|||
<div class="bottom_footer">
|
||||
<div class="footer-copyright col-xs-12 col-md-8">
|
||||
<p class="copyright">
|
||||
Copyright © 2013-2021 Docker Inc. All rights reserved. </p>
|
||||
Copyright © 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>
|
||||
|
|
|
@ -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">
|
||||
|
||||
|
|
|
@ -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 -%}
|
||||
|
|
|
@ -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:"," -%}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
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.
|
@ -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
|
||||
---
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
title: "Building from Compose file"
|
||||
keywords: build, buildx, bake, buildkit, compose
|
||||
fetch_remote:
|
||||
line_start: 2
|
||||
line_end: -1
|
||||
---
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
title: "Configuring builds"
|
||||
keywords: build, buildx, bake, buildkit, hcl, json
|
||||
fetch_remote:
|
||||
line_start: 2
|
||||
line_end: -1
|
||||
---
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
title: "Bake file definition"
|
||||
keywords: build, buildx, bake, buildkit, hcl, json, compose
|
||||
fetch_remote:
|
||||
line_start: 2
|
||||
line_end: -1
|
||||
---
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
title: "User defined HCL functions"
|
||||
keywords: build, buildx, bake, buildkit, hcl
|
||||
fetch_remote:
|
||||
line_start: 2
|
||||
line_end: -1
|
||||
---
|
|
@ -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
|
||||
---
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
title: "Docker container driver"
|
||||
keywords: build, buildx, driver, builder, docker-container
|
||||
fetch_remote:
|
||||
line_start: 2
|
||||
line_end: -1
|
||||
---
|
|
@ -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
|
||||
---
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
title: "Kubernetes driver"
|
||||
keywords: build, buildx, driver, builder, kubernetes
|
||||
fetch_remote:
|
||||
line_start: 2
|
||||
line_end: -1
|
||||
---
|
|
@ -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}
|
||||
|
|
@ -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 BuildKit’s 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).
|
||||
|
|
|
@ -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
|
||||
```
|
|
@ -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.
|
|
@ -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!
|
||||
|
|
|
@ -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, it’s 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.
|
||||
Here’s 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`.
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
```
|
||||
|
||||
|
|
|
@ -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?
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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)
|
||||
...
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
```
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
@ -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 }
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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?
|
||||
|
||||
|
|
|
@ -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?
|
||||
|
|
|
@ -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?
|
||||
|
|
|
@ -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="_"}.
|
|
@ -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{: .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 {: .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 |
|
@ -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).
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
```
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
||||
{:width="300px"}
|
||||
{:width="300px"}
|
||||
|
||||
2. The Docker menu ({: .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.
|
||||
|
|
|
@ -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 {: .inline} > **Pause** to pause Docker Desktop.
|
||||
|
||||
{: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 {: .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="_"}.
|
|
@ -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 host’s 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`.
|
|
@ -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.
|
|
@ -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**.
|
||||
|
||||
{: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.
|
|
@ -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**.
|
||||
|
||||
{: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 {: .inline} > **Pause** to pause Docker Desktop.
|
||||
|
||||
{: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 {: .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, [What’s 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="_"}.
|
|
@ -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 host’s 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`.
|
|
@ -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 won’t 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 won’t be exposed on the host.
|
||||
- Spindump diagnostics for fine grained CPU utilization are not gathered.
|
||||
|
||||
## Privileged Helper
|
||||
|
|
@ -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 user’s 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 user’s 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)
|
|
@ -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**.
|
||||
|
||||
{: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.
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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/)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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).
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -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
Loading…
Reference in New Issue