18

I have installed docker for Windows 10 (Anniversary) as per MSDN
I can execute docker.exe commands in an elevated powershell environment, but not in a regular powershell.

I have updated the docker configuration file to contain:

{
    "group": "Power Users"
}

And have obviously added the user to power users, the user is also in the administrators group.

Is there any way to execute docker commands such as docker search * without using run as administrator

Warning: failed to get default registry endpoint from daemon (error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.25/info: open //./pipe/docker_engine: Access is denied.). Using system default: https://index.docker.io/v1/ error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.25/images/search?limit=25&term=%2A: open //./pipe/docker_engine: Access is denied.

Jim
  • 14,952
  • 15
  • 80
  • 167
  • 1
    Have to ask - did you restart the service after changing the config file? – Elton Stoneman Oct 17 '16 at 10:13
  • thanks for the reminder, in order to be certain I rebooted the laptop, same issue exactly. it might be a bug, perhaps the named pipe is not getting setup correctly according to the group permissions. – Jim Oct 17 '16 at 12:31
  • Where did you put the daemon.json config? It's supposed to be C:\ProgramData\Docker\config\daemon.json. Docker may not support a group name that requires quotes around it due to space. They recommend "docker", but I used "docker-users". – carlin.scott Feb 04 '22 at 20:40
  • Take a look on [this](https://stackoverflow.com/questions/58663920/can-i-run-docker-desktop-on-windows-without-admin-privileges) i solved the problem with that – Marcos Venicius Feb 27 '23 at 11:38

4 Answers4

9

Although my user has Administrator privileges, I don't need to use an elevated PowerShell to run docker.

You can try making the connection via TCP. In Power Shell type:

$env:DOCKER_HOST="tcp://0.0.0.0:2375"
docker ps

Or

$env:DOCKER_HOST="tcp://localhost:2375"
docker ps

Since version 17.03.1-ce-win12 (12058) you must check Expose daemon on tcp://localhost:2375 without TLS if you use Docker for Windows and connecting via TCP

Regards

Carlos Rafael Ramirez
  • 5,984
  • 1
  • 29
  • 36
  • There's a real possibility that I was just doing something wrong, but I tried this and it didn't make a difference for me. @Carlos did you install Docker For Windows or the dockerd.exe manually? – Jeff Oct 17 '16 at 16:53
  • 1
    Hello, no I installed Docker for Windows. But I recall that in your question you aprobably are using Windows Container. In such case i recommend you try the @Jeff way. I have Docker for Windows but the stable one which doesn't support Windows Containers yet – Carlos Rafael Ramirez Oct 17 '16 at 16:58
  • i was torn between these two answers, but this one most directly addresses the issue. I imagine this is a bug, as what's available via TCP/IP should also be available via PIPE. After all, they are just transport mechanisms. – Jim Oct 18 '16 at 04:04
  • 1
    This really helped, but I also needed to swap by daemon to Windows Containers - worth checking which you need. – Tim Jun 14 '20 at 11:39
4

This is a sideways way of answering your question, but I think it will be what you're after in the long run....

As of 1.12.2 Beta 26 Docker For Windows allows you to switch between Windows and Linux containers. The install is an MSI so it appears to set up the correct permissions too. (And you don't have to go though all the manual steps to get Windows containers working!)

I'm using 1.12.2 Beta 28 on Win 10. I can switch between Linux and Windows; and run Docker commands with out running PS as admin. I've tested 'docker ps', 'docker info', and 'docker search *' so far..

Here's where I got my info (https://stefanscherer.github.io/run-linux-and-windows-containers-on-windows-10/)

Jeff
  • 2,728
  • 3
  • 24
  • 41
2

I was facing this issue when I started the powershell/cmder without administrator. The issue got resolved when I started my powershell/cmder with run as administrator.

Ranjit
  • 135
  • 7
0

I tried Carlos solution but it didn't work for me.

So I just had to open "lusrmgr.msc" (Windows) and add my user to the "docker-users" group as shown below. Then I restarted my computer and all worked fine!

More info on this issue: https://github.com/docker/for-win/issues/868.

Adding local user to docker-users group.

Adrian Sanchez
  • 121
  • 1
  • 4