Remove enterprise-docs directory
|
|
@ -1,25 +0,0 @@
|
|||
---
|
||||
title: "Docker Desktop Enterprise"
|
||||
summary: task
|
||||
visibleto: employees # logged in with any Docker ID that has @docker.com email as primary email for Docker ID
|
||||
author: paige.hargrave
|
||||
platform:
|
||||
- mac
|
||||
- windows
|
||||
tags:
|
||||
- installing # pick from kbase list: https://github.com/docker/kbase/blob/master/README.md#prerequisites
|
||||
notoc: true
|
||||
---
|
||||
|
||||
Docker Desktop Enterprise documentation for Mac
|
||||
-----------------------------------------------
|
||||
|
||||
- [Install Docker Desktop Enterprise](../install-guide/README.md)
|
||||
- [Getting started](getting-started/README.md)
|
||||
- [Environment configuration file (administrators only)](admin-config/README.md)
|
||||
- [Troubleshooting](troubleshooting/README.md)
|
||||
- [Frequently asked questions](../faq/faq.md)
|
||||
- <a href="https://docs.docker.com/engine/" target="_blank">Docker command line reference</a>
|
||||
- <a href="https://docs.docker.com/compose/" target="_blank">Docker Compose documentation</a>
|
||||
- <a href="https://docs.docker.com/engine/docker-overview/#container-format" target="_blank">Docker Engine documentation</a>
|
||||
|
||||
|
|
@ -1,133 +0,0 @@
|
|||
---
|
||||
title: "Environment configuration on Mac"
|
||||
summary: task
|
||||
visibleto: employees # logged in with any Docker ID that has @docker.com email as primary email for Docker ID
|
||||
author: paige.hargrave
|
||||
platform:
|
||||
- mac
|
||||
tags:
|
||||
- installing # pick from kbase list: https://github.com/docker/kbase/blob/master/README.md#prerequisites
|
||||
---
|
||||
|
||||
Environment configuration on Mac (administrators only)
|
||||
------------------------------------------------------
|
||||
|
||||
The administrator configuration file allows you to customize and standardize your Docker Desktop environment across the organization. When you install Docker Desktop Enterprise, a configuration file with default values is installed in, and must remain in, the following location:
|
||||
|
||||
When you install Docker Desktop Enterprise, a configuration file with default values is installed in, and must remain in, the following location:
|
||||
|
||||
`/Library/Application Support/Docker/DockerDesktop/admin-settings.json`
|
||||
|
||||
To edit `admin-settings.json`, you must have sudo access privileges.
|
||||
|
||||
#### Syntax for `admin-settings.json`:
|
||||
|
||||
1. `configurationFileVersion`: This must be the first parameter listed in `admin-settings.json`. It specifies the version of the configuration file format and must be set to 1.
|
||||
|
||||
2. A nested list of configuration parameters, each of which contains a minimum of
|
||||
the following two settings:
|
||||
|
||||
- `locked`: If set to `true`, users without elevated access privileges are not able to edit this setting
|
||||
from the UI or by directly editing the `admin-settings.json` file. If set to `false`, users without elevated access privileges can change this setting from the UI or by directly editing
|
||||
`admin-settings.json`. If this setting is omitted, the default value is `false'???
|
||||
|
||||
- `value`: Specifies the value of the parameter. The default value, contained in the initial `admin-settings.json` file that is installed with Docker Desktop Enterprise, is used when first running Docker Desktop Enterprise and after a reset to factory defaults. If this setting is omitted, the default value is used.
|
||||
|
||||
#### Parameters and settings
|
||||
The following `admin-settings.json` code and table provide the required syntax and descriptions for parameters and values:
|
||||
|
||||
```json
|
||||
{
|
||||
"configurationFileVersion": 1,
|
||||
|
||||
"dockerCliOptions": {
|
||||
"stackOrchestrator": {
|
||||
"locked": false,
|
||||
"value": "swarm"
|
||||
}
|
||||
},
|
||||
|
||||
"proxy": {
|
||||
"locked": false,
|
||||
"value": {
|
||||
"http": "http://proxy.docker.com:8080",
|
||||
"https": "https://proxy.docker.com:8080",
|
||||
"exclude": "docker.com,github.com"
|
||||
}
|
||||
},
|
||||
"linuxVM": {
|
||||
"cpus": {
|
||||
"locked": false,
|
||||
"value": 2
|
||||
},
|
||||
"memoryMiB": {
|
||||
"locked": false,
|
||||
"value": 2048
|
||||
},
|
||||
"swapMiB": {
|
||||
"locked": false,
|
||||
"value": 1024
|
||||
},
|
||||
"diskPath": {
|
||||
"locked": false,
|
||||
"value": null
|
||||
},
|
||||
"diskSizeMiB": {
|
||||
"locked": false,
|
||||
"value": 65536
|
||||
},
|
||||
"filesharingDirectories": {
|
||||
"locked":false,
|
||||
"value":["/Users", ...]
|
||||
}
|
||||
"dockerDaemonOptions": {
|
||||
"experimental": {
|
||||
"locked": false,
|
||||
"value": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"kubernetes": {
|
||||
|
||||
"enabled": {
|
||||
"locked": false,
|
||||
"value": false
|
||||
},
|
||||
"showSystemContainers": {
|
||||
"locked": false,
|
||||
"value": false
|
||||
},
|
||||
"podNetworkCIDR": {
|
||||
"locked": false,
|
||||
"value": null
|
||||
},
|
||||
"serviceCIDR": {
|
||||
"locked": false,
|
||||
"value": null
|
||||
}
|
||||
},
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
| Parameter | Description |
|
||||
| :--------------------------------- | :--------------------------------- |
|
||||
| `configurationFileVersion` | Specifies the version of the configuration file format. |
|
||||
| `dockerCliOptions` | Specifies key-value pairs in the user's `%HOME%\\.docker\\config.json` file. In the sample code provided, the orchestration for docker stack commands is set to `swarm` rather than `kubernetes`. |
|
||||
| `proxy` | The `http` setting specifies the HTTP proxy setting. The `https` setting specifies the HTTPS proxy setting. The `exclude` setting specifies a comma-separated list of hosts and domains to bypass the proxy. **Warning:** This parameter should be locked after being set: `locked: "true"`. |
|
||||
| `linuxVM` | Parameters and settings related to the Linux VM - grouped together in this example for convenience. |
|
||||
| `cpus` | Specifies the default number of virtual CPUs for the VM. If the physical machine has only 1 core, the default value is set to 1. |
|
||||
| `memoryMiB` | Specifies the amount of memory in MiB (1 MiB = 1048576 bytes) allocated for the VM.|
|
||||
| `swapMiB` | Specifies the amount of memory in MiB (1 MiB = 1048576 bytes) allocated for the swap file. |
|
||||
| `diskPath` | **Warning:** Do not lock this parameter as it can potentially break the version pack switch. |
|
||||
| `diskSizeMiB` | Specifies the amount of disk storage in MiB (1 MiB = 1048576 bytes) allocated for images and containers. |
|
||||
| `filesharingDirectories` | The host folders that users can bind-mount in containers. |
|
||||
| `dockerDaemonOptions` | Overrides the options in the linux daemon config file. For more information, see [the Docker engine reference](https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file) |
|
||||
| (End of `linuxVM` section.) | |
|
||||
| `kubernetes` | Parameters and settings related to kubernetes options - grouped together here for convenience. |
|
||||
| `enabled` | If `locked` is set to `true`, the k8s cluster starts when Docker Desktop Enterprise is started. |
|
||||
| `showSystemContainers` | If true, displays k8s internal containers when running docker commands such as `docker ps`. |
|
||||
| `podNetworkCIDR` | This is currently unimplemented. `locked` must be set to true. |
|
||||
| `serviceCIDR` | This is currently unimplemented. `locked` must be set to true. |
|
||||
| (End of `kubernetes` section.) | |
|
||||
|
|
@ -1,532 +0,0 @@
|
|||
---
|
||||
title: "Getting started with Docker Desktop Enterprise on Mac"
|
||||
summary: task
|
||||
visibleto: employees # logged in with any Docker ID that has @docker.com email as primary email for Docker ID
|
||||
author: paige.hargrave
|
||||
platform:
|
||||
- mac
|
||||
tags:
|
||||
- deploy # pick from kbase list: https://github.com/docker/kbase/blob/master/README.md#prerequisites
|
||||
- management
|
||||
notoc: true
|
||||
---
|
||||
|
||||
# Getting started with Docker Desktop Enterprise on Mac
|
||||
|
||||
## Explore the application
|
||||
|
||||
1. Open a command-line terminal and test that your installation works by
|
||||
running the simple Docker image,
|
||||
[hello-world](https://hub.docker.com/_/hello-world/){: target="_blank" class="_"}.
|
||||
|
||||
```shell
|
||||
$ docker run hello-world
|
||||
|
||||
Unable to find image 'hello-world:latest' locally
|
||||
latest: Pulling from library/hello-world
|
||||
ca4f61b1923c: Pull complete
|
||||
Digest: sha256:ca0eeb6fb05351dfc8759c20733c91def84cb8007aa89a5bf606bc8b315b9fc7
|
||||
Status: Downloaded newer image for hello-world:latest
|
||||
|
||||
Hello from Docker!
|
||||
This message shows that your installation appears to be working correctly.
|
||||
...
|
||||
```
|
||||
|
||||
2. Start a Dockerized web server. Like the `hello-world` image above, if the
|
||||
image is not found locally, Docker pulls it from Docker Hub.
|
||||
|
||||
```bash
|
||||
$ docker run --detach --publish=80:80 --name=webserver nginx
|
||||
```
|
||||
|
||||
3. In a web browser, go to `http://localhost/` to view the nginx homepage.
|
||||
Because we specified the default HTTP port, it isn't necessary to append
|
||||
`:80` at the end of the URL.
|
||||
|
||||

|
||||
|
||||
> Early beta releases used `docker` as the hostname to build the URL. Now,
|
||||
> ports are exposed on the private IP addresses of the VM and forwarded to
|
||||
> `localhost` with no other host name set.
|
||||
|
||||
4. View the details on the container while your web server is running (with
|
||||
`docker container ls` or `docker ps`):
|
||||
|
||||
```none
|
||||
$ docker container ls
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
56f433965490 nginx "nginx -g 'daemon off" About a minute ago Up About a minute 0.0.0.0:80->80/tcp, 443/tcp webserver
|
||||
```
|
||||
|
||||
5. Stop and remove containers and images with the following commands. Use the
|
||||
"all" flag (`--all` or `-a`) to view stopped containers.
|
||||
|
||||
```shell
|
||||
$ docker container ls
|
||||
$ docker container stop webserver
|
||||
$ docker container ls -a
|
||||
$ docker container rm webserver
|
||||
$ docker image ls
|
||||
$ docker image rm nginx
|
||||
```
|
||||
|
||||
## Preferences menu
|
||||
|
||||
Choose {: .inline} → **Preferences** from the
|
||||
menu bar and configure the runtime options described below.
|
||||
|
||||

|
||||
|
||||
**Note**: Administrators have the ability to lock some configuration options. No error message is displayed if you attempt to change the value of a locked configuration option, but the value will remain unchanged.
|
||||
|
||||
### General
|
||||
|
||||

|
||||
|
||||
General settings are:
|
||||
|
||||
- **Start Docker when you log in**: Uncheck this option if you don't want Docker
|
||||
to start when you open your session.
|
||||
|
||||
- **Automatically check for updates** notifies you when an update is available.
|
||||
Click **OK** to accept and install updates (or cancel to keep the current
|
||||
version). If you disable this option, you can still find out about updates
|
||||
manually by choosing {: .inline} → **Check
|
||||
for Updates**.
|
||||
|
||||
- **Include VM in Time Machine backups** backs up the Docker Desktop Enterprise virtual
|
||||
machine. (Disabled by default.)
|
||||
|
||||
- **Securely store Docker logins in MacOS keychain** stores your Docker login
|
||||
credentials. (Enabled by default.)
|
||||
|
||||
- **Send usage statistics** — Send diagnostics, crash reports, and usage
|
||||
data to Docker. This information helps Docker improve the application and get
|
||||
more context for troubleshooting problems. (Enabled by default.)
|
||||
|
||||
### File sharing
|
||||
|
||||
Choose which local directories to share with your containers. File sharing is
|
||||
required for volume mounting if the project lives outside of the `/Users`
|
||||
directory. In that case, share the drive where the Dockerfile and volume are
|
||||
located. Otherwise, you get `file not found` or `cannot start service errors at
|
||||
runtime`.
|
||||
|
||||

|
||||
|
||||
**Note**: Administrators have the ability to lock some configuration options. No error message is displayed if you attempt to change the value of a locked configuration option, but the value will remain unchanged.
|
||||
|
||||
File share settings are:
|
||||
|
||||
- **Add a Directory**: Click `+` and navigate to the directory you want to add.
|
||||
|
||||
- **Apply & Restart** makes the directory available to containers using Docker's
|
||||
bind mount (`-v`) feature.
|
||||
|
||||
There are some limitations on the directories that can be shared:
|
||||
|
||||
- They cannot be a subdirectory of an already shared directory.
|
||||
- They cannot already exist inside of Docker.
|
||||
|
||||
For more information, see:
|
||||
|
||||
- [Namespaces](https://docs.docker.com/docker-for-mac/osxfs/#namespaces){: target="_blank" class="_"} in the topic on
|
||||
[osxfs file system sharing](https://docs.docker.com/docker-for-mac/osxfs/){: target="_blank" class="_"}.
|
||||
- [Volume mounting requires file sharing for any project directories outside of
|
||||
`/Users`](mactroubleshooting/#volume-mounting-requires-file-sharing-for-any-project-directories-outside-of-users){: target="_blank" class="_"}.
|
||||
|
||||
|
||||
### Disk
|
||||
|
||||
Specify the **Disk image location** of the Linux volume, where containers and
|
||||
images are stored.
|
||||
|
||||
You can also move the disk image location. If you attempt to move the disk image
|
||||
to a location that already has one, you get a prompt asking if you want to use
|
||||
the existing image or replace it.
|
||||
|
||||

|
||||
|
||||
|
||||
### Advanced
|
||||
|
||||
On the Advanced tab, you can limit resources available to Docker.
|
||||
|
||||

|
||||
|
||||
**Note**: Administrators have the ability to lock some configuration options. No error message is displayed if you attempt to change the value of a locked configuration option, but the value will remain unchanged.
|
||||
|
||||
Advanced settings are:
|
||||
|
||||
**CPUs**: By default, Docker Desktop Enterprise is set to use half the number of processors
|
||||
available on the host machine. To increase processing power, set this to a
|
||||
higher number; to decrease, lower the number.
|
||||
|
||||
**Memory**: By default, Docker Desktop Enterprise is set to use `2` GB runtime memory,
|
||||
allocated from the total available memory on your Mac. To increase RAM, set this
|
||||
to a higher number; to decrease it, lower the number.
|
||||
|
||||
**Swap**: Configure swap file size as needed. The default is 1 GB.
|
||||
|
||||
|
||||
### Proxies
|
||||
|
||||
Docker Desktop Enterprise detects HTTP/HTTPS Proxy Settings from macOS and automatically
|
||||
propagates these to Docker and to your containers. For example, if you set your
|
||||
proxy settings to `http://proxy.example.com`, Docker uses this proxy when
|
||||
pulling containers.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
When you start a container, your proxy settings propagate into the containers.
|
||||
For example:
|
||||
|
||||
```
|
||||
$ docker run -it alpine env
|
||||
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||
HOSTNAME=b7edf988b2b5
|
||||
TERM=xterm
|
||||
HOME=/root
|
||||
HTTP_PROXY=http://proxy.example.com:3128
|
||||
http_proxy=http://proxy.example.com:3128
|
||||
no_proxy=*.local, 169.254/16
|
||||
```
|
||||
|
||||
You can see from the above output that the `HTTP_PROXY`, `http_proxy`, and
|
||||
`no_proxy` environment variables are set. When your proxy configuration changes,
|
||||
Docker restarts automatically to pick up the new settings. If you have
|
||||
containers that you wish to keep running across restarts, you should consider
|
||||
using [restart policies](https://docs.docker.com/engine/reference/run/#restart-policies---restart){: target="_blank" class="_"}.
|
||||
|
||||
<p id="daemon-experimental-mode" />
|
||||
|
||||
### Daemon
|
||||
|
||||
You can configure options on the Docker daemon that determine how your
|
||||
containers run.
|
||||
|
||||
Select **Basic** to configure the daemon with interactive settings, or select
|
||||
**Advanced** to edit the JSON directly.
|
||||
|
||||

|
||||
|
||||
**Note**: Administrators have the ability to lock some configuration options. No error message is displayed if you attempt to change the value of a locked configuration option, but the value will remain unchanged.
|
||||
|
||||
#### Experimental features
|
||||
|
||||
Docker Desktop Enterprise has experimental features enabled
|
||||
on Docker Engine, as described in [Docker Experimental Features
|
||||
README](https://github.com/docker/docker-ce/blob/master/components/cli/experimental/README.md){: target="_blank" class="_"}. If you uncheck **experimental mode**, Docker Desktop Enterprise
|
||||
uses the current generally available release of Docker Engine.
|
||||
|
||||
> Don't enable experimental features in production
|
||||
>
|
||||
>Experimental features are not appropriate for production environments or
|
||||
>workloads. They are meant to be sandbox experiments for new ideas. Some
|
||||
>experimental features may become incorporated into upcoming stable releases,
|
||||
>but others may be modified or pulled from subsequent Edge releases, and never
|
||||
>released on Stable.
|
||||
|
||||
You can see whether you are running experimental mode at the command line. If
|
||||
`Experimental` is `true`, then Docker is running in experimental mode, as shown
|
||||
here. (If `false`, Experimental mode is off.)
|
||||
|
||||
```bash
|
||||
{% raw %}$ docker version -f {{.Server.Experimental}}{% endraw %}
|
||||
true
|
||||
```
|
||||
|
||||
#### Insecure registries
|
||||
|
||||
You can set up a custom and insecure [registry](https://docs.docker.com/registry/introduction){: target="_blank" class="_"} to store your public or private images (instead of
|
||||
using [Docker Hub](https://hub.docker.com/){: target="_blank" class="_"} or
|
||||
[Docker Trusted Registry](https://docs.docker.com/ee/dtr/){: target="_blank" class="_"}. Add URLs for
|
||||
your insecure registries and registry mirrors on which to host your images.
|
||||
|
||||
See also:
|
||||
- [How do I add custom CA
|
||||
certificates?](https://docs.docker.com/docker-for-windows/faqs/#how-do-i-add-custom-ca-certificates){: target="_blank" class="_"}
|
||||
- [How do I add client
|
||||
certificates](https://docs.docker.com/docker-for-windows/faqs/#how-do-i-add-client-certificates){: target="_blank" class="_"}
|
||||
|
||||
#### Daemon configuration file
|
||||
|
||||
Click the **Advanced** tab to configure the daemon from the JSON file. For a
|
||||
full list of options, see the Docker Engine [dockerd commandline
|
||||
reference](https://docs.docker.com/engine/reference/commandline/dockerd){: target="_blank" class="_"}.
|
||||
|
||||
Click **Apply & Restart** to save your settings and reboot Docker. Or, to cancel
|
||||
changes, click another preference tab, then choose to discard or not apply
|
||||
changes when asked.
|
||||
|
||||

|
||||
|
||||
### Kubernetes
|
||||
|
||||
Docker Desktop Enterprise includes a standalone Kubernetes server that runs on your Mac, so
|
||||
that you can test deploying your Docker workloads on Kubernetes.
|
||||
|
||||
**Note**: Administrators have the ability to lock some configuration options. No error message is displayed if you attempt to change the value of a locked configuration option, but the value will remain unchanged.
|
||||
|
||||
The Kubernetes client command, `kubectl`, is included and configured to connect
|
||||
to the local Kubernetes server. If you have `kubectl` already installed and
|
||||
pointing to some other environment, such as `minikube` or a GKE cluster, be sure
|
||||
to change context so that `kubectl` is pointing to `docker-for-desktop`:
|
||||
|
||||
```bash
|
||||
$ kubectl config get-contexts
|
||||
$ kubectl config use-context docker-for-desktop
|
||||
```
|
||||
|
||||
If you installed `kubectl` with Homebrew, or by some other method, and
|
||||
experience conflicts, remove `/usr/local/bin/kubectl`.
|
||||
|
||||
- To enable Kubernetes support and install a standalone instance of Kubernetes
|
||||
running as a Docker container, select **Enable Kubernetes**, choose the
|
||||
[default
|
||||
orchestrator](https://docs.docker.com/docker-for-mac/kubernetes/#override-the-default-orchestrator){: target="_blank" class="_"}
|
||||
and click the **Apply** button.
|
||||
|
||||

|
||||
|
||||
|
||||
An Internet connection is required. Images required to run the Kubernetes
|
||||
server are downloaded and instantiated as containers, and the
|
||||
`/usr/local/bin/kubectl` command is installed on your Mac.
|
||||
|
||||
When Kubernetes is enabled and running, an additional status bar item displays
|
||||
at the bottom right of the Docker Desktop Enterprise **Preferences** dialog.
|
||||
|
||||

|
||||
|
||||
The status of Kubernetes shows in the Docker menu and the context points to
|
||||
`docker-for-desktop`.
|
||||
|
||||

|
||||
|
||||
- By default, Kubernetes containers are hidden from commands like `docker
|
||||
service ls`, because managing them manually is not supported. To make them
|
||||
visible, select **Show system containers (advanced)** and click **Apply and
|
||||
restart**. Most users do not need this option.
|
||||
|
||||
- To disable Kubernetes support at any time, deselect **Enable Kubernetes**. The
|
||||
Kubernetes containers are stopped and removed, and the
|
||||
`/usr/local/bin/kubectl` command is removed.
|
||||
|
||||
For more about using the Kubernetes integration with Docker Desktop Enterprise, see
|
||||
[Deploy on Kubernetes](https://docs.docker.com/docker-for-mac/kubernetes){: target="_blank" class="_"}.
|
||||
|
||||
### Reset
|
||||
|
||||
Select {: .inline} -> **Preferences** from the
|
||||
menu bar, then click **Reset** to reset factory defaults, restart the Docker
|
||||
daemon, or uninstall.
|
||||
|
||||

|
||||
|
||||
Reset settings are:
|
||||
|
||||
* **Restart** - Select to restart the Docker daemon.
|
||||
|
||||
* **Remove all data** - This option removes/resets all Docker data _without_ a
|
||||
reset to factory defaults (which would cause you to lose settings).
|
||||
|
||||
* **Reset to factory defaults** - Choose this option to reset all options on
|
||||
Docker Desktop Enterprise to its initial state, the same as when it was first installed.
|
||||
|
||||
* **Uninstall** - Choose this option to remove Docker Desktop Enterprise from your
|
||||
system.
|
||||
|
||||
> Uninstall Docker Desktop Enterprise from the commandline
|
||||
>
|
||||
>To uninstall Docker Desktop Enterprise from a terminal, run: `<DockerforMacPath>
|
||||
>--uninstall`. If your instance is installed in the default location, this
|
||||
>command provides a clean uninstall:
|
||||
>
|
||||
>```shell
|
||||
>$ /Applications/Docker.app/Contents/MacOS/Docker --uninstall
|
||||
>Docker is running, exiting...
|
||||
>Docker uninstalled successfully. You can move the Docker application to the trash.
|
||||
>```
|
||||
>You might want to use the command-line uninstall if, for example, you find that
|
||||
>the app is non-functional, and you cannot uninstall it from the menu.
|
||||
|
||||
## Application Designer
|
||||
|
||||
The Application Designer helps Docker developers quickly create new
|
||||
Docker apps using a library of templates. To start the Application
|
||||
Designer, select the **Design new application** menu entry.
|
||||
|
||||

|
||||
|
||||
The list of available templates is provided:
|
||||
|
||||

|
||||
|
||||
After selecting a template, you can then customize your application, For
|
||||
example, if you select **Flask / NGINX / MySQL**, you can then
|
||||
|
||||
- select a different version of python or mysql; and
|
||||
|
||||
- choose different external ports:
|
||||
|
||||

|
||||
|
||||
You can then name your application and customize the disk location:
|
||||
|
||||

|
||||
|
||||
When you select **Assemble**, your application is created.
|
||||
|
||||

|
||||
|
||||
Once assembled, the following screen allows you to run the application.
|
||||
Select **Run application** to pull the images and start the containers:
|
||||
|
||||

|
||||
|
||||
Use the corresponding buttons to start and stop your application. Select **Open in Finder** on Mac or **Open in Explorer** on Windows to
|
||||
view application files on disk. Select **Open in Visual Studio Code** to open files with an editor. Note that debug logs from the application are displayed in the lower part of the Application Designer
|
||||
window.
|
||||
|
||||
## 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 Enterprise 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 Enterprise.
|
||||
|
||||
To manually add a custom, self-signed certificate, start by adding the
|
||||
certificate to the macOS keychain, which is picked up by Docker Desktop Enterprise. Here is
|
||||
an example.
|
||||
|
||||
```bash
|
||||
$ 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:
|
||||
|
||||
```
|
||||
$ security add-trusted-cert -d -r trustRoot -k ~/Library/Keychains/login.keychain ca.crt
|
||||
```
|
||||
|
||||
See also, [Directory structures for
|
||||
certificates](macconfig.md#directory-structures-for-certificates){: target="_blank" class="_"}.
|
||||
|
||||
> **Note:** You need to restart Docker Desktop Enterprise 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 Enterprise](http://container-solutions.com/adding-self-signed-registry-certs-docker-mac/){: target="_blank" 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 Enterprise application starts up, it copies the `~/.docker/certs.d`
|
||||
folder on your Mac to the `/etc/docker/certs.d` directory on Moby (the Docker
|
||||
Desktop Enterprise `xhyve` virtual machine).
|
||||
|
||||
> * You need to restart Docker Desktop Enterprise 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
|
||||
> Daemon](#daemon)). Docker Desktop Enterprise 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](https://docs.docker.com/engine/security/certificates){: target="_blank" class="_"} in the Docker Engine
|
||||
topics.
|
||||
|
||||
## Install shell completion
|
||||
|
||||
Docker Desktop Enterprise comes with scripts to enable completion for the `docker`,
|
||||
`docker-machine`, 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](http://brew.sh/){:target="_blank"
|
||||
class="_"}:
|
||||
|
||||
```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-machine.bash-completion $(brew --prefix)/etc/bash_completion.d/docker-machine
|
||||
ln -s $etc/docker-compose.bash-completion $(brew --prefix)/etc/bash_completion.d/docker-compose
|
||||
```
|
||||
|
||||
### Zsh
|
||||
|
||||
In Zsh, the [completion
|
||||
system](http://zsh.sourceforge.net/Doc/Release/Completion-System.html){:target="_blank"
|
||||
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](http://brew.sh/){:target="_blank"
|
||||
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-machine.zsh-completion /usr/local/share/zsh/site-functions/_docker-machine
|
||||
ln -s $etc/docker-compose.zsh-completion /usr/local/share/zsh/site-functions/_docker-compose
|
||||
```
|
||||
|
Before Width: | Height: | Size: 236 KiB |
|
Before Width: | Height: | Size: 130 KiB |
|
Before Width: | Height: | Size: 180 KiB |
|
Before Width: | Height: | Size: 96 KiB |
|
Before Width: | Height: | Size: 495 KiB |
|
Before Width: | Height: | Size: 162 KiB |
|
Before Width: | Height: | Size: 81 KiB |
|
Before Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 69 KiB |
|
Before Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 56 KiB |
|
Before Width: | Height: | Size: 64 KiB |
|
Before Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 61 KiB |
|
Before Width: | Height: | Size: 45 KiB |
|
Before Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 566 B |
|
Before Width: | Height: | Size: 236 KiB |
|
Before Width: | Height: | Size: 130 KiB |
|
Before Width: | Height: | Size: 180 KiB |
|
Before Width: | Height: | Size: 96 KiB |
|
Before Width: | Height: | Size: 495 KiB |
|
Before Width: | Height: | Size: 162 KiB |
|
Before Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 71 KiB |
|
Before Width: | Height: | Size: 69 KiB |
|
Before Width: | Height: | Size: 69 KiB |
|
Before Width: | Height: | Size: 88 KiB |
|
Before Width: | Height: | Size: 143 KiB |
|
Before Width: | Height: | Size: 106 KiB |
|
Before Width: | Height: | Size: 188 KiB |
|
Before Width: | Height: | Size: 93 KiB |
|
Before Width: | Height: | Size: 80 KiB |
|
Before Width: | Height: | Size: 81 KiB |
|
Before Width: | Height: | Size: 134 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 125 KiB |
|
Before Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 566 B |
|
|
@ -1,392 +0,0 @@
|
|||
---
|
||||
title: "Troubleshooting Mac issues"
|
||||
summary: task
|
||||
visibleto: employees # logged in with any Docker ID that has @docker.com email as primary email for Docker ID
|
||||
author: paige.hargrave
|
||||
platform:
|
||||
- mac
|
||||
tags:
|
||||
- troubleshooting # pick from kbase list: https://github.com/docker/kbase/blob/master/README.md#prerequisites
|
||||
---
|
||||
|
||||
# Troubleshooting Docker Desktop Enterprise on Mac
|
||||
|
||||
Here is information about how to diagnose and troubleshoot problems, send logs
|
||||
and communicate with the Docker Desktop Enterprise team, use our forums and Knowledge Hub,
|
||||
browse and log issues on GitHub, and find workarounds for known problems.
|
||||
|
||||
## Docker Knowledge Hub
|
||||
|
||||
Check out the [Docker Knowledge
|
||||
Hub](http://success.docker.com/){:target="_blank"
|
||||
class="_"} for knowledge base articles, FAQs, and
|
||||
technical support for various subscription levels.
|
||||
|
||||
## Diagnose problems, send feedback, and create GitHub issues
|
||||
|
||||
### In-app diagnostics
|
||||
If you encounter problems for which you do not find solutions in this
|
||||
documentation, on [Docker Desktop for Mac issues on
|
||||
GitHub](https://github.com/docker/for-mac/issues){:target="_blank"
|
||||
class="_"}, or the [Docker for Mac
|
||||
forum](https://forums.docker.com/c/docker-for-mac){:target="_blank"
|
||||
class="_"}, we can help you troubleshoot
|
||||
the log data.
|
||||
|
||||
Choose {: .inline} → **Diagnose & Feedback**
|
||||
from the menu bar.
|
||||
|
||||

|
||||
|
||||
Once the diagnostics are available, you can upload them and obtain a
|
||||
**Diagnostic ID**, which must be provided when communicating with the Docker
|
||||
team. For more information on our policy regarding personal data you can read
|
||||
[how is personal data handled in Docker
|
||||
Desktop](https://docs.docker.com/docker-for-mac/faqs/#how-is-personal-data-handled-in-docker-desktop){:target="_blank"
|
||||
class="_"}.
|
||||
|
||||

|
||||
|
||||
If you click **Report an issue**, this opens [Docker Desktop Enterprise issues on
|
||||
GitHub](https://github.com/docker/for-mac/issues/){:target="_blank"
|
||||
class="_"} in your web browser in a
|
||||
"create new issue" template, to be completed before submission. Do not forget to
|
||||
copy/paste your diagnostic ID.
|
||||
|
||||

|
||||
|
||||
### Diagnosing from the terminal
|
||||
|
||||
On occasions it is useful to run the diagnostics yourself, for instance if
|
||||
Docker Desktop Enterprise cannot start.
|
||||
|
||||
First locate the `com.docker.diagnose` tool. If you installed Docker Desktop Enterprise in
|
||||
the Applications directory, then it is
|
||||
`/Applications/Docker.app/Contents/MacOS/com.docker.diagnose`.
|
||||
|
||||
Then to create *and upload* diagnostics, run:
|
||||
|
||||
```sh
|
||||
$ /Applications/Docker.app/Contents/MacOS/com.docker.diagnose gather -upload
|
||||
```
|
||||
After the diagnostics have finished, you should have the following output,
|
||||
containing your diagnostics ID:
|
||||
|
||||
```sh
|
||||
Diagnostics Bundle: /tmp/B8CF8400-47B3-4068-ADA4-3BBDCE3985D9/20180726143610.zip
|
||||
Diagnostics ID: B8CF8400-47B3-4068-ADA4-3BBDCE3985D9/20180726143610 (uploaded)
|
||||
```
|
||||
|
||||
The diagnostics ID (here B8CF8400-47B3-4068-ADA4-3BBDCE3985D9/20180726143610) is
|
||||
composed of your user ID (D1F48686-F045-4708-85E3-0635B729A596) and a timestamp
|
||||
(20180525-145051). Be sure to provide us with the full diagnostics ID, not just
|
||||
the user ID.
|
||||
|
||||
Don't hesitate browsing the content of these diagnostics:
|
||||
|
||||
```sh
|
||||
$ open /tmp/D1F48686-F045-4708-85E3-0635B729A596/20180525-145051.zip
|
||||
```
|
||||
|
||||
<a name="logs"></a>
|
||||
## Check the logs
|
||||
|
||||
In addition to using the diagnose and feedback option to submit logs, you can
|
||||
browse the logs yourself. The following documentation is about macOS 10.12
|
||||
onwards; for older versions, see [older
|
||||
documentation](https://docs.docker.com/v17.12/docker-for-mac/troubleshoot/#logs){:target="_blank"
|
||||
class="_"}.
|
||||
|
||||
#### In a terminal
|
||||
|
||||
To watch the live flow of Docker Desktop Enterprise logs at the command line, run this from
|
||||
your favorite shell.
|
||||
|
||||
```bash
|
||||
$ pred='process matches ".*(ocker|vpnkit).*"
|
||||
|| (process in {"taskgated-helper", "launchservicesd", "kernel"} && eventMessage contains[c] "docker")'
|
||||
$ /usr/bin/log stream --style syslog --level=debug --color=always --predicate "$pred"
|
||||
```
|
||||
|
||||
Alternatively, to collect the last day of logs (`1d`) in a file, run:
|
||||
|
||||
```
|
||||
$ show --debug --info --style syslog --last 1d --predicate "$pred" >/tmp/logs.txt
|
||||
```
|
||||
|
||||
#### In the Console app
|
||||
|
||||
Macs provide 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
|
||||
Spotlight Search.
|
||||
|
||||
To read the Docker app log messages, in the top left corner of the window, type
|
||||
"docker" and press Enter. Then select the "Any" button that appeared on its
|
||||
left, and select "Process" instead.
|
||||
|
||||

|
||||
|
||||
You can use the Console Log Query to search logs, filter the results in various
|
||||
ways, and create reports.
|
||||
|
||||
|
||||
<a name="troubleshoot"></a>
|
||||
## Troubleshooting topics
|
||||
|
||||
### Make sure certificates are set up correctly
|
||||
|
||||
Docker Desktop Enterprise ignores certificates listed under insecure registries, and does
|
||||
not send client certificates to them. Commands like `docker run` that attempt to
|
||||
pull from the registry produces error messages on the command line, like this:
|
||||
|
||||
```
|
||||
Error response from daemon: Get http://192.168.203.139:5858/v2/: malformed HTTP response "\x15\x03\x01\x00\x02\x02"
|
||||
```
|
||||
|
||||
As well as on the registry. For example:
|
||||
|
||||
```
|
||||
2017/06/20 18:15:30 http: TLS handshake error from 192.168.203.139:52882: tls: client didn't provide a certificate
|
||||
2017/06/20 18:15:30 http: TLS handshake error from 192.168.203.139:52883: tls: first record does not look like a TLS handshake
|
||||
```
|
||||
|
||||
For more about using client and server side certificates, see [Adding TLS
|
||||
certificates](macconfig.md#add-tls-certificates){:target="_blank"
|
||||
class="_"} in the Getting Started topic.
|
||||
|
||||
### Docker Desktop Enterprise does not start if Mac user account and home folder are renamed after installing the app
|
||||
|
||||
See [Do I need to reinstall Docker Desktop Enterprise if I change the name of my macOS
|
||||
account?](https://docs.docker.com/docker-for-mac/faqs/#do-i-need-to-reinstall-docker-for-mac-if-i-change-the-name-of-my-macos-account){:target="_blank"
|
||||
class="_"}
|
||||
in the FAQs.
|
||||
|
||||
### Volume mounting requires file sharing for any project directories outside of `/Users`
|
||||
|
||||
If you are using mounted volumes and get runtime errors indicating an
|
||||
application file is not found, access to a volume mount is denied, or a service
|
||||
cannot start, such as when using [Docker Compose](https://docs.docker.com/compose/gettingstarted){:target="_blank"
|
||||
class="_"},
|
||||
you might need to enable [file sharing](macconfig/#file-sharing){:target="_blank"
|
||||
class="_"}.
|
||||
|
||||
Volume mounting requires shared drives for projects that live outside of the
|
||||
`/Users` directory. Go to {: .inline} →
|
||||
**Preferences** → **File sharing** and share the drive that contains the
|
||||
Dockerfile and volume.
|
||||
|
||||
### Incompatible CPU detected
|
||||
|
||||
Docker Desktop Enterprise requires a processor (CPU) that supports virtualization and, more
|
||||
specifically, the [Apple Hypervisor
|
||||
framework](https://developer.apple.com/library/mac/documentation/DriversKernelHardware/Reference/Hypervisor/){:target="_blank"
|
||||
class="_"}.
|
||||
Docker Desktop Enterprise is only compatible with Macs that have a CPU that supports the
|
||||
Hypervisor framework. Most Macs built in 2010 and later support it, as described
|
||||
in the Apple Hypervisor Framework documentation about supported hardware:
|
||||
|
||||
*Generally, machines with an Intel VT-x feature set that includes Extended Page
|
||||
Tables (EPT) and Unrestricted Mode are supported.*
|
||||
|
||||
To check if your Mac supports the Hypervisor framework, run this command in a
|
||||
terminal window.
|
||||
|
||||
```bash
|
||||
sysctl kern.hv_support
|
||||
```
|
||||
|
||||
If your Mac supports the Hypervisor Framework, the command prints
|
||||
`kern.hv_support: 1`.
|
||||
|
||||
If not, the command prints `kern.hv_support: 0`.
|
||||
|
||||
See also, [Hypervisor Framework
|
||||
Reference](https://developer.apple.com/library/mac/documentation/DriversKernelHardware/Reference/Hypervisor/){:target="_blank"
|
||||
class="_"}
|
||||
in the Apple documentation, and Docker Desktop Enterprise [System Requirements](install.md){:target="_blank"
|
||||
class="_"}.
|
||||
|
||||
|
||||
### Workarounds for common problems
|
||||
|
||||
* If Docker Desktop Enterprise fails to install or start properly:
|
||||
|
||||
* Make sure you quit Docker Desktop Enterprise before installing a new version of the
|
||||
application ({: .inline} → **Quit
|
||||
Docker**). Otherwise, you get an "application in use" error when you try to
|
||||
copy the new app from the `.dmg` to `/Applications`.
|
||||
|
||||
* Restart your Mac to stop / discard any vestige of the daemon running from
|
||||
the previously installed version.
|
||||
|
||||
* Run the uninstall commands from the menu.
|
||||
|
||||
|
||||
* If `docker` commands aren't working properly or as expected, you may need to
|
||||
unset some environment variables, to make sure you are not using the legacy
|
||||
Docker Machine environment in your shell or command window. Unset the
|
||||
`DOCKER_HOST` environment variable and related variables.
|
||||
|
||||
* If you use bash, use the following command: `unset ${!DOCKER_*}`
|
||||
|
||||
* For other shells, unset each environment variable individually as described
|
||||
in [Setting up to run Docker Desktop for
|
||||
Mac](https://docs.docker.com/docker-for-mac/docker-toolbox/#setting-up-to-run-docker-desktop-for-mac){:target="_blank"
|
||||
class="_"} in [Docker Desktop for Mac
|
||||
vs. Docker Toolbox](https://docs.docker.com/docker-for-mac/docker-toolbox){:target="_blank"
|
||||
class="_"}.
|
||||
|
||||
|
||||
* Network connections fail if the macOS Firewall is set to "Block all incoming
|
||||
connections". You can enable the firewall, but `bootpd` must be allowed
|
||||
incoming connections so that the VM can get an IP address.
|
||||
|
||||
|
||||
* For the `hello-world-nginx` example, Docker Desktop Enterprise must be running to get to
|
||||
the webserver on `http://localhost/`. Make sure that the Docker whale is
|
||||
showing in the menu bar, and that you run the Docker commands in a shell that
|
||||
is connected to the Docker Desktop Enterprise Engine (not Engine from Toolbox).
|
||||
Otherwise, you might start the webserver container but get a "web page not
|
||||
available" error when you go to `localhost`. For more on distinguishing
|
||||
between the two environments, see [Docker Desktop for Mac vs. Docker
|
||||
Toolbox](https://docs.docker.com/docker-for-mac/docker-toolbox){:target="_blank"
|
||||
class="_"}.
|
||||
|
||||
<p></p>
|
||||
|
||||
* If you see errors like `Bind for 0.0.0.0:8080 failed: port is already
|
||||
allocated` or `listen tcp:0.0.0.0:8080: bind: address is already in use`:
|
||||
|
||||
* These errors are often caused by some other software on the Mac using those
|
||||
ports.
|
||||
|
||||
* Run `lsof -i tcp:8080` to discover the name and pid of the other process and
|
||||
decide whether to shut the other process down, or to use a different port in
|
||||
your docker app.
|
||||
|
||||
## Known issues
|
||||
|
||||
* IPv6 is not (yet) supported on Docker Desktop Enterprise.
|
||||
|
||||
A workaround is provided that auto-filters out the IPv6 addresses in DNS
|
||||
server lists and enables successful network access. For example,
|
||||
`2001:4860:4860::8888` would become `8.8.8.8`. To learn more, see these
|
||||
issues on GitHub and Docker Desktop for Mac forums:
|
||||
|
||||
* [Network timeout when top two DNS servers in /etc/resolv.conf are IPv6
|
||||
addresses](https://github.com/docker/for-mac/issues/9){:target="_blank"
|
||||
class="_"}
|
||||
|
||||
* [ERROR: Network timed out while trying to connect to
|
||||
index.docker.io](https://forums.docker.com/t/error-network-timed-out-while-trying-to-connect-to-index-docker-io/17206){:target="_blank"
|
||||
class="_"}
|
||||
|
||||
<p></p>
|
||||
|
||||
* You might encounter errors when using `docker-compose up` with Docker Desktop Enterprise
|
||||
(`ValueError: Extra Data`). We've identified this is likely related to data
|
||||
and/or events being passed all at once rather than one by one, so sometimes
|
||||
the data comes back as 2+ objects concatenated and causes an error.
|
||||
|
||||
* Force-ejecting the `.dmg` after running `Docker.app` from it can cause the
|
||||
whale icon to become unresponsive, Docker tasks to show as not responding in
|
||||
the Activity Monitor, and for some processes to consume a large amount of CPU
|
||||
resources. Reboot and restart Docker to resolve these issues.
|
||||
|
||||
* Docker does not auto-start on login even when it is enabled in {: .inline} → **Preferences**. This is related to a
|
||||
set of issues with Docker helper, registration, and versioning.
|
||||
|
||||
<p></p>
|
||||
|
||||
* Docker Desktop Enterprise uses the [`HyperKit` hypervisor]
|
||||
(https://github.com/docker/hyperkit){:target="_blank"
|
||||
class="_"} in macOS 10.10 Yosemite and higher. If
|
||||
you are developing with tools that have conflicts with `HyperKit`, such as
|
||||
[Intel Hardware Accelerated Execution Manager
|
||||
(HAXM)](https://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager/){:target="_blank"
|
||||
class="_"},
|
||||
the current workaround is not to run them at the same time. You can pause
|
||||
`HyperKit` by quitting Docker Desktop Enterprise temporarily while you work with HAXM.
|
||||
This allows you to continue work with the other tools and prevent `HyperKit`
|
||||
from interfering.
|
||||
|
||||
|
||||
* If you are working with applications like [Apache
|
||||
Maven](https://maven.apache.org/){:target="_blank"
|
||||
class="_"} that expect settings for `DOCKER_HOST` and
|
||||
`DOCKER_CERT_PATH` environment variables, specify these to connect to Docker
|
||||
instances through Unix sockets. For example:
|
||||
|
||||
```bash
|
||||
export DOCKER_HOST=unix:///var/run/docker.sock
|
||||
```
|
||||
|
||||
* `docker-compose` 1.7.1 performs DNS unnecessary lookups for
|
||||
`localunixsocket.local` which can take 5s to timeout on some networks. If
|
||||
`docker-compose` commands seem very slow but seem to speed up when the network
|
||||
is disabled, try appending `127.0.0.1 localunixsocket.local` to the file
|
||||
`/etc/hosts`. Alternatively you could create a plain-text TCP proxy on
|
||||
localhost:1234 using:
|
||||
|
||||
```
|
||||
docker run -d -v /var/run/docker.sock:/var/run/docker.sock -p 127.0.0.1:1234:1234 bobrik/socat TCP-LISTEN:1234,fork UNIX-CONNECT:/var/run/docker.sock
|
||||
```
|
||||
|
||||
and then `export DOCKER_HOST=tcp://localhost:1234`.
|
||||
|
||||
|
||||
<a name="bind-mounted-dirs"></a>
|
||||
|
||||
* There are a number of issues with the performance of directories bind-mounted
|
||||
with `osxfs`. In particular, writes of small blocks, and traversals of large
|
||||
directories are currently slow. Additionally, containers that perform large
|
||||
numbers of directory operations, such as repeated scans of large directory
|
||||
trees, may suffer from poor performance. Applications that behave in this way
|
||||
include:
|
||||
|
||||
- `rake`
|
||||
- `ember build`
|
||||
- Symfony
|
||||
- Magento
|
||||
- Zend Framework
|
||||
- PHP applications that use [Composer](https://getcomposer.org){:target="_blank"
|
||||
class="_"} to install
|
||||
dependencies in a ```vendor``` folder<br><br>
|
||||
|
||||
As a work-around for this behavior, you can put vendor or third-party library
|
||||
directories in Docker volumes, perform temporary file system operations
|
||||
outside of `osxfs` mounts, and use third-party tools like Unison or `rsync` to
|
||||
synchronize between container directories and bind-mounted directories. We are
|
||||
actively working on `osxfs` performance using a number of different
|
||||
techniques. To learn more, see the topic on [Performance issues, solutions,
|
||||
and roadmap](https://docs.docker.com/docker-for-mac/osxfs/#performance-issues-solutions-and-roadmap){:target="_blank"
|
||||
class="_"}.
|
||||
|
||||
* If your system does not have access to an NTP server, then after a hibernate
|
||||
the time seen by Docker Desktop Enterprise may be considerably out of sync with the host.
|
||||
Furthermore, the time may slowly drift out of sync during use. To manually
|
||||
reset the time after hibernation, run:
|
||||
|
||||
```bash
|
||||
docker run --rm --privileged alpine hwclock -s
|
||||
```
|
||||
|
||||
Or, to resolve both issues, you can add the local clock as a low-priority
|
||||
(high stratum) fallback NTP time source for the host. To do this, edit the
|
||||
host's `/etc/ntp-restrict.conf` to add:
|
||||
|
||||
```
|
||||
server 127.127.1.1 # LCL, local clock
|
||||
fudge 127.127.1.1 stratum 12 # increase stratum
|
||||
```
|
||||
|
||||
Then restart the NTP service with:
|
||||
|
||||
```bash
|
||||
sudo launchctl unload /System/Library/LaunchDaemons/org.ntp.ntpd.plist
|
||||
sudo launchctl load /System/Library/LaunchDaemons/org.ntp.ntpd.plist
|
||||
```
|
||||
|
Before Width: | Height: | Size: 236 KiB |
|
Before Width: | Height: | Size: 130 KiB |
|
Before Width: | Height: | Size: 180 KiB |
|
Before Width: | Height: | Size: 96 KiB |
|
Before Width: | Height: | Size: 495 KiB |
|
Before Width: | Height: | Size: 162 KiB |
|
Before Width: | Height: | Size: 71 KiB |
|
Before Width: | Height: | Size: 69 KiB |
|
Before Width: | Height: | Size: 69 KiB |
|
Before Width: | Height: | Size: 134 KiB |
|
Before Width: | Height: | Size: 566 B |
|
|
@ -1,24 +0,0 @@
|
|||
---
|
||||
title: "Docker Desktop Enterprise"
|
||||
summary: task
|
||||
visibleto: employees # logged in with any Docker ID that has @docker.com email as primary email for Docker ID
|
||||
author: paige.hargrave
|
||||
platform:
|
||||
- mac
|
||||
- windows
|
||||
tags:
|
||||
- installing # pick from kbase list: https://github.com/docker/kbase/blob/master/README.md#prerequisites
|
||||
notoc: true
|
||||
---
|
||||
|
||||
Docker Desktop Enterprise documentation for Windows
|
||||
---------------------------------------------------
|
||||
|
||||
- [Install Docker Desktop Enterprise](../install-guide/install.md)
|
||||
- [Getting started](getting-started/README.md)
|
||||
- [Environment configuration file (administrators only)](admin-config/README.md)
|
||||
- [Troubleshooting](troubleshooting/README.md)
|
||||
- [Frequently asked questions](../faq/faq.md)
|
||||
- <a href="https://docs.docker.com/engine/" target="_blank">Docker command line reference</a>
|
||||
- <a href="https://docs.docker.com/compose/" target="_blank">Docker Compose documentation</a>
|
||||
- <a href="https://docs.docker.com/engine/docker-overview/#container-format" target="_blank">Docker Engine documentation</a>
|
||||
|
|
@ -1,169 +0,0 @@
|
|||
---
|
||||
title: "Post-installation"
|
||||
summary: task
|
||||
visibleto: employees # logged in with any Docker ID that has @docker.com email as primary email for Docker ID
|
||||
author: paige.hargrave
|
||||
platform:
|
||||
- windows
|
||||
tags:
|
||||
- installing # pick from kbase list: https://github.com/docker/kbase/blob/master/README.md#prerequisites
|
||||
---
|
||||
|
||||
Environment configuration on Windows (administrators only)
|
||||
----------------------------------------------------------
|
||||
|
||||
The administrator configuration file allows you to customize and standardize your Docker Desktop environment across the organization. When you install Docker Desktop Enterprise, a configuration file with default values is installed in, and must remain in, the following location:
|
||||
|
||||
`\%ProgramData%\\DockerDesktop\\admin-settings.json`
|
||||
|
||||
which defaults to
|
||||
|
||||
`C:\\ProgramData\\DockerDesktop\\admin-settings.json`
|
||||
|
||||
To edit `admin-settings.json`, you must have administrator access privileges.
|
||||
|
||||
#### Syntax for `admin-settings.json`:
|
||||
|
||||
1. `configurationFileVersion`: This must be the first parameter listed in `admin-settings.json`. It specifies the version of the configuration file format and must be set to 1.
|
||||
|
||||
2. A nested list of configuration parameters, each of which contains a minimum of
|
||||
the following two settings:
|
||||
|
||||
- `locked`: If set to `true`, users without elevated access privileges are not able to edit this setting
|
||||
from the UI or by directly editing the `admin-settings.json` file. If set to `false`, users without elevated access privileges can change this setting from the UI or by directly editing
|
||||
`admin-settings.json`. If this setting is omitted, the default value is `false'???
|
||||
|
||||
- `value`: Specifies the value of the parameter. The default value, contained in the initial `admin-settings.json` file that is installed with Docker Desktop Enterprise, is used when first running Docker Desktop Enterprise and after a reset to factory defaults. If this setting is omitted, the default value is used.
|
||||
|
||||
#### Parameters and settings
|
||||
The following `admin-settings.json` code and table provide the required syntax and descriptions for parameters and values:
|
||||
|
||||
```json
|
||||
{
|
||||
"configurationFileVersion": 1,
|
||||
"engine": {
|
||||
"locked": false,
|
||||
"value": "linux"
|
||||
},
|
||||
"exposeDockerAPIOnTCP2375": {
|
||||
"locked": false,
|
||||
"value": false
|
||||
},
|
||||
"dockerCliOptions": {
|
||||
"stackOrchestrator": {
|
||||
"locked": false,
|
||||
"value": "swarm"
|
||||
}
|
||||
},
|
||||
"proxy": {
|
||||
"locked": false,
|
||||
"value": {
|
||||
"http": "http://proxy.docker.com:8080",
|
||||
"https": "https://proxy.docker.com:8080",
|
||||
"exclude": "docker.com,github.com"
|
||||
}
|
||||
},
|
||||
"linuxVM": {
|
||||
"cpus": {
|
||||
"locked": false,
|
||||
"value": 2
|
||||
},
|
||||
"memoryMiB": {
|
||||
"locked": false,
|
||||
"value": 2048
|
||||
},
|
||||
"swapMiB": {
|
||||
"locked": false,
|
||||
"value": 1024
|
||||
},
|
||||
"diskPath": {
|
||||
"locked": false,
|
||||
"value": null
|
||||
},
|
||||
"diskSizeMiB": {
|
||||
"locked": false,
|
||||
"value": 64000000000
|
||||
},
|
||||
"hypervCIDR": {
|
||||
"locked": false,
|
||||
"value": "192.168.65.0/24"
|
||||
},
|
||||
"useDnsForwarder": {
|
||||
"locked": false,
|
||||
"value": true
|
||||
},
|
||||
"dns": {
|
||||
"locked": false,
|
||||
"value": "8.8.8.8"
|
||||
},
|
||||
"dockerDaemonOptions": {
|
||||
"experimental": {
|
||||
"locked": false,
|
||||
"value": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"windows": {
|
||||
"dockerDaemonOptions": {
|
||||
"experimental": {
|
||||
"locked": false,
|
||||
"value": true
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
"kubernetes": {
|
||||
"enabled": {
|
||||
"locked": false,
|
||||
"value": false
|
||||
},
|
||||
"showSystemContainers": {
|
||||
"locked": false,
|
||||
"value": false
|
||||
},
|
||||
"podNetworkCIDR": {
|
||||
"locked": false,
|
||||
"value": null
|
||||
},
|
||||
"serviceCIDR": {
|
||||
"locked": false,
|
||||
"value": null
|
||||
}
|
||||
},
|
||||
|
||||
"sharedDrives": {
|
||||
"locked": false,
|
||||
"value": [ "C", "D" ]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
| Parameter | Description |
|
||||
| :--------------------------------- | :--------------------------------- |
|
||||
| `configurationFileVersion` | Specifies the version of the configuration file format. |
|
||||
| `engine` | Specifies the default Docker engine to be used. `linux` specifies the Linux engine. `windows` specifies the Windows engine. |
|
||||
| `exposeDockerAPIOnTCP2375` | Exposes Docker API on a specified port. In this example, setting 'locked' to `true` exposes the Docker API on port 2375. > **Warning:** This is unauthenticated and should only be enabled if protected by suitable firewall rules.|
|
||||
| `dockerCliOptions` | Specifies key-value pairs in the user's `%HOME%\\.docker\\config.json` file. In the sample code provided, the orchestration for docker stack commands is set to `swarm` rather than `kubernetes`. |
|
||||
| `proxy` | The `http` setting specifies the HTTP proxy setting. The `https` setting specifies the HTTPS proxy setting. The `exclude` setting specifies a comma-separated list of hosts and domains to bypass the proxy. **Warning:** This parameter should be locked after being set: `locked: "true"`. |
|
||||
| `linuxVM` | Parameters and settings related to the Linux VM - grouped together in this example for convenience. |
|
||||
| `cpus` | Specifies the default number of virtual CPUs for the VM. If the physical machine has only 1 core, the default value is set to 1. |
|
||||
| `memoryMiB` | Specifies the amount of memory in MiB (1 MiB = 1048576 bytes) allocated for the VM.
|
||||
| `swapMiB` | Specifies the amount of memory in MiB (1 MiB = 1048576 bytes) allocated for the swap file. |
|
||||
| `diskPath` | **Warning:** Do not lock this parameter as it can potentially break the version pack switch. |
|
||||
| `diskSizeMiB` | Specifies the amount of disk storage in MiB (1 MiB = 1048576 bytes) allocated for images and containers. |
|
||||
| `hypervCIDR` | Specifies the subnet used for both Hyper-V networking and drive sharing. The chosen subnet must not conflict with other resources on your network. |
|
||||
| `useDnsForwarder` | If `value` is set to `true`, this automatically determines the upstream DNS servers based on the host's network adapters. |
|
||||
| `dns` | If `value` for `useDnsForwarder` is set to `false`, the Linux VM uses the server information in this `value` setting for DNS resolution. |
|
||||
| `dockerDaemonOptions` | Overrides the options in the linux daemon config file. For more information, see [the Docker engine reference](https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file) |
|
||||
| (End of `linuxVM` section.) | |
|
||||
| `windows` | Parameters and settings related to the Windows daemon-related options - grouped together in this example for convenience. |
|
||||
| `dockerDaemonOptions` | Overrides the options in the Windows daemon config file. For more information, see [the Docker engine reference](https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file) |
|
||||
| (End of `windows` section.) | |
|
||||
| `kubernetes` | Parameters and settings related to kubernetes options - grouped together here for convenience. |
|
||||
| `enabled` | If `locked` is set to `true`, the k8s cluster starts when Docker Desktop Enterprise is started. |
|
||||
| `showSystemContainers` | If true, displays k8s internal containers when running docker commands such as `docker ps`. |
|
||||
| `podNetworkCIDR` | This is currently unimplemented. `locked` must be set to true. |
|
||||
| `serviceCIDR` | This is currently unimplemented. `locked` must be set to true. |
|
||||
| (End of `kubernetes` section.) | |
|
||||
| `sharedDrives` | Locks the drives users are allowed to share, but does not actually share drives by default (sharing a drive prompts the user for a password). `value` is a whitelist of drives that can be shared. |
|
||||
|
|
@ -1,602 +0,0 @@
|
|||
---
|
||||
title: "Getting started with Docker Desktop Enterprise on Windows"
|
||||
summary: task
|
||||
visibleto: employees # logged in with any Docker ID that has @docker.com email as primary email for Docker ID
|
||||
author: paige.hargrave
|
||||
platform:
|
||||
- windows
|
||||
tags:
|
||||
- deploy # pick from kbase list: https://github.com/docker/kbase/blob/master/README.md#prerequisites
|
||||
- management
|
||||
---
|
||||
|
||||
# Getting started with Docker Desktop Enterprise on Windows
|
||||
|
||||
## Test your installation
|
||||
|
||||
1. Open a terminal window (Command Prompt or PowerShell, _but not_ PowerShell ISE).
|
||||
|
||||
2. Run `docker --version` to ensure that you have a supported version of Docker:
|
||||
|
||||
```shell
|
||||
> docker --version
|
||||
|
||||
Docker version 18.03.0-ce, build 0520e24
|
||||
```
|
||||
|
||||
3. Pull the [hello-world image](https://hub.docker.com/r/library/hello-world/){: target="_blank" class="_"} from Docker Hub and run a container:
|
||||
|
||||
```shell
|
||||
> docker run hello-world
|
||||
|
||||
docker : Unable to find image 'hello-world:latest' locally
|
||||
...
|
||||
|
||||
latest:
|
||||
Pulling from library/hello-world
|
||||
ca4f61b1923c:
|
||||
Pulling fs layer
|
||||
ca4f61b1923c:
|
||||
Download complete
|
||||
ca4f61b1923c:
|
||||
Pull complete
|
||||
Digest: sha256:97ce6fa4b6cdc0790cda65fe7290b74cfebd9fa0c9b8c38e979330d547d22ce1
|
||||
Status: Downloaded newer image for hello-world:latest
|
||||
|
||||
Hello from Docker!
|
||||
This message shows that your installation appears to be working correctly.
|
||||
...
|
||||
```
|
||||
|
||||
4. List the `hello-world` _image_ that was downloaded from Docker Hub:
|
||||
|
||||
```shell
|
||||
> docker image ls
|
||||
```
|
||||
|
||||
5. List the `hello-world` _container_ (that exited after displaying "Hello from Docker!"):
|
||||
|
||||
```shell
|
||||
> docker container ls --all
|
||||
```
|
||||
|
||||
6. Explore the Docker help pages by running some help commands:
|
||||
|
||||
```shell
|
||||
> docker --help
|
||||
> docker container --help
|
||||
> docker container ls --help
|
||||
> docker run --help
|
||||
```
|
||||
|
||||
## Explore the application
|
||||
|
||||
In this section, we demonstrate the ease and power of Dockerized applications by
|
||||
running something more complex, such as an OS and a webserver.
|
||||
|
||||
1. Pull an image of the [Ubuntu OS](https://hub.docker.com/r/_/ubuntu/){: target="_blank" class="_"} and run an interactive terminal inside the spawned container:
|
||||
|
||||
```shell
|
||||
> docker run --interactive --tty ubuntu bash
|
||||
|
||||
docker : Unable to find image 'ubuntu:latest' locally
|
||||
...
|
||||
|
||||
latest:
|
||||
Pulling from library/ubuntu
|
||||
22dc81ace0ea:
|
||||
Pulling fs layer
|
||||
1a8b3c87dba3:
|
||||
Pulling fs layer
|
||||
91390a1c435a:
|
||||
Pulling fs layer
|
||||
...
|
||||
Digest: sha256:e348fbbea0e0a0e73ab0370de151e7800684445c509d46195aef73e090a49bd6
|
||||
Status: Downloaded newer image for ubuntu:latest
|
||||
```
|
||||
|
||||
> Do not use PowerShell ISE
|
||||
>
|
||||
> Interactive terminals do not work in PowerShell ISE (but they do in PowerShell). See [docker/for-win/issues/223](https://github.com/docker/for-win/issues/223){: target="_blank" class="_"}.
|
||||
|
||||
2. You are in the container. At the root `#` prompt, check the `hostname` of the container:
|
||||
|
||||
```shell
|
||||
root@8aea0acb7423:/# hostname
|
||||
8aea0acb7423
|
||||
```
|
||||
Notice that the hostname is assigned as the container ID (and is also used in the prompt).
|
||||
|
||||
3. Exit the shell with the `exit` command (which also stops the container):
|
||||
|
||||
```shell
|
||||
root@8aea0acb7423:/# exit
|
||||
>
|
||||
```
|
||||
|
||||
4. List containers with the `--all` option (because no containers are running).
|
||||
|
||||
The `hello-world` container (randomly named, `relaxed_sammet`) stopped after displaying its message. The `ubuntu` container (randomly named, `laughing_kowalevski`) stopped when you exited the container.
|
||||
|
||||
```shell
|
||||
> docker container ls --all
|
||||
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
8aea0acb7423 ubuntu "bash" 2 minutes ago Exited (0) 2 minutes ago laughing_kowalevski
|
||||
45f77eb48e78 hello-world "/hello" 3 minutes ago Exited (0) 3 minutes ago relaxed_sammet
|
||||
```
|
||||
|
||||
5. Pull and run a Dockerized [nginx](https://hub.docker.com/_/nginx/){: target="_blank" class="_"} web server that we name, `webserver`:
|
||||
|
||||
```shell
|
||||
> docker run --detach --publish 80:80 --name webserver nginx
|
||||
|
||||
Unable to find image 'nginx:latest' locally
|
||||
latest: Pulling from library/nginx
|
||||
|
||||
fdd5d7827f33: Pull complete
|
||||
a3ed95caeb02: Pull complete
|
||||
716f7a5f3082: Pull complete
|
||||
7b10f03a0309: Pull complete
|
||||
Digest: sha256:f6a001272d5d324c4c9f3f183e1b69e9e0ff12debeb7a092730d638c33e0de3e
|
||||
Status: Downloaded newer image for nginx:latest
|
||||
dfe13c68b3b86f01951af617df02be4897184cbf7a8b4d5caf1c3c5bd3fc267f
|
||||
```
|
||||
|
||||
6. Point your web browser at `http://localhost` to display the nginx start page. (You don't need to append `:80` because you specified the default HTTP port in the `docker` command.)
|
||||
|
||||

|
||||
|
||||
7. List only your _running_ containers:
|
||||
|
||||
```shell
|
||||
> docker container ls
|
||||
|
||||
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||
0e788d8e4dfd nginx "nginx -g 'daemon of…" 2 minutes ago Up 2 minutes 0.0.0.0:80->80/tcp webserver
|
||||
```
|
||||
|
||||
8. Stop the running nginx container by the name we assigned it, `webserver`:
|
||||
|
||||
```shell
|
||||
> docker container stop webserver
|
||||
```
|
||||
|
||||
9. Remove all three containers by their names -- the latter two names will differ for you:
|
||||
|
||||
```shell
|
||||
> docker container rm webserver laughing_kowalevski relaxed_sammet
|
||||
```
|
||||
|
||||
## Docker Desktop Enterprise Settings menu
|
||||
|
||||
The Docker Desktop Enterprise **Settings** menu provides options for configuring
|
||||
Docker settings -- installation, updates, version channels, Docker Hub login,
|
||||
and more.
|
||||
|
||||
This section explains the configuration options accessible from the **Settings** dialog.
|
||||
|
||||
**Note**: Administrators have the ability to lock some configuration options. No error message is displayed if you attempt to change the value of a locked configuration option, but the value will remain unchanged.
|
||||
|
||||
1. Open Docker Desktop Enterprise by right-clicking the Docker icon in the Notifications area (or System tray):
|
||||
|
||||

|
||||
|
||||
2. Select **Settings...** to open the Settings dialog:
|
||||
|
||||

|
||||
|
||||
### General
|
||||
|
||||
On the **General** tab of the Settings dialog, you can configure when to start and update Docker.
|
||||
|
||||

|
||||
|
||||
**Note**: Administrators have the ability to lock some configuration options. No error message is displayed if you attempt to change the value of a locked configuration option, but the value will remain unchanged.
|
||||
|
||||
* **Start Docker when you log in** - Automatically start the Docker Desktop Enterprise
|
||||
application upon Windows system login.
|
||||
|
||||
* **Automatically check for updates** - By default, Docker Desktop Enterprise
|
||||
automatically checks for updates and notifies you when an update is available.
|
||||
Click **OK** to accept and install updates (or cancel to keep the current
|
||||
version). You can manually update by choosing **Check for Updates** from the
|
||||
main Docker menu.
|
||||
|
||||
* **Send usage statistics** - By default, Docker Desktop Enterprise sends diagnostics,
|
||||
crash reports, and usage data. This information helps Docker improve and
|
||||
troubleshoot the application. Uncheck to opt out. Docker may also sometimes
|
||||
prompt you for more information.
|
||||
|
||||
### Shared drives
|
||||
|
||||
Share your local drives (volumes) with Docker Desktop Enterprise, so that they are
|
||||
available to your [Linux containers](#switch-between-windows-and-linux-containers).
|
||||
|
||||

|
||||
|
||||
**Note**: Administrators have the ability to lock some configuration options. No error message is displayed if you attempt to change the value of a locked configuration option, but the value will remain unchanged.
|
||||
|
||||
Permission for shared drives are tied to the credentials you provide here. If
|
||||
you run `docker` commands under a different username than the one configured
|
||||
here, your containers cannot access the mounted volumes.
|
||||
|
||||
To apply shared drives, you are prompted for your Windows system (domain)
|
||||
username and password. You can select an option to have Docker store the
|
||||
credentials so that you don't need to enter them every time.
|
||||
|
||||
> Tips on shared drives, permissions, and volume mounts
|
||||
>
|
||||
* Shared drives are only required for mounting volumes in [Linux containers](#switch-between-windows-and-linux-containers),
|
||||
not for Windows containers. For Linux containers, you need to share the drive
|
||||
where the Dockerfile and volume are located. If you get errors such as `file not found`
|
||||
or `cannot start service` you may need to enable shared drives. See [Volume mounting requires shared drives for Linux containers](windowstroubleshooting.md#volume-mounting-requires-shared-drives-for-linux-containers){: target="_blank" class="_"}.
|
||||
>
|
||||
* If possible, avoid volume mounts from the Windows host, and instead mount on
|
||||
the Linux VM, or use a [data volume](https://docs.docker.com/storage/volumes/){: target="_blank" class="_"}
|
||||
(named volume) or [data container](https://docs.docker.com/storage/volumes/){: target="_blank" class="_"}.
|
||||
There are a number of issues with using host-mounted volumes and network paths
|
||||
for database files. See [Volume mounts from host paths use a nobrl option to override database locking](windowstroubleshooting.md#volume-mounts-from-host-paths-use-a-nobrl-option-to-override-database-locking){: target="_blank" class="_"}.
|
||||
>
|
||||
* Docker Desktop Enterprise sets permissions to read/write/execute for users, groups and others [0777 or a+rwx](http://permissions-calculator.org/decode/0777/){: target="_blank" class="_"}.
|
||||
This is not configurable. See [Permissions errors on data directories for shared volumes](windowstroubleshooting.md#permissions-errors-on-data-directories-for-shared-volumes){: target="_blank" class="_"}.
|
||||
>
|
||||
* Ensure the domain user has access to shared drives, as described in [Verify domain user has permissions for shared drives](windowstroubleshooting.md#verify-domain-user-has-permissions-for-shared-drives-volumes){: target="_blank" class="_"}.
|
||||
>
|
||||
* You can share local drives with your _containers_ but not with Docker Machine
|
||||
nodes. See the FAQ, [Can I share local drives and filesystem with my Docker Machine VMs?](https://docs.docker.com/docker-for-windows/faqs/#can-i-share-local-drives-and-filesystem-with-my-docker-machine-vms){: target="_blank" class="_"}.
|
||||
>
|
||||
|
||||
#### Firewall rules for shared drives
|
||||
|
||||
Shared drives require port 445 to be open between the host machine and the
|
||||
virtual machine that runs Linux containers. Docker detects if port 445 is closed
|
||||
and shows the following message when you try to add a shared drive:
|
||||
|
||||

|
||||
|
||||
To share the drive, allow connections between the Windows host machine and the
|
||||
virtual machine in Windows Firewall or your third party firewall software. You
|
||||
do not need to open port 445 on any other network.
|
||||
|
||||
By default, allow connections to `10.0.75.1` on port 445 (the Windows host) from
|
||||
`10.0.75.2` (the virtual machine). If your firewall rules seem correct, you may
|
||||
need to toggle or
|
||||
[reinstall the File and Print sharing service on the Hyper-V virtual network card](http://stackoverflow.com/questions/42203488/settings-to-windows-firewall-to-allow-docker-for-windows-to-share-drive/43904051#43904051){: target="_blank" class="_"}
|
||||
|
||||
#### Shared drives on demand
|
||||
|
||||
You can share a drive "on demand" the first time a particular mount is requested.
|
||||
|
||||
If you run a Docker command from a shell with a volume mount (as shown in the
|
||||
example below) or kick off a Compose file that includes volume mounts, you get a
|
||||
popup asking if you want to share the specified drive.
|
||||
|
||||
You can select to **Share it**, in which case it is added your Docker Desktop Enterprise [Shared Drives list](#shared-drives) and available to
|
||||
containers. Alternatively, you can opt not to share it by selecting **Cancel**.
|
||||
|
||||

|
||||
|
||||
### Advanced
|
||||
|
||||
The Linux VM restarts after changing the settings on the **Advanced** tab. This takes a few seconds.
|
||||
|
||||

|
||||
|
||||
**Note**: Administrators have the ability to lock some configuration options. No error message is displayed if you attempt to change the value of a locked configuration option, but the value will remain unchanged.
|
||||
|
||||
* **CPUs** - Change the number of processors assigned to the Linux VM.
|
||||
|
||||
* **Memory** - Change the amount of memory the Docker Desktop Enterprise Linux VM uses.
|
||||
|
||||
### Network
|
||||
|
||||
You can configure Docker Desktop Enterprise networking to work on a virtual private network (VPN).
|
||||
|
||||

|
||||
|
||||
**Note**: Administrators have the ability to lock some configuration options. No error message is displayed if you attempt to change the value of a locked configuration option, but the value will remain unchanged.
|
||||
|
||||
* **Internal Virtual Switch** - You can specify a network address translation (NAT) prefix and subnet mask to enable Internet connectivity.
|
||||
|
||||
* **DNS Server** - You can configure the DNS server to use dynamic or static IP addressing.
|
||||
|
||||
> **Note**: Some users reported problems connecting to Docker Hub on Docker Desktop Enterprise. This would manifest as an error when trying to run
|
||||
> `docker` commands that pull images from Docker Hub that are not already
|
||||
> downloaded, such as a first time run of `docker run hello-world`. If you
|
||||
> encounter this, reset the DNS server to use the Google DNS fixed address:
|
||||
> `8.8.8.8`. For more information, see
|
||||
> [Networking issues](windowstroubleshooting.md#networking-issues){: target="_blank" class="_"} in Troubleshooting.
|
||||
|
||||
Updating these settings requires a reconfiguration and reboot of the Linux VM.
|
||||
|
||||
### Proxies
|
||||
|
||||
Docker Desktop Enterprise lets you configure HTTP/HTTPS Proxy Settings and
|
||||
automatically propagates these to Docker and to your containers. For example,
|
||||
if you set your proxy settings to `http://proxy.example.com`, Docker uses this
|
||||
proxy when pulling containers.
|
||||
|
||||

|
||||
|
||||
**Note**: Administrators have the ability to lock some configuration options. No error message is displayed if you attempt to change the value of a locked configuration option, but the value will remain unchanged.
|
||||
|
||||
When you start a container, your proxy settings propagate into the containers. For example:
|
||||
|
||||
```ps
|
||||
> docker run alpine env
|
||||
|
||||
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||
HOSTNAME=b7edf988b2b5
|
||||
TERM=xterm
|
||||
HOME=/root
|
||||
HTTP_PROXY=http://proxy.example.com:3128
|
||||
http_proxy=http://proxy.example.com:3128
|
||||
no_proxy=*.local, 169.254/16
|
||||
```
|
||||
|
||||
In the output above, the `HTTP_PROXY`, `http_proxy`, and `no_proxy` environment
|
||||
variables are set. When your proxy configuration changes, Docker restarts
|
||||
automatically to pick up the new settings. If you have containers that you wish
|
||||
to keep running across restarts, you should consider using
|
||||
[restart policies](https://docs.docker.com/engine/reference/run/#restart-policies---restart){: target="_blank" class="_"}.
|
||||
|
||||
<p id="daemon-experimental-mode" />
|
||||
|
||||
### Daemon
|
||||
|
||||
You can configure the Docker daemon to hone how your containers run.
|
||||
**Advanced mode** lets you edit the JSON directly. **Basic mode** lets you
|
||||
configure the more common daemon options with interactive settings (and also JSON).
|
||||
|
||||

|
||||
|
||||
**Note**: Administrators have the ability to lock some configuration options. No error message is displayed if you attempt to change the value of a locked configuration option, but the value will remain unchanged.
|
||||
|
||||
#### Experimental mode
|
||||
|
||||
Docker Desktop Enterprise has the experimental version
|
||||
of Docker Engine enabled, described in the [Docker Experimental Features README](https://github.com/docker/cli/blob/master/experimental/README.md){: target="_blank" class="_"} on
|
||||
GitHub.
|
||||
|
||||
Experimental features are not appropriate for production environments or
|
||||
workloads. They are meant to be sandbox experiments for new ideas. Some
|
||||
experimental features may become incorporated into upcoming stable releases, but
|
||||
others may be modified or pulled from subsequent Edge releases, and never
|
||||
released on Stable.
|
||||
|
||||
In Docker Desktop Enterprise, you can toggle **experimental mode** on and
|
||||
off. If you toggle it off, Docker Desktop Enterprise uses the current generally
|
||||
available release of Docker Engine.
|
||||
|
||||
Run `docker version` to see if you are in Experimental mode. Experimental mode
|
||||
is listed under `Server` data. If `Experimental` is `true`, then Docker is
|
||||
running in experimental mode, as shown here:
|
||||
|
||||
```shell
|
||||
> docker version
|
||||
|
||||
Client:
|
||||
Version: 18.03.0-ce
|
||||
API version: 1.37
|
||||
Go version: go1.9.4
|
||||
Git commit: 0520e24
|
||||
Built: Wed Mar 21 23:06:28 2018
|
||||
OS/Arch: windows/amd64
|
||||
Experimental: true
|
||||
Orchestrator: swarm
|
||||
|
||||
Server:
|
||||
Engine:
|
||||
Version: 18.03.0-ce
|
||||
API version: 1.37 (minimum version 1.24)
|
||||
Go version: go1.9.4
|
||||
Git commit: 0520e24
|
||||
Built: Wed Mar 21 23:21:06 2018
|
||||
OS/Arch: windows/amd64
|
||||
Experimental: true
|
||||
```
|
||||
|
||||
#### Custom registries
|
||||
|
||||
You can set up your own [registries](https://docs.docker.com/registry/introduction){: target="_blank" class="_"} on the **Basic**
|
||||
Daemon settings.
|
||||
|
||||
Normally, you store public or private images in [Docker Hub](https://hub.docker.com/){: target="_blank" class="_"}
|
||||
and [Docker Trusted Registry](https://docs.docker.com/ee/dtr/){: target="_blank" class="_"}. Here, you
|
||||
can use Docker to set up your own [insecure registry](https://docs.docker.com/registry/insecure/){: target="_blank" class="_"}.
|
||||
Simply add URLs for insecure registries and registry mirrors on which to host your images.
|
||||
|
||||
See [How do I add custom CA certificates?](https://docs.docker.com/docker-for-windows/faqs/#how-do-i-add-custom-ca-certificates){: target="_blank" class="_"}
|
||||
and [How do I add client certificates?](https://docs.docker.com/docker-for-windows/faqs/#how-do-i-add-client-certificates){: target="_blank" class="_"} in the FAQs.
|
||||
|
||||
#### Daemon configuration file
|
||||
|
||||
The **Advanced** daemon settings provide the original option to directly edit
|
||||
the JSON configuration file for the [daemon](https://docs.docker.com/engine/reference/commandline/dockerd){: target="_blank" class="_"}.
|
||||
|
||||
> Updating these settings requires a reconfiguration and reboot of the Linux VM.
|
||||
|
||||

|
||||
|
||||
For a full list of options on the Docker daemon, see [daemon](https://docs.docker.com/engine/reference/commandline/dockerd){: target="_blank" class="_"}, and also sub-topics:
|
||||
|
||||
* [Daemon configuration file](https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file){: target="_blank" class="_"}
|
||||
|
||||
* [Linux configuration file](https://docs.docker.com/engine/reference/commandline/dockerd/#linux-configuration-file){: target="_blank" class="_"}
|
||||
|
||||
* [Windows configuration file](https://docs.docker.com/engine/reference/commandline/dockerd/#windows-configuration-file){: target="_blank" class="_"}
|
||||
|
||||
### Kubernetes
|
||||
|
||||
Kubernetes is available on Docker Desktop Enterprise. A standalone Kubernetes server is included that runs on your Windows host, so that you can test deploying your
|
||||
Docker workloads on Kubernetes.
|
||||
|
||||

|
||||
|
||||
**Note**: Administrators have the ability to lock some configuration options. No error message is displayed if you attempt to change the value of a locked configuration option, but the value will remain unchanged.
|
||||
|
||||
The Kubernetes client command, `kubectl`, is included and configured to connect
|
||||
to the local Kubernetes server. If you have `kubectl` already installed and
|
||||
pointing to some other environment, such as `minikube` or a GKE cluster, be sure
|
||||
to change context so that `kubectl` is pointing to `docker-for-desktop`:
|
||||
|
||||
```bash
|
||||
> kubectl config get-contexts
|
||||
> kubectl config use-context docker-for-desktop
|
||||
```
|
||||
|
||||
You can also change it through the Docker Desktop Enterprise menu:
|
||||
|
||||

|
||||
|
||||
If you installed `kubectl` by another method, and
|
||||
experience conflicts, remove it.
|
||||
|
||||
- To enable Kubernetes support and install a standalone instance of Kubernetes
|
||||
running as a Docker container, select **Enable Kubernetes** and click the
|
||||
**Apply and restart** button.
|
||||
|
||||
An Internet connection is required. Images required to run the Kubernetes
|
||||
server are downloaded and instantiated as containers, and the
|
||||
> `Program Files\Docker\Docker\Resources\bin\kubectl.exe` command is installed.
|
||||
|
||||
- By default, Kubernetes containers are hidden from commands like `docker
|
||||
service ls`, because managing them manually is not supported. To make them
|
||||
visible, select **Show system containers (advanced)** and click **Apply and restart**.
|
||||
Most users do not need this option.
|
||||
|
||||
- To disable Kubernetes support at any time, deselect **Enable Kubernetes**.
|
||||
The Kubernetes containers are stopped and removed, and the
|
||||
`/usr/local/bin/kubectl` command is removed.
|
||||
|
||||
For more about using the Kubernetes integration with Docker Desktop Enterprise,
|
||||
see [Deploy on Kubernetes](https://docs.docker.com/docker-for-windows/kubernetes){: target="_blank" class="_"}.
|
||||
|
||||
### Reset
|
||||
|
||||
On the Reset tab, you can restart Docker or reset its configuration.
|
||||
|
||||

|
||||
|
||||
* **Restart Docker** - Shuts down and restarts the Docker application.
|
||||
|
||||
* **Reset to factory defaults** - Resets Docker to factory defaults. This is
|
||||
useful in cases where Docker stops working or becomes unresponsive.
|
||||
|
||||
### Diagnose & feedback
|
||||
|
||||
Visit our [Troubleshooting](windowstroubleshooting.md){: target="_blank" class="_"} guide for more details.
|
||||
|
||||
Log on to our [Docker Desktop for Windows forum](https://forums.docker.com/c/docker-for-windows){: target="_blank" class="_"} to get help from the community, review current user topics, or join a discussion.
|
||||
|
||||
Log on to [Docker Desktop for Windows issues on GitHub](https://github.com/docker/for-win/issues){: target="_blank" class="_"} to review community reported issues.
|
||||
|
||||
To give feedback on the documentation or update it yourself, use the **Feedback** options at the bottom of each docs page.
|
||||
|
||||
## Application Designer
|
||||
|
||||
The Application Designer helps Docker developers quickly create new
|
||||
Docker apps using a library of templates. To start the Application
|
||||
Designer, select the **Design new application** menu entry.
|
||||
|
||||

|
||||
|
||||
The list of available templates is provided:
|
||||
|
||||

|
||||
|
||||
After selecting a template, you can then customize your application, For
|
||||
example, if you select **Flask / NGINX / MySQL**, you can then
|
||||
|
||||
- select a different version of python or mysql; and
|
||||
|
||||
- choose different external ports:
|
||||
|
||||

|
||||
|
||||
You can then name your application and customize the disk location:
|
||||
|
||||

|
||||
|
||||
When you select **Assemble**, your application is created.
|
||||
|
||||

|
||||
|
||||
Once assembled, the following screen allows you to run the application.
|
||||
Select **Run application** to pull the images and start the containers:
|
||||
|
||||

|
||||
|
||||
Use the corresponding buttons to start and stop your application. Select **Open in Finder** on Mac or **Open in Explorer** on Windows to
|
||||
view application files on disk. Select **Open in Visual Studio Code** to open files with an editor. Note that debug logs from the application are displayed in the lower part of the Application Designer
|
||||
window.
|
||||
|
||||
## Switch between Windows and Linux containers
|
||||
|
||||
From the Docker Desktop Enterprise menu, you can toggle which daemon (Linux or Windows)
|
||||
the Docker CLI talks to. Select **Switch to Windows containers** to use Windows
|
||||
containers, or select **Switch to Linux containers** to use Linux containers
|
||||
(the default).
|
||||
|
||||

|
||||
|
||||
For more information on Windows containers, refer to this documentation:
|
||||
|
||||
- Microsoft documentation on [Windows containers](https://docs.microsoft.com/en-us/virtualization/windowscontainers/about/index){: target="_blank" class="_"}.
|
||||
|
||||
- [Build and Run Your First Windows Server Container (Blog Post)](https://blog.docker.com/2016/09/build-your-first-docker-windows-server-container/){: target="_blank" class="_"}
|
||||
gives a quick tour of how to build and run native Docker Windows containers on Windows 10 and Windows Server 2016 evaluation releases.
|
||||
|
||||
- [Getting Started with Windows Containers (Lab)](https://github.com/docker/labs/blob/master/windows/windows-containers/README.md){: target="_blank" class="_"}
|
||||
shows you how to use the [MusicStore](https://github.com/aspnet/MusicStore/blob/master/README.md){: target="_blank" class="_"}
|
||||
application with Windows containers. The MusicStore is a standard .NET application and,
|
||||
[forked here to use containers](https://github.com/friism/MusicStore){: target="_blank" class="_"}, is a good example of a multi-container application.
|
||||
|
||||
- To understand how to connect to Windows containers from the local host, see:
|
||||
[Limitations of Windows containers for `localhost` and published ports](windowstroubleshooting.md#limitations-of-windows-containers-for-localhost-and-published-ports){: target="_blank" class="_"}
|
||||
|
||||
> **Settings** dialog changes with Windows containers
|
||||
>
|
||||
> When you switch to Windows containers, the **Settings** dialog only shows those tabs that are active and apply to your Windows containers:
|
||||
>
|
||||
* [General](#general)
|
||||
* [Proxies](#proxies)
|
||||
* [Docker daemon](#daemon)
|
||||
* [Diagnose and Feedback](#diagnose--feedback)
|
||||
* [Reset](#reset)
|
||||
>
|
||||
If you set proxies or daemon configuration in Windows containers mode, these
|
||||
apply only on Windows containers. If you switch back to Linux containers,
|
||||
proxies and daemon configurations return to what you had set for Linux
|
||||
containers. Your Windows container settings are retained and become available
|
||||
again when you switch back.
|
||||
>
|
||||
|
||||
## Adding TLS certificates
|
||||
|
||||
To your Docker daemon, you can add trusted **Certificate Authorities (CAs)**, to verify registry server
|
||||
certificates, and **client certificates**, to authenticate to registries.
|
||||
|
||||
See [How do I add custom CA certificates?](https://docs.docker.com/docker-for-windows/faqs/#how-do-i-add-custom-ca-certificates){: target="_blank" class="_"}
|
||||
and [How do I add client certificates?](https://docs.docker.com/docker-for-windows/faqs/#how-do-i-add-client-certificates){: target="_blank" class="_"}
|
||||
in the FAQs.
|
||||
|
||||
## Docker Hub
|
||||
|
||||
Select **Sign in /Create Docker ID** from the Docker Desktop Enterprise menu to access your [Docker Hub](https://hub.docker.com/){: target="_blank" class="_"} account. Once logged in, you can access your Docker Hub repositories directly from the Docker Desktop Enterprise menu.
|
||||
|
||||
See these [Docker Hub topics](https://docs.docker.com/docker-hub/){: target="_blank" class="_"} to learn more:
|
||||
|
||||
* [Organizations and Teams in Docker Hub](https://docs.docker.com/docker-hub/orgs/){: target="_blank" class="_"}
|
||||
* [Builds and Images](https://docs.docker.com/docker-hub/official_images/){: target="_blank" class="_"}
|
||||
|
||||
## Where to go next
|
||||
|
||||
* Try out the walkthrough at [Orientation and setup](https://docs.docker.com/get-started/){: target="_blank" class="_"}.
|
||||
|
||||
* Dig in deeper with [Docker Labs](https://github.com/docker/labs/){: target="_blank" class="_"} example walkthroughs and source code.
|
||||
|
||||
* Refer to the [Docker CLI Reference Guide](https://docs.docker.com/develop/sdk/){: target="_blank" class="_"}.
|
||||
|
||||
* Refer to [Troubleshooting Docker Desktop Enterprise on Windows](windowstroubleshooting.md){: target="_blank" class="_"} if you experience problems.
|
||||
|
Before Width: | Height: | Size: 236 KiB |
|
Before Width: | Height: | Size: 130 KiB |
|
Before Width: | Height: | Size: 180 KiB |
|
Before Width: | Height: | Size: 96 KiB |
|
Before Width: | Height: | Size: 495 KiB |
|
Before Width: | Height: | Size: 162 KiB |
|
Before Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 95 KiB |
|
Before Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 9.5 KiB |
|
Before Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 103 KiB |
|
Before Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 85 KiB |
|
Before Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 59 KiB |
|
Before Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 236 KiB |
|
Before Width: | Height: | Size: 130 KiB |
|
Before Width: | Height: | Size: 180 KiB |
|
Before Width: | Height: | Size: 96 KiB |
|
Before Width: | Height: | Size: 495 KiB |
|
Before Width: | Height: | Size: 162 KiB |
|
Before Width: | Height: | Size: 110 KiB |
|
Before Width: | Height: | Size: 123 KiB |
|
Before Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 95 KiB |
|
Before Width: | Height: | Size: 38 KiB |