openshell-driver-docker
Docker compute driver for OpenShell sandboxes
TLDR
SYNOPSIS
openshell-driver-docker --bind-socket PATH --config FILE [options]
DESCRIPTION
openshell-driver-docker is the Docker compute driver for NVIDIA OpenShell. openshell-gateway can run the same driver in-process, or it can connect to this binary over a Unix socket (--compute-driver-socket on the gateway). The process serves the ComputeDriver gRPC API. It stops on SIGINT or SIGTERM.Each sandbox is two containers. openshell-sandbox is PID 1 in the workload container: process tree, seccomp notification broker, Landlock baseline, and loopback forwarding. openshell-supervisor is a companion container: gateway session, policy, credentials, and approved egress. The workload network mode is none. The supervisor network mode defaults to host; bridge puts the supervisor on Docker's bridge network, and auto also selects host. Both containers are non-root, request no capabilities, and set no-new-privileges.The driver talks to Docker through bollard. When the config file leaves the Docker socket unset, an explicitly selected Docker driver falls back to /var/run/docker.sock after probing the usual local sockets. Trusted openshell-sandbox and openshell-supervisor bytes are copied from the configured images through the Docker archive API, so the same path works for a local, remote, or VM-backed daemon.--bind-socket is required. The socket is private to the current user (directory mode 0700, socket mode 0600) and accepts only a same-user peer. --config is required. It is a TOML file of the driver table. After that file is read, --admission-config-json replaces the admission fields, and --sandbox-runtime-image and --supervisor-image replace those image fields when they are set. OpenTelemetry and the gateway name from the command line are applied on top of the file; the file cannot set them.Caller driver config is off unless admission policy turns it on. Existing volumes need administrator approval labels. Raw bind mounts have no label resolver and are denied while admission is enforced. GPU devices are temporarily exempt. Host bind mounts also need the config file's bind-mount opt-in.
PARAMETERS
--bind-socket PATH
Required. Unix socket for the ComputeDriver service. The directory must be owned by the current user and must not be a symlink.--config FILE
Required. TOML file for this driver (a serialized Docker compute config). Unknown fields are rejected.--admission-config-json JSON
Operator admission policy. When set, replaces the allow-driver-config and resource-admission fields from --config.--sandbox-runtime-image REF
OCI image that contains the openshell-sandbox binary. Overrides the file.--supervisor-image REF
OCI image that contains the openshell-supervisor binary. Overrides the file.--gateway-bind IP:PORT
Gateway listener used to derive the supervisor endpoint. Default 127.0.0.1:50051. Port 0 is rejected.--log-level LEVEL
Driver log level. Default info.--otlp-endpoint URL, --gateway-name NAME
OTLP/gRPC collector and the gateway name attached to exported traces. Also forwarded to supervisors.--otlp-ocsf-endpoint URL, --otlp-ocsf-schema-version VERSION
OTLP/gRPC collector for supervisor OCSF events, and the schema version those events are downgraded to. The schema flag requires the endpoint flag.
CONFIGURATION
Select this driver from the gateway with --compute-driver docker, or set the compute driver field to docker. Docker settings live in the Docker driver table. A minimal file for --config:
image_pull_policy = "if_not_present"
supervisor_network_mode = "host"
sandbox_label = "default"
no_proxy
proxy_auth_file
proxy_auth_allow_insecure
proxy_connect_by_hostname
proxy_ca_bundle
--bind-socket OPENSHELL_COMPUTE_DRIVER_SOCKET
--config OPENSHELL_DOCKER_DRIVER_CONFIG
--sandbox-runtime-image OPENSHELL_SANDBOX_RUNTIME_IMAGE
--supervisor-image OPENSHELL_SUPERVISOR_IMAGE
--gateway-bind OPENSHELL_GATEWAY_BIND
--log-level OPENSHELL_LOG_LEVEL
--otlp-endpoint OPENSHELL_OTLP_ENDPOINT
--otlp-ocsf-endpoint OPENSHELL_OTLP_OCSF_ENDPOINT
--otlp-ocsf-schema-version OPENSHELL_OTLP_OCSF_SCHEMA_VERSION
--gateway-name OPENSHELL_GATEWAY_NAME
CAVEATS
The gateway starts this binary for an external driver. A hand-written command line is the development path. The Unix socket has no TCP listen mode.--gateway-bind defaults to 127.0.0.1:50051, which is not the gateway's own default port 17670. Set it to the address the supervisor can reach.Host networking on Docker Desktop has to be enabled in Docker settings. Bridge mode cannot use a loopback or unspecified gateway endpoint. A native Linux gateway that listens only on loopback cannot serve a bridge supervisor.The workload image must resolve to one exact non-root uid and gid. Root and unresolved names are rejected. Image volumes and mounts must not cover the workspace or the /.openshell control tree.
HISTORY
openshell-driver-docker ships in NVIDIA OpenShell (Apache License 2.0). OpenShell was first published in March 2026. The 0.1.x line is the stable release cadence.
SEE ALSO
openshell(1), openshell-gateway(1), openshell-supervisor(1), openshell-sandbox(1), openshell-driver-podman(1), openshell-driver-kubernetes(1), openshell-driver-vm(1), docker(1)
