docker
Docker Container Exit Codes
Exit codes returned by Docker containers and the Docker CLI. Codes 0–125 come from the container process itself; codes 125–127 indicate Docker-level errors; codes 128+N indicate the container was killed by Unix signal N.
38 codes
· All codes 38 codes
- 0 Clean exit The container process exited successfully with no error.
- 1 Application error The container process exited with a generic application error. The specific cause is logged to the container's stdout/stderr.
- 125 Docker daemon error The docker run command itself failed. This typically means the Docker daemon could not create or start the container — for example, an invalid flag was passed to docker run or the image could not be pulled.
- 126 Command cannot be invoked The container was created but the specified command could not be invoked, usually because the binary lacks execute permission.
- 127 Command not found The container was created but the specified command or entrypoint was not found inside the image. Check that the binary exists at the expected path.
- 128 Invalid exit argument The application called exit() with an invalid argument. Exit codes must be integers in the range 0–255.
- 129 Terminated by SIGHUP The container received SIGHUP (signal 1), typically when the controlling terminal is closed or the session leader exits. Some containerised daemons reload configuration on SIGHUP rather than terminating.
- 130 Terminated by SIGINT The container was terminated by SIGINT (signal 2), typically by pressing Ctrl+C in an attached terminal session.
- 131 Terminated by SIGQUIT The container received SIGQUIT (signal 3), typically via Ctrl-Backslash in an attached terminal. Unlike SIGTERM, SIGQUIT also requests a core dump from the process.
- 132 Illegal instruction (SIGILL) The container process attempted to execute an illegal CPU instruction (signal 4). This is usually a compiled binary that targets an instruction set not supported by the host CPU architecture.
- 133 Terminated by SIGTRAP The container was stopped by SIGTRAP (signal 5), typically from a debugger breakpoint. Rare outside of interactive debugging sessions.
- 134 Aborted (SIGABRT) The container process aborted itself, usually due to a failed assertion or an explicit abort() call.
- 135 Bus error (SIGBUS) The container process encountered a bus error (signal 7), usually due to a memory alignment fault or an attempt to access memory beyond the end of a mapped file.
- 136 Arithmetic exception (SIGFPE) The container process was terminated by SIGFPE (signal 8) due to a floating-point or arithmetic exception, such as integer division by zero.
- 137 Terminated by SIGKILL The container was killed with SIGKILL (signal 9). Common causes: docker stop (after the stop timeout), docker kill, the Linux OOM killer terminating the container due to memory pressure, or a Kubernetes pod eviction.
- 138 Terminated by SIGUSR1 The container received SIGUSR1 (signal 10), a user-defined signal. Some applications use it to trigger log rotation, a graceful reload, or a status dump rather than terminating.
- 139 Segmentation fault (SIGSEGV) The container process accessed memory it was not permitted to access. This is almost always a bug in the application or a corrupted binary.
- 140 Terminated by SIGUSR2 The container received SIGUSR2 (signal 12), a second user-defined signal. Meaning is application-specific; commonly used for reload or status-dump triggers.
- 141 Broken pipe (SIGPIPE) The container process wrote to a pipe or socket with no reader and was terminated by SIGPIPE (signal 13). Often seen when a piped output consumer exits before the producer finishes.
- 142 Terminated by SIGALRM The container was terminated by SIGALRM (signal 14) when an alarm timer set with alarm(2) expired without a signal handler installed.
- 143 Terminated by SIGTERM The container received SIGTERM (signal 15) and exited cleanly. This is the normal shutdown signal sent by docker stop before the kill timeout.
- 144 Terminated by SIGSTKFLT The container was terminated by SIGSTKFLT (signal 16), a Linux-specific signal originally for math coprocessor stack faults. Rarely seen in practice.
- 145 Terminated by SIGCHLD The container was terminated by SIGCHLD (signal 17). Unusual, as SIGCHLD is normally ignored; termination here indicates an explicit kill using this signal number.
- 146 Terminated by SIGCONT The container was terminated by SIGCONT (signal 18). Unusual, as SIGCONT is used to resume stopped processes; termination here indicates an explicit kill using this signal number.
- 147 Stopped by SIGSTOP The container was stopped by SIGSTOP (signal 19). SIGSTOP cannot be caught or ignored. The container is suspended rather than terminated; use SIGCONT to resume or SIGKILL to terminate.
- 148 Stopped by SIGTSTP The container was stopped by SIGTSTP (signal 20), typically via Ctrl-Z in an attached terminal. The container is suspended, not terminated; use SIGCONT to resume.
- 149 Stopped by SIGTTIN The container was stopped by SIGTTIN (signal 21) because a background process attempted to read from its controlling terminal.
- 150 Stopped by SIGTTOU The container was stopped by SIGTTOU (signal 22) because a background process attempted to write to its controlling terminal while TOSTOP was set.
- 151 Terminated by SIGURG The container was terminated by SIGURG (signal 23). Unusual, as SIGURG is normally ignored; termination here indicates an explicit kill using this signal number.
- 152 CPU time limit exceeded (SIGXCPU) The container process exceeded its CPU time limit and was terminated by SIGXCPU (signal 24). Check cgroup CPU limits if resource constraints are configured for this container.
- 153 File size limit exceeded (SIGXFSZ) The container process attempted to create a file exceeding the maximum file-size limit and was terminated by SIGXFSZ (signal 25).
- 154 Terminated by SIGVTALRM The container was terminated by SIGVTALRM (signal 26) when a virtual interval timer (measuring user-mode CPU time) expired without a handler.
- 155 Terminated by SIGPROF The container was terminated by SIGPROF (signal 27) when a profiling interval timer expired. This typically indicates profiling instrumentation accidentally left in production code.
- 156 Terminated by SIGWINCH The container was terminated by SIGWINCH (signal 28). Unusual, as SIGWINCH is normally ignored (it notifies of terminal window size changes); termination here indicates an explicit kill.
- 157 Terminated by SIGIO The container was terminated by SIGIO/SIGPOLL (signal 29) when an I/O event arrived on a file descriptor configured for asynchronous notification without a handler installed.
- 158 Terminated by SIGPWR The container was terminated by SIGPWR (signal 30), typically propagated from a host power failure event or UPS notification.
- 159 Bad system call (SIGSYS) The container process made a bad or disallowed system call and was terminated by SIGSYS (signal 31). This is commonly triggered by a seccomp security profile blocking an unexpected syscall.
- 255 Exit status out of range The container exited with status 255, often indicating an error in the entrypoint script or that the container was terminated by an out-of-range signal.