gVisor implements a large portion of the Linux surface and while we strive to make it broadly compatible, there are (and always will be) unimplemented features and bugs. The only real way to know if it will work is to try. If you find a container that doesn’t work and there is no known issue, please file a bug indicating the full command you used to run the image. You can view open issues related to compatibility here.
If you’re able to provide the debug logs, the problem likely to be fixed much faster.
The following applications/images have been tested:
Most common utilities work. Note that:
tcpdumpand old versions of
ping, require explicitly enabling raw sockets via the unsafe
Different Docker images can behave differently. For example, Alpine Linux
and Ubuntu have different
Specific tools include:
|grep||Working (unless stdin is a pipe and stdout is /dev/null).|
|ifconfig||Works partially, like ip. Full support in progress.|
|ip||Some subcommands work (e.g. addr, route). Full support in progress.|
|mount||Works in readonly mode. gVisor doesn’t currently support creating new mounts at runtime.|
|sshd||Partially working. Job control in progress.|
|tcpdump||Working only with libpcap versions < 1.10, Promiscuous mode in progress.|