Skip to content

Latest commit

 

History

History
165 lines (112 loc) · 8.09 KB

File metadata and controls

165 lines (112 loc) · 8.09 KB
 
Apr 5, 2016
Apr 5, 2016
1
# Open Container Runtime Specification
Jun 6, 2015
Jun 6, 2015
2
Apr 5, 2016
Apr 5, 2016
3
The [Open Container Initiative](http://www.opencontainers.org/) develops specifications for standards on Operating System process and application containers.
Sep 18, 2015
Sep 18, 2015
4
Jun 25, 2015
Jun 25, 2015
5
6
Table of Contents
7
Mar 9, 2016
Mar 9, 2016
8
- [Introduction](README.md)
May 2, 2016
May 2, 2016
9
- [Code of Conduct](#code-of-conduct)
Mar 9, 2016
Mar 9, 2016
10
- [Container Principles](principles.md)
11
- [Style and Conventions](style.md)
12
- [Roadmap](ROADMAP.md)
13
- [Implementations](implementations.md)
Apr 12, 2016
Apr 12, 2016
14
- [project](project.md)
Jun 25, 2015
Jun 25, 2015
15
- [Filesystem Bundle](bundle.md)
Apr 26, 2016
Apr 26, 2016
16
- Runtime and Lifecycle
17
- [General Runtime and Lifecycle](runtime.md)
18
- [Linux-specific Runtime and Lifecycle](runtime-linux.md)
Sep 25, 2015
Sep 25, 2015
19
- Configuration
Apr 26, 2016
Apr 26, 2016
20
- [General Configuration](config.md)
21
- [Linux-specific Configuration](config-linux.md)
May 5, 2016
May 5, 2016
22
- [Solaris-specific Configuration](config-solaris.md)
Dec 23, 2015
Dec 23, 2015
23
- [Glossary](glossary.md)
Jun 25, 2015
Jun 25, 2015
24
Dec 4, 2015
Dec 4, 2015
25
In the specifications in the above table of contents, the keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as described in [RFC 2119](http://tools.ietf.org/html/rfc2119) (Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997).
26
Sep 1, 2016
Sep 1, 2016
27
An implementation is not compliant for a given CPU architecture if it fails to satisfy one or more of the MUST, REQUIRED, or SHALL requirements for the protocols it implements.
28
An implementation is compliant for a given CPU architecture if it satisfies all the MUST, REQUIRED, and SHALL requirements for the protocols it implements.
Aug 17, 2016
Aug 17, 2016
29
30
Protocols defined by this specification are:
31
* Linux containers: [runtime.md](runtime.md), [config.md](config.md), [config-linux.md](config-linux.md), and [runtime-linux.md](runtime-linux.md).
32
* Solaris containers: [runtime.md](runtime.md), [config.md](config.md), and [config-solaris.md](config-solaris.md).
Apr 7, 2016
Apr 7, 2016
33
Sep 25, 2015
Sep 25, 2015
34
# Use Cases
Jul 30, 2015
Jul 30, 2015
35
36
To provide context for users the following section gives example use cases for each part of the spec.
37
Jan 19, 2016
Jan 19, 2016
38
#### Application Bundle Builders
Jul 30, 2015
Jul 30, 2015
39
Jan 19, 2016
Jan 19, 2016
40
Application bundle builders can create a [bundle](bundle.md) directory that includes all of the files required for launching an application as a container.
Jan 27, 2016
Jan 27, 2016
41
The bundle contains an OCI [configuration file](config.md) where the builder can specify host-independent details such as [which executable to launch](config.md#process-configuration) and host-specific settings such as [mount](config.md#mounts) locations, [hook](config.md#hooks) paths, Linux [namespaces](config-linux.md#namespaces) and [cgroups](config-linux.md#control-groups).
Jan 19, 2016
Jan 19, 2016
42
Because the configuration includes host-specific settings, application bundle directories copied between two hosts may require configuration adjustments.
Jul 30, 2015
Jul 30, 2015
43
Jan 19, 2016
Jan 19, 2016
44
#### Hook Developers
45
Jan 27, 2016
Jan 27, 2016
46
[Hook](config.md#hooks) developers can extend the functionality of an OCI-compliant runtime by hooking into a container's lifecycle with an external application.
Jan 19, 2016
Jan 19, 2016
47
Example use cases include sophisticated network configuration, volume garbage collection, etc.
48
49
#### Runtime Developers
50
51
Runtime developers can build runtime implementations that run OCI-compliant bundles and container configuration, containing low-level OS and host specific details, on a particular platform.
Jul 30, 2015
Jul 30, 2015
52
Oct 8, 2015
Oct 8, 2015
53
# Releases
Sep 10, 2015
Sep 10, 2015
54
Dec 16, 2015
Dec 16, 2015
55
There is a loose [Road Map](./ROADMAP.md).
Sep 10, 2015
Sep 10, 2015
56
During the `0.x` series of OCI releases we make no backwards compatibility guarantees and intend to break the schema during this series.
57
Jul 2, 2015
Jul 2, 2015
58
# Contributing
59
Aug 12, 2015
Aug 12, 2015
60
Development happens on GitHub for the spec.
61
Issues are used for bugs and actionable items and longer discussions can happen on the [mailing list](#mailing-list).
Jul 29, 2015
Jul 29, 2015
62
May 23, 2016
May 23, 2016
63
The specification and code is licensed under the Apache 2.0 license found in the [LICENSE](./LICENSE) file.
Aug 12, 2015
Aug 12, 2015
64
Sep 4, 2015
Sep 4, 2015
65
## Code of Conduct
66
May 2, 2016
May 2, 2016
67
Participation in the OpenContainers community is governed by [OpenContainer's Code of Conduct](https://github.com/opencontainers/tob/blob/d2f9d68c1332870e40693fe077d311e0742bc73d/code-of-conduct.md).
Sep 4, 2015
Sep 4, 2015
68
Aug 12, 2015
Aug 12, 2015
69
## Discuss your design
70
71
The project welcomes submissions, but please let everyone know what you are working on.
72
73
Before undertaking a nontrivial change to this specification, send mail to the [mailing list](#mailing-list) to discuss what you plan to do.
74
This gives everyone a chance to validate the design, helps prevent duplication of effort, and ensures that the idea fits.
75
It also guarantees that the design is sound before code is written; a GitHub pull-request is not the place for high-level discussions.
76
77
Typos and grammatical errors can go straight to a pull-request.
78
When in doubt, start on the [mailing-list](#mailing-list).
Jul 2, 2015
Jul 2, 2015
79
Jul 29, 2015
Jul 29, 2015
80
## Weekly Call
81
Jul 26, 2016
Jul 26, 2016
82
The contributors and maintainers of all OCI projects have a weekly meeting Wednesdays at 2:00 PM (USA Pacific).
Jul 15, 2016
Jul 15, 2016
83
Everyone is welcome to participate via [UberConference web][UberConference] or audio-only: 415-968-0849 (no PIN needed.)
Aug 26, 2015
Aug 26, 2015
84
An initial agenda will be posted to the [mailing list](#mailing-list) earlier in the week, and everyone is welcome to propose additional topics or suggest other agenda alterations there.
Apr 4, 2016
Apr 4, 2016
85
Minutes are posted to the [mailing list](#mailing-list) and minutes from past calls are archived to the [wiki](https://github.com/opencontainers/runtime-spec/wiki) for those who are unable to join the call.
Aug 12, 2015
Aug 12, 2015
86
87
## Mailing List
88
89
You can subscribe and join the mailing list on [Google Groups](https://groups.google.com/a/opencontainers.org/forum/#!forum/dev).
Jul 29, 2015
Jul 29, 2015
90
Aug 10, 2015
Aug 10, 2015
91
## IRC
92
Mar 30, 2016
Mar 30, 2016
93
OCI discussion happens on #opencontainers on Freenode ([logs][irc-logs]).
Aug 10, 2015
Aug 10, 2015
94
Sep 11, 2015
Sep 11, 2015
95
## Git commit
96
Jul 2, 2015
Jul 2, 2015
97
### Sign your work
98
Sep 9, 2015
Sep 9, 2015
99
The sign-off is a simple line at the end of the explanation for the patch, which certifies that you wrote it or otherwise have the right to pass it on as an open-source patch.
100
The rules are pretty simple: if you can certify the below (from [developercertificate.org](http://developercertificate.org/)):
Jul 2, 2015
Jul 2, 2015
101
102
```
103
Developer Certificate of Origin
104
Version 1.1
105
106
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
107
660 York Street, Suite 102,
108
San Francisco, CA 94110 USA
109
110
Everyone is permitted to copy and distribute verbatim copies of this
111
license document, but changing it is not allowed.
112
113
114
Developer's Certificate of Origin 1.1
115
116
By making a contribution to this project, I certify that:
117
118
(a) The contribution was created in whole or in part by me and I
119
have the right to submit it under the open source license
120
indicated in the file; or
121
122
(b) The contribution is based upon previous work that, to the best
123
of my knowledge, is covered under an appropriate open source
124
license and I have the right under that license to submit that
125
work with modifications, whether created in whole or in part
126
by me, under the same open source license (unless I am
127
permitted to submit under a different license), as indicated
128
in the file; or
129
130
(c) The contribution was provided directly to me by some other
131
person who certified (a), (b) or (c) and I have not modified
132
it.
133
134
(d) I understand and agree that this project and the contribution
135
are public and that a record of the contribution (including all
136
personal information I submit with it, including my sign-off) is
137
maintained indefinitely and may be redistributed consistent with
138
this project or the open source license(s) involved.
139
```
140
141
then you just add a line to every git commit message:
142
143
Signed-off-by: Joe Smith <[email protected]>
144
145
using your real name (sorry, no pseudonyms or anonymous contributions.)
146
147
You can add the sign off when creating the git commit via `git commit -s`.
Aug 10, 2015
Aug 10, 2015
148
Sep 11, 2015
Sep 11, 2015
149
### Commit Style
150
151
Simple house-keeping for clean git history.
152
Read more on [How to Write a Git Commit Message](http://chris.beams.io/posts/git-commit/) or the Discussion section of [`git-commit(1)`](http://git-scm.com/docs/git-commit).
153
154
1. Separate the subject from body with a blank line
155
2. Limit the subject line to 50 characters
156
3. Capitalize the subject line
157
4. Do not end the subject line with a period
158
5. Use the imperative mood in the subject line
159
6. Wrap the body at 72 characters
160
7. Use the body to explain what and why vs. how
161
* If there was important/useful/essential conversation or information, copy or include a reference
162
8. When possible, one keyword to scope the change in the subject (i.e. "README: ...", "runtime: ...")
163
Jul 6, 2016
Jul 6, 2016
164
[UberConference]: https://www.uberconference.com/opencontainers
Mar 30, 2016
Mar 30, 2016
165
[irc-logs]: http://ircbot.wl.linuxfoundation.org/eavesdrop/%23opencontainers/