There have been multiple accounts created with the sole purpose of posting advertisement posts or replies containing unsolicited advertising.

Accounts which solely post advertisements, or persistently post them may be terminated.

Uid/gid in docker containers don't match the uid/gid on the server?

Installed a new debian server, installed docker, but then now i have a problem with permissions on passed directories.

On the previous server, the uid/gids inside the docker container match the uid/gid on the real server.

Root is 0, www-data is 33, and so on.

On this new server, instead, files owned by root (0) in the container are translated to 1000 on the server, www-data (33) is 100032, and so on (+1000 appended to the uid)

Is this normal or did I misconfigure something? On the previous server I was running everything as root (the interactive user was root), and i would like to avoid that

Dirk ,
@Dirk@lemmy.ml avatar

It’s actually a suggested configuration / best practice to NOT have container user IDs matching the host user IDs.

Ditch the idea of root and user in a docker container. For your containerized application use 10000:10001. You’ll have only one application and one “user” in the container anyways when doing it right.

To be even more on the secure side use a different random user ID and group ID for every container.

Appoxo ,
@Appoxo@lemmy.dbzer0.com avatar

Do I need to actually create the user in advance or can I just choose a string as I see fit?

thesmokingman ,

This is really dependent on whether or not you want to interact with mounted volumes. In a production setting, containers are ephemeral and should essentially never be touched. Data is abstracted into stores like a database or object storage. If you’re interacting with mounted volumes, it’s usually through a different layer of abstraction like Kibana reading Elastic indices. In a self-hosted setting, you might be sidestepping dependency hell on a local system by containerizing. Data is often tightly coupled to the local filesystem. It is much easier to match the container user to the desired local user to avoid constant sudo calls.

I had to check the community before responding. Since we’re talking self-hosted, your advice is largely overkill.

Moonrise2473 OP ,

checked .bash_history, looks like i installed docker in the new rootless mode


<span style="color:#323232;">wget get.docker.com
</span><span style="color:#323232;">ls
</span><span style="color:#323232;">mv index.html docker.sh
</span><span style="color:#323232;">chmod +x docker.sh
</span><span style="color:#323232;">./docker.sh
</span><span style="color:#323232;">dockerd-rootless-setuptool.sh install
</span><span style="color:#323232;">sudo dockerd-rootless-setuptool.sh install
</span><span style="color:#323232;">sudo apt install uidmap
</span><span style="color:#323232;">dockerd-rootless-setuptool.sh install
</span>

now i need to see how to restore it to work in the traditional way or i will become crazy with the permissions…

Moonrise2473 OP ,

I fixed it:

for future reference:

  • from docs.docker.com/engine/security/rootless/…, run dockerd-rootless-setuptool.sh uninstall
  • delete the user data (warning: i wasn’t using any docker volumes and i had no data to lose!!!) using the command that the previous script tells you
  • add your user to the docker group and use the traditional “run docker as root” way: docs.docker.com/engine/…/linux-postinstall/
Atemu ,
@Atemu@lemmy.ml avatar

Why go through all of that complexity when you could just sudo apt install docker?

Moonrise2473 OP ,

i don’t want to type sudo before each single docker command

Voroxpete ,

You can do that with regular docker. Just add your user to the docker group.

(don’t forget to log out and log in again after adding new groups to your user)

twiked ,

Niche use case, but you can also use newgrp to run commands with a recently-added group to your user, without having to logout/login yet.

cheet ,

So add your user to the new docker group made on install of that package and you’ll be able to docker without sudo. You may need to relogin or newgrp docker before it works tho

hottari ,

Looks like you are running rootless.

neidu2 , (edited )

I’m not very well versed on docker, but this sounds like a config issue. The behavior seems similar to “squash root” found in many other services.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • [email protected]
  • random
  • lifeLocal
  • goranko
  • All magazines