Weird behavior of docker container in different environment


This issue is easily reproducible, I had a container which runs Tor and obfs4proxy packages, the container works flawlessly on macOS (Docker Desktop), however, when running the same container on Arch Linux (Manjaro, with Docker Engine), Tor gets stuck at “0% Starting”, No matter which base image I use or linux kernel (tried switching between manjaro kernels), they all have same issue. Setting UseBridges to 0 fixes the issue, so the problem is definitely with Tor’s bridges side.

Torrc file looks like this:

ClientTransportPlugin obfs4 exec /path/to/obfs4proxy
UseBridges 1
bridge obfs4 …
bridge obfs4 …

Stops at:

Bootstrapped 0% (starting): Starting
Starting with guard context "bridges"
[notice] Delaying directory fetches: No running bridges

on macOS (Docker Desktop), where the same config is working, changing ClientTransportPlugin to an invalid path throws an error, while on Arch linux (Docker Engine) it doesn’t react to whether the path is correct or invalid.

Afaik the only difference between the two environments is the Linux kernel, but switching Manjaro to the same kernel version didn’t help as well.

Does Docker Desktop use any kind of modified kernel that makes it different than Manjaro kernel? I’m not sure if that makes sense. Any help is appreciated.


Tested on ubuntu 22.04 and it doesn’t get stuck, this issue only happens in Arch Linux, wonder what could be the issue.