skip to Main Content

I am trying to follow this post, adding the current user to the Docker group:

sudo usermod -aG docker $(whoami)

but of course, there is no usermod command on macOS:

-bash: usermod: command not found

Now I was wondering if there is an equivalent of the above command on macOS? Probably using dscl?

P.S.1. I have used these instructions to set up Docker and docker-machine.

P.S.2. This question is not about Visual Studio Code (VSCode)
in particular, but if I open a new terminal and run eval "$(docker-machine env default)" and then run VSCode with code the problem is solved.

2

Answers


  1. Chosen as BEST ANSWER

    This question, as others have also pointed out, is irrelevant. The process of adding a user to the docker group is only necessary on Linux where sudo privileges are required to run Docker commands, as explained here. On macOS, and using docker-machine, that is unnecessary.


    But if one wants to add a user, or more specifically the current user, to the docker user group, for whatever reason, here are the instructions:

    • List the existing user groups with dscl . list /groups from here
    • To create a user group, if it doesn't exist use the command sudo dscl . create /Groups/<groupName> from here.
    • In the context of this discussion the <groupName> could be replaced with docker.
    • To add a user to a group one can use the command sudo dseditgroup -o edit -a <userName> -t user <groupName>. from here or sudo dscl . append /Groups/<groupName> GroupMembership <userName> from here.
    • One can replace the <userName> with $USER or $(whoami) to refer to the current user.
    • To test and see if the expected user has been added o the specific group one can use the command dscl . -read /Groups/<groupName> GroupMembership to list all the remembers. However, it is not guaranteed to deliver the correct result, as explained here.

    And the another issue with the Visual Studio Code, also has barely anything to do with the user groups. By running the eval "$(docker-machine env <dockerMachineName>)" in a new terminal, and running the code editor from inside the terminal, the Docker extension works just fine.


  2. I also had to write sudo on mac to run docker commands (I don’t know why). Thanks to Foad S. Farimani explanation I fixed it.

    I just want to add commands which are ready for using.
    First one creates docker group.
    Second one adds current user into docker group.

    sudo dscl . create /Groups/docker
    sudo dseditgroup -o edit -a $USER -t user docker
    

    If you need something different read Foad S. Farimani answer.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search