Skip to content
This repository was archived by the owner on Aug 7, 2025. It is now read-only.

Commit e812ca3

Browse files
ctalledonestybox
authored andcommitted
Reduced warning on Sysbox being in alpha, per customer feedback.
Also, changed the trouble-shooting guide to place the shiftfs error higher up as customers may likely stumble on it.
1 parent 61ab8f4 commit e812ca3

File tree

2 files changed

+133
-81
lines changed

2 files changed

+133
-81
lines changed

README.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,6 @@ create system containers with Docker as described below.
5353

5454
## Features
5555

56-
**NOTE**: It's early days for Nestybox, so our system containers
57-
support a reduced set of features and use-cases at this time.
58-
5956
Below is a list of features currently supported by Sysbox.
6057

6158
### System Container Deployment
@@ -141,9 +138,9 @@ stated above, see [here](docs/troubleshoot.md#upgrading-the-ubuntu-kernel)
141138
for suggestions on how to do this.
142139

143140
Alternatively it's possible to use Sysbox with slightly older Ubuntu
144-
kernels, but doing so requires configuring Sysbox in "Docker
145-
userns-remap isolation mode". In this case you can run Sysbox on the
146-
following distros (without needing to upgrade the kernel):
141+
kernels, but doing so requires using system containers in [Docker userns-remap isolation mode](docs/usage.md#system-container-isolation-modes).
142+
In this case you can run Sysbox on the following distros (without
143+
needing to upgrade the kernel):
147144

148145
- Ubuntu 19.04 "Disco"
149146
- Ubuntu 18.10 "Cosmic"
@@ -153,13 +150,13 @@ We plan to add support for more distros in the future.
153150

154151
Here is a summary of the distro requirements:
155152

156-
| System Container Isolation Mode | Required Distro & Kernel |
157-
| ------------------------------- | ----------------------------------- |
158-
| Exclusive userns-remap | Ubuntu 19.04 Disco (>= 5.0.0-21.22) |
159-
| | Ubuntu 18.04 Bionic (5.0+ kernel) |
160-
| Docker userns-remap | Ubuntu 19.04 Disco |
161-
| | Ubuntu 18.10 Cosmic |
162-
| | Ubuntu 18.04 Bionic |
153+
| System Container Isolation Mode | Required Distro & Kernel |
154+
| ---------------------------------| ----------------------------------- |
155+
| Exclusive userns-remap (default) | Ubuntu 19.04 Disco (>= 5.0.0-21.22) |
156+
| | Ubuntu 18.04 Bionic (5.0+ kernel) |
157+
| Docker userns-remap | Ubuntu 19.04 Disco |
158+
| | Ubuntu 18.10 Cosmic |
159+
| | Ubuntu 18.04 Bionic |
163160

164161
See [here](docs/usage.md#system-container-isolation-modes) for info on
165162
Sysbox isolation modes and how to configure them.
@@ -211,16 +208,17 @@ sysbox-mgr.service loaded active running sysbox-mgr compon
211208
sysbox.service loaded active exited Sysbox General Service
212209
```
213210

214-
Note: the sysbox.service is ephemeral (it exits once it launches the other sysbox services).
211+
Note: the sysbox.service is ephemeral (it exits once it launches the other sysbox services; that's why
212+
you see `sysbox.service loaded active exited` above).
215213

216214
If you are curious on what the other Sysbox services are, refer to the [Sysbox design document](docs/design.md).
217215

218216
If you hit problems during installation, see the [Troubleshooting document](docs/troubleshoot.md).
219217

220218
## Usage
221219

222-
To launch a system container with Docker, point Docker to the Sysbox container
223-
runtime, using the `--runtime=sysbox-runc` option:
220+
To launch a system container with Docker, simply point Docker to the
221+
Sysbox container runtime as follows:
224222

225223
```console
226224
$ docker run --runtime=sysbox-runc --rm -it --hostname my_cont debian:latest
@@ -303,9 +301,11 @@ We don't yet support other container managers (e.g., cri-o, etc).
303301

304302
## Production Readiness
305303

306-
Sysbox is still in alpha / experimental stage. It's **not production ready yet**.
304+
Sysbox is well tested and will work for all use-cases described in our
305+
documentation.
307306

308-
Nestybox is actively enhancing its functionality and fixing issues at this time.
307+
Having said that, it's early days for Nestybox so the product is not
308+
production ready yet.
309309

310310
Your feedback regarding issues or improvements is much appreciated!
311311

docs/troubleshoot.md

Lines changed: 115 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,16 @@
66
- [Bionic Beaver](#bionic-beaver)
77
- [Disco Dingo](#disco-dingo)
88
- [Sysbox Installation Problems](#sysbox-installation-problems)
9-
- [Sysbox Logs](#sysbox-logs)
10-
- [sysbox-mgr and sysbox-fs](#sysbox-mgr-and-sysbox-fs)
11-
- [sysbox-runc](#sysbox-runc)
12-
- [Docker reports Unknown Runtime error](#docker-reports-unknown-runtime-error)
13-
- [Bind Mount Permissions Error](#bind-mount-permissions-error)
149
- [Ubuntu Shiftfs Module Not Present](#ubuntu-shiftfs-module-not-present)
1510
- [Unprivileged User Namespace Creation Error](#unprivileged-user-namespace-creation-error)
11+
- [Docker reports Unknown Runtime error](#docker-reports-unknown-runtime-error)
12+
- [Bind Mount Permissions Error](#bind-mount-permissions-error)
1613
- [Failed to Setup Docker Volume Manager Error](#failed-to-setup-docker-volume-manager-error)
14+
- [Failed to stat mount source at /var/lib/sysboxfs](#failed-to-stat-mount-source-at-varlibsysboxfs)
15+
- [Failed to register with sysbox-mgr](#failed-to-register-with-sysbox-mgr)
16+
- [Sysbox Logs](#sysbox-logs)
17+
- [sysbox-mgr and sysbox-fs](#sysbox-mgr-and-sysbox-fs)
18+
- [sysbox-runc](#sysbox-runc)
1719

1820
## Upgrading the Ubuntu Kernel
1921

@@ -106,29 +108,58 @@ sysbox.service loaded active exited Sysbox General Ser
106108
The sysbox.service is ephemeral (it exits once it launches the other sysbox services),
107109
so the `active exited` status above is expected.
108110

109-
## Sysbox Logs
111+
## Ubuntu Shiftfs Module Not Present
110112

111-
### sysbox-mgr and sysbox-fs
113+
When creating a system container, the following error indicates that
114+
the Ubuntu shiftfs module is required by Sysbox but is not loaded
115+
in the Linux kernel:
112116

113-
The Sysbox daemons (i.e. sysbox-fs and sysbox-mgr) will log
114-
information related to their activities in the
115-
`/var/log/sysbox-fs.log` and `/var/log/sysbox-mgr.log` files
116-
respectively. These logs should be useful during troubleshooting
117-
exercises.
117+
```console
118+
# docker run --runtime=sysbox-runc -it debian:latest
119+
docker: Error response from daemon: OCI runtime create failed: container requires user-ID shifting but error was found: shiftfs module is not loaded in the kernel. Update your kernel to include shiftfs module or enable Docker with userns-remap. Refer to the Sysbox troubleshooting guide for more info: unknown
120+
```
118121

119-
### sysbox-runc
122+
The error likely means you are running Sysbox on an older Ubuntu
123+
kernel, as newer Ubuntu kernels come with shiftfs.
120124

121-
For sysbox-runc, logging is handled as follows:
125+
The Ubuntu shiftfs module is required when Sysbox is configured in
126+
[exclusive userns-remap mode](usage.md#exclusive-userns-remap-mode)
127+
(it's default operating mode).
122128

123-
- When running Docker + sysbox-runc, the sysbox-runc logs are actually stored in
124-
a containerd directory such as:
129+
You can work-around this error by either:
125130

126-
`/run/containerd/io.containerd.runtime.v1.linux/moby/<container-id>/log.json`
131+
- Updating your Linux distro. See [here](../README.md#supported-linux-distros)
132+
for the list of Linux distros supported by Sysbox, and
133+
[here](#upgrading-the-ubuntu-kernel) for recommendations on how to
134+
update the distro.
127135

128-
where `<container-id>` is the container ID returned by Docker.
136+
or
129137

130-
- When running sysbox-runc directly, sysbox-runc will not produce any logs by default.
131-
Use the `sysbox-runc --log` option to change this.
138+
- Configuring Sysbox in docker userns-remap mode, as described
139+
[here](usage.md#system-container-isolation-modes). This
140+
mode does not require use of shiftfs.
141+
142+
## Unprivileged User Namespace Creation Error
143+
144+
When creating a system container, Docker may report the following error:
145+
146+
```console
147+
docker run --runtime=sysbox-runc -it ubuntu:latest
148+
docker: Error response from daemon: OCI runtime create failed: host is not configured properly: kernel is not configured to allow unprivileged users to create namespaces: /proc/sys/kernel/unprivileged_userns_clone: want 1, have 0: unknown.
149+
```
150+
151+
This means that the host's kernel is not configured to allow unprivileged users
152+
to create user namespaces.
153+
154+
For Ubuntu, fix this with:
155+
156+
```console
157+
sudo sh -c "echo 1 > /proc/sys/kernel/unprivileged_userns_clone"
158+
```
159+
160+
**Note:** The Sysbox package installer automatically executes this
161+
instruction, so normally there is no need to do this configuration
162+
manually.
132163

133164
## Docker reports Unknown Runtime error
134165

@@ -180,77 +211,98 @@ system container to a non-root user on the host.
180211
Refer to [System Container Bind Mount Requirements](usage.md#system-container-bind-mount-requirements) for
181212
info on how to set the correct permissions on the bind mount.
182213

183-
## Ubuntu Shiftfs Module Not Present
214+
## Failed to Setup Docker Volume Manager Error
184215

185-
When creating a system container, the following error indicates that
186-
the Ubuntu shiftfs module is required by Sysbox but is not loaded
187-
in the Linux kernel:
216+
When creating a system container, Docker may report the following error:
188217

189218
```console
190-
# docker run --runtime=sysbox-runc -it debian:latest
191-
docker: Error response from daemon: OCI runtime create failed: container requires user-ID shifting but error was found: shiftfs module is not loaded in the kernel. Update your kernel to include shiftfs module or enable Docker with userns-remap. Refer to the Sysbox troubleshooting guide for more info: unknown
219+
docker run --runtime=sysbox-runc -it ubuntu:latest
220+
docker: Error response from daemon: OCI runtime create failed: failed to setup docker volume manager: host dir for docker store /var/lib/sysbox/docker can't be on ..."
192221
```
193222

194-
The error likely means you are running Sysbox on an older Ubuntu
195-
kernel, as newer Ubuntu kernel come with shiftfs.
223+
This means that Sysbox's `/var/lib/sysbox` directory is on a
224+
filesystem not supported by Sysbox.
196225

197-
The Ubuntu shiftfs module is required when Sysbox is configured in
198-
[exclusive userns-remap mode](usage.md#exclusive-userns-remap-mode)
199-
(it's default operating mode).
226+
This directory must be on one of the following filesystems:
200227

201-
You can work-around this error by either:
228+
- ext4
229+
- btrfs
202230

203-
- Updating your Linux distro. See
204-
[here](../README.md#supported-linux-distros) for the list of Linux
205-
distros supported by Sysbox, and [here](#upgrading-the-ubuntu-kernel)
206-
for recommendations on how to update the distro.
231+
The same requirement applies to the `/var/lib/docker` directory.
207232

208-
or
233+
This is normally the case for vanilla Ubuntu installations, so this
234+
error is not common.
209235

210-
- Configuring Sysbox in docker userns-remap mode, as described
211-
[here](usage.md#system-container-isolation-modes). This
212-
mode does not require use of shiftfs.
236+
## Failed to stat mount source at /var/lib/sysboxfs
213237

214-
## Unprivileged User Namespace Creation Error
238+
While creating a system container, Docker may report the following error:
215239

216-
When creating a system container, Docker may report the following error:
240+
```console
241+
$ docker run --runtime=sysbox-runc -it alpine
242+
docker: Error response from daemon: OCI runtime create failed: failed to create lib container mount: failed to stat mount source at /var/lib/sysboxfs/proc/sys: stat /var/lib/sysboxfs/proc/sys: no such file or directory: unknown.
243+
```
244+
245+
This likely means that the sysbox-fs daemon is not running (for some reason).
246+
247+
Check if the sysbox-fs process is running via `ps`. Ideally it should look like this:
217248

218249
```console
219-
docker run --runtime=sysbox-runc -it ubuntu:latest
220-
docker: Error response from daemon: OCI runtime create failed: host is not configured properly: kernel is not configured to allow unprivileged users to create namespaces: /proc/sys/kernel/unprivileged_userns_clone: want 1, have 0: unknown.
250+
$ ps -fu root | grep sysbox
251+
root 23945 1 0 Nov12 pts/0 00:00:00 sysbox-fs --log-level=debug --log /dev/stdout
252+
root 23946 1 0 Nov12 pts/0 00:00:00 sysbox-mgr --log-level=debug --log /dev/stdout
221253
```
222254

223-
This means that the host's kernel is not configured to allow unprivileged users
224-
to create user namespaces.
255+
If sysbox-fs is missing from the `ps` output, stop and restart Sysbox via Systemd:
225256

226-
For Ubuntu, fix this with:
257+
```console
258+
$ sudo systemctl restart sysbox
259+
```
260+
261+
## Failed to register with sysbox-mgr
262+
263+
While creating a system container, Docker may report the following error:
227264

228265
```console
229-
sudo sh -c "echo 1 > /proc/sys/kernel/unprivileged_userns_clone"
266+
$ docker run --runtime=sysbox-runc -it alpine
267+
docker: Error response from daemon: OCI runtime create failed: failed to register with sysbox-mgr: failed to invoke Register via grpc: rpc error: code = Unavailable desc = all SubConns are in TransientFailure, latest connection error: connection error: desc = "transport: Error while dialing dial unix /run/sysbox/sysmgr.sock: connect: connection refused": unknown.
230268
```
231269

232-
**Note:** The Sysbox package installer automatically executes this
233-
instruction, so normally there is no need to do this configuration
234-
manually.
270+
This likely means that the sysbox-mgr daemon is not running (for some reason).
235271

236-
## Failed to Setup Docker Volume Manager Error
272+
Check if the sysbox-mgr process is running via `ps`. Ideally it should look like this:
237273

238-
When creating a system container, Docker may report the following error:
274+
```console
275+
$ ps -fu root | grep sysbox
276+
root 23945 1 0 Nov12 pts/0 00:00:00 sysbox-fs --log-level=debug --log /dev/stdout
277+
root 23946 1 0 Nov12 pts/0 00:00:00 sysbox-mgr --log-level=debug --log /dev/stdout
278+
```
279+
280+
If sysbox-mgr is missing from the `ps` output, stop and restart Sysbox via Systemd:
239281

240282
```console
241-
docker run --runtime=sysbox-runc -it ubuntu:latest
242-
docker: Error response from daemon: OCI runtime create failed: failed to setup docker volume manager: host dir for docker store /var/lib/sysbox/docker can't be on ..."
283+
$ sudo systemctl restart sysbox
243284
```
244285

245-
This means that Sysbox's `/var/lib/sysbox` directory is on a
246-
filesystem not supported by Sysbox.
286+
## Sysbox Logs
247287

248-
This directory must be on one of the following filesystems:
288+
### sysbox-mgr and sysbox-fs
249289

250-
- ext4
251-
- btrfs
290+
The Sysbox daemons (i.e. sysbox-fs and sysbox-mgr) will log
291+
information related to their activities in the
292+
`/var/log/sysbox-fs.log` and `/var/log/sysbox-mgr.log` files
293+
respectively. These logs should be useful during troubleshooting
294+
exercises.
252295

253-
The same requirement applies to the `/var/lib/docker` directory.
296+
### sysbox-runc
254297

255-
This is normally the case for vanilla Ubuntu installations, so this
256-
error is not common.
298+
For sysbox-runc, logging is handled as follows:
299+
300+
- When running Docker + sysbox-runc, the sysbox-runc logs are actually stored in
301+
a containerd directory such as:
302+
303+
`/run/containerd/io.containerd.runtime.v1.linux/moby/<container-id>/log.json`
304+
305+
where `<container-id>` is the container ID returned by Docker.
306+
307+
- When running sysbox-runc directly, sysbox-runc will not produce any logs by default.
308+
Use the `sysbox-runc --log` option to change this.

0 commit comments

Comments
 (0)