mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Improve description of Running and Paused booleans
Commit abd72d4008
added
a "FIXME" comment to the container "State", mentioning
that a container cannot be both "Running" and "Paused".
This comment was incorrect, because containers on
Linux actually _must_ be running in order to be
paused.
This patch adds additional information both in a
comment, and in the API documentation to clarify
that these booleans are not mutually exclusive.
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
ab83b924bc
commit
b654b6244d
3 changed files with 19 additions and 5 deletions
|
@ -3107,10 +3107,22 @@ paths:
|
||||||
type: "object"
|
type: "object"
|
||||||
properties:
|
properties:
|
||||||
Status:
|
Status:
|
||||||
description: "The status of the container. For example, `running` or `exited`."
|
description: |
|
||||||
|
The status of the container. For example, `"running"` or `"exited"`.
|
||||||
type: "string"
|
type: "string"
|
||||||
|
enum: ["created", "running", "paused", "restarting", "removing", "exited", "dead"]
|
||||||
Running:
|
Running:
|
||||||
description: "Whether this container is running."
|
description: |
|
||||||
|
Whether this container is running.
|
||||||
|
|
||||||
|
Note that a running container can be _paused_. The `Running` and `Paused`
|
||||||
|
booleans are not mutually exclusive:
|
||||||
|
|
||||||
|
When pausing a container (on Linux), the cgroups freezer is used to suspend
|
||||||
|
all processes in the container. Freezing the process requires the process to
|
||||||
|
be running. As a result, paused containers are both `Running` _and_ `Paused`.
|
||||||
|
|
||||||
|
Use the `Status` field instead to determin if a container's state is "running".
|
||||||
type: "boolean"
|
type: "boolean"
|
||||||
Paused:
|
Paused:
|
||||||
description: "Whether this container is paused."
|
description: "Whether this container is paused."
|
||||||
|
|
|
@ -277,7 +277,7 @@ type Health struct {
|
||||||
// ContainerState stores container's running state
|
// ContainerState stores container's running state
|
||||||
// it's part of ContainerJSONBase and will return by "inspect" command
|
// it's part of ContainerJSONBase and will return by "inspect" command
|
||||||
type ContainerState struct {
|
type ContainerState struct {
|
||||||
Status string
|
Status string // String representation of the container state. Can be one of "created", "running", "paused", "restarting", "removing", "exited", or "dead"
|
||||||
Running bool
|
Running bool
|
||||||
Paused bool
|
Paused bool
|
||||||
Restarting bool
|
Restarting bool
|
||||||
|
|
|
@ -17,8 +17,10 @@ import (
|
||||||
// functions defined against State to run against Container.
|
// functions defined against State to run against Container.
|
||||||
type State struct {
|
type State struct {
|
||||||
sync.Mutex
|
sync.Mutex
|
||||||
// FIXME: Why do we have both paused and running if a
|
// Note that `Running` and `Paused` are not mutually exclusive:
|
||||||
// container cannot be paused and running at the same time?
|
// When pausing a container (on Linux), the cgroups freezer is used to suspend
|
||||||
|
// all processes in the container. Freezing the process requires the process to
|
||||||
|
// be running. As a result, paused containers are both `Running` _and_ `Paused`.
|
||||||
Running bool
|
Running bool
|
||||||
Paused bool
|
Paused bool
|
||||||
Restarting bool
|
Restarting bool
|
||||||
|
|
Loading…
Reference in a new issue