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:
- Some tools, such as
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|
|ip||In progress. Some subcommands work (e.g. addr, route) on alpine images. Not working on newest debian/ubuntu images.|
|mount||Works in readonly mode. gVisor doesn’t currently support creating new mounts at runtime|
|sshd||Partially working. Job control in progress|