this post was submitted on 26 Oct 2023
79 points (94.4% liked)

Selfhosted

40153 readers
500 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 1 year ago
MODERATORS
 

I keep reading about podman, yet it doesm't FEEL as mature to me as docker for a normal user like me. What's your opinion? Did you already switch or do you keep waiting for ... for what? When will you switch?

you are viewing a single comment's thread
view the rest of the comments
[–] ShortN0te@lemmy.ml 7 points 1 year ago (3 children)

I do not even want to know how many databases are openly available because of that shit.

[–] peter@feddit.uk 7 points 1 year ago

Firewall rules shouldn't be your only line of defense

[–] lemmyvore@feddit.nl 3 points 1 year ago (1 children)

It changes packet routing because you're asking it to map a container port to the host public interface. How else would that occur? And what would be the point in blocking access to it?

Do you want to write routing rules, and keep track of container interfaces, and to grant access manually, for each and every port you expose?

[–] ShortN0te@lemmy.ml 5 points 1 year ago (1 children)

When i have port 8888 not allowed on my firewall then no other program should 'open' that port. If i map a port with the syntax '8888:8888' exaclty that happens with docker. Not with podman.

Also this is the default syntax you will find in any guide and docs there is.

To prevent this happening with docker you will have to specify the localhost with '127.0.0.1:8888:8888'

When you check the internet for this subject you will notice that this behavior catches a lot of ppl by surpirise.

[–] lemmyvore@feddit.nl 1 points 1 year ago (1 children)

It catches people by surprise because they don't have a clue. If someone is binding to localhost just to avoid opening the firewall it means that either they don't understand how packet routing works, or that they should have used a docker network.

If you use 8888:8888 it means you want the port to be open on the host's external interface. Which means it needs to be forwarded as well as accessible. Docker does this for you so you don't have to write the rules by hand, you don't have to keep track of container interfaces, and you don't have to remember to take the rules up and down whenever you start or stop the container.

Out of curiosity, how do you do all this with podman? By hand?

[–] ShortN0te@lemmy.ml 2 points 1 year ago (1 children)

Just alone the fact that podman, a drop in replacement for docker, does implement this in another way proofs that it is bad practice to implement the way docker did.

If you use 8888:8888 it means you want the port to be open on the host's external interface

I am sorry. That is just bs. When i install apache and start the service and let it listen on port 80 and 443 i still have to add the firewall rule to allow it. This is the default behavior of every other programm.

[–] lemmyvore@feddit.nl -1 points 1 year ago* (last edited 1 year ago)

When you install Apache on the host then yes, you just need a rule to allow the port. But a container runs on a separate network interface, which means you also (1) need to know the name of the interfaces involved, which change for each container and their network mode and the host's network adapter and so on, and (2) set up rules to forward the port traffic between the container interface and the host interface.

I'm guessing you haven't checked to see what Docker is actually doing, or you've looked only at the OUTPUT and INPUT chains.

I'm also guessing that when you stop Apache you leave the ports open in the firewall. Which is bad practice. Docker takes down the rules when the container stops, which ends up as better security.

I sincerely hope you're not actually running a machine that's just a firewall away from the Internet, because blaming Docker for bad security in that case is very shortsighted. Docker is actually helping you by making correct and complete firewall rules.

podman, a drop in replacement for docker, does implement this in another way

Yeah? How does it do that?

[–] ikidd@lemmy.world 1 points 1 year ago (2 children)

Who the hell runs Docker on an edge device?

[–] theRealBassist@lemmy.world 3 points 1 year ago (1 children)

Technically I do, maybe? My home server is running ProxMox which virtualizes PFSense. My docker install is on a separate VM, but same physical device. Not sure if that counts lol

[–] ikidd@lemmy.world 2 points 1 year ago

That doesn't count. You're still externally firewalling it, which is good procedure.

[–] taladar@sh.itjust.works 1 points 1 year ago

Everyone who runs it on a root server that is not part of some larger private network at that hoster?