com.docker.diagnose
, that should be in C:ProgramFilesDockerDockerresourcescom.docker.diagnose.exe
.docker run
thatattempt to pull from the registry produces error messages on the command line,like this:read
, write
, execute
permissions for user
and for group
).chmod
control over these permissions.inotify
does not work on Docker Desktop. This becomes evident,for example, when an application needs to read/write to a container across amounted drive. Instead of relying on filesystem inotify, we recommend usingpolling features for your framework or programming language.Node.js
, try the fallbackpolling mode described here: nodemon isn’t restarting nodeapplications.docker
commands and tasks under a different username than the one used to set up shareddrives, your containers don’t have permissions to access the mounted volumes.The volumes show as empty.C
drive as a local user instead of as the domain user. Assume thelocal user is samstevens
and the domain user is merlin
.merlin
).net share c
to view user permissions for <host><username>, FULL
.net share c
.nobrl
option to override database lockingnobrl
option, which preventslock requests from being sent to the database server(docker/for-win#11,docker/for-win#694). This isdone to ensure container access to database files shared from the host. Althoughit solves the over-the-network database access problem, this “unlocked” strategycan interfere with other aspects of database functionality (for example,write-ahead logging (WAL) with SQLite, as described indocker/for-win#1886).n
lineendings. This includes files referenced at the command line for builds and inRUN commands in Docker files.docker build
run in a Unix environment, so files incontainers must use Unix style line endings: n
, not Windows style: rn
.Keep this in mind when authoring files such as shell scripts using Windowstools, where the default is likely to be Windows style line endings. Thesecommands ultimately get passed to Unix commands inside a Unix based container(for example, a shell script passed to /bin/sh
). If Windows style line endingsare used, docker run
fails with syntax errors.Virtualization Technology (VTx)
or something similar. Run the command systeminfo
to check all required Hyper-V features. See Pre-requisites for Hyper-V on Windows 10 for more details.boot2docker.iso
, and the Microsoft Hyper-Vdriver to create local virtual machines. This istangential to using Docker Desktop, but if you want to use Docker Machineto create multiple local Virtual Machines (VMs), or to provision remote machines, see the DockerMachine topics. This is documented only for users looking for information about Docker Machine on Windows, which requires that Hyper-V is enabled, an external network switch is active, and referenced in the flags for the docker-machine create
command as described in the DockerMachine driver example.DockerNAT
with this switch.Read the full description before you run the Windows cleanup script.The cleanup command has two flags,-Cleanup
and-ForceDeleteAllSwitches
. Read the whole page before running any scripts,especially warnings about-ForceDeleteAllSwitches
. {: .warning}
localhost
and published portsWindows 10 18.09
, published ports on Windows containers have an issue with loopback to the localhost. You can only reach container endpoints from the host using the container’s IP and port. With Windows 10 18.09
, containers work with published ports on localhost.curl http://localhost
, or pointing your web browser athttp://localhost
does not display the nginx
web page (as it would do withLinux containers).dockerinspect
with some --format
optionsand the ID or name of the container. For the example above, the command wouldlook like this, using the name we gave to the container (webserver
) instead ofthe container ID:http://172.17.0.2:80
(or simplyhttp://172.17.0.2
, since port 80
is the default HTTP port.)Moby
. On real hardware, it takes 5-10 seconds to boot theLinux VM; roughly the time between the Connected
log entry and the *Starting Docker ... [ ok ]
log entry. If you boot the Linux VM inside aWindows VM, this may take considerably longer. We have a timeout of 60s or so.If the VM hasn’t started by that time, we retry. If the retry fails we printan error. You can sometimes work around this by providing more resources tothe Windows VM.8.8.8.8
. You can configure this through the Settings10.0.75.0/24
. Should this clash with your normal network setup, you can changethe prefix from the Settings menu. See the Network topicunder Settings.inotify
currently does not work on Docker DesktopNode.js
with nodemon
, a temporary workaround is to try thefallback polling mode described here: nodemon isn’t restarting nodeapplications. Seealso this issue on GitHub Inotify on shared drives does notwork.DOCKER_HOST
DOCKER_HOST
environmental variable does not need to be set. If you usebash, use the command unset ${!DOCKER_*}
to unset it. For other shells,consult the shell’s documentation.hello-world-nginx
example and others, Docker Desktop must berunning to get to the webserver on http://localhost/
. Make sure that theDocker whale is showing in the menu bar, and that you run the Docker commands ina shell that is connected to the Docker Desktop Engine (not Engine from Toolbox). Otherwise, you might start the webserver container but get a “web pagenot available” error when you go to docker
.port already allocated
errorsBind 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
...resmon.exe
GUI and click “Network” and then “Listening Ports” or in a Powershell usenetstat -aon | find /i 'listening '
to discover the PID of the processcurrently using the port (the PID is the number in the rightmost column). Decidewhether to shut the other process down, or to use a different port in yourdocker app.