-
Notifications
You must be signed in to change notification settings - Fork 550
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
linux: specify the default devices/filesystems available #95
Comments
On Wed, Aug 05, 2015 at 03:45:06PM -0700, Brandon Philips wrote:
I don't have a problem with automatically supplying these, as long as |
/dev/shm could be optional I think. Also, it could be bind mounted in. |
@mrunalp We considered making it optional in appc but I don't think it hurts anything to have it. |
Makes sense. |
@LK4D4 I agree, that is a separate issue though, right? Or are you saying what happens if someone decides to do a bindmount for /dev from a host filesystem? |
@philips That is issue too, but I meant per-device. You're right it's another issue. |
@philips Yeah, i see no harm in requiring /dev/shm. |
I think having these as default makes sense. |
On Fri, Aug 07, 2015 at 03:23:00AM -0700, Daniel, Dao Quang Minh wrote:
Why would you not want tty devices? If a container is not attached to |
this looks sane to me On Fri, Aug 7, 2015 at 12:50 PM, W. Trevor King [email protected]
|
Maybe also include /dev/mqueue? |
On Wed, Aug 12, 2015 at 10:51:28AM -0700, Mrunal Patel wrote:
It would be nice if inclusions like this all came with links to specs |
Yeah, the way I was thinking of doing this would be as a key like |
On Fri, Aug 14, 2015 at 03:42:47PM -0700, Stuart P. Bentley wrote:
Building in a way to gracefully migrate between different “default Could we spin this off into a separate bundle-authoring helper? |
These devices and filesystems are part of the Linux ABI. What problems are solved by flexibility and how would this flexibility help runtime implementers? Also, these aren't parts of the bundle, they are things that should be created or mounted at runtime. |
On Fri, Aug 14, 2015 at 03:52:36PM -0700, Brandon Philips wrote: The POSIX spec I linked above has three devices. I imagine we can As an alternative for Linux, we could just mount a devtmpfs. On Linux |
Uh, making the entries in |
Things we mount or create should not depend on whether the kernel has or doesn't have a particular feature. These should all be default ABI things. |
If you're being serious here, you're either vastly overestimating the difficulty of maintaining the list of default system specs, or you're vastly underestimating the importance of this to the use cases. In terms of implementation difficulty, there are going to be, like, two standard mount lists at the start (the implementation overhead to use all of which will be as difficult to implement as typing In terms of the use improvements, it's not just a "writing this is hard" tooling problem - making this part of the spec rather than a mass of boilerplate each manifest has to carry with it means cutting out over half of the space each config takes up in the filesystem. Considering that a system where manifests correspond to each running container rather than only images appears to be the target use case (which, btw, is its own whole class of mistake, as I'm trying to communicate around opencontainers/runc#200), this is a savings that would add up in a big way in production. |
On Fri, Aug 14, 2015 at 04:28:26PM -0700, Brandon Philips wrote:
“Linux” isn't specific enough to define a particular ABI. For If we do want to use an external standard for /dev, we have my earlier Hard-coding a list (or lists) of “standard” devices seems like extra |
On Fri, Aug 14, 2015 at 04:41:50PM -0700, Stuart P. Bentley wrote:
Cutting my current spec from 3 KB to 1.5 KB is not going to have a |
I really don't understand what all this fuss is about. Docker has a short list of devices that it either automatically creates in the container, or allows the container to create. They are listed here https://github.com/docker/libcontainer/blob/ce1f2f1c86cda9ce335c16f3638206ceb97174bd/configs/device_defaults.go . It is one of the least interesting things about Docker, there have been really no arguments / drama what-so-ever over whether that list should be extended or reduced. Especially since anyone can add to the list at runtime. However, there is a good reason for such a list to explicitly exist. It makes it very easy to do a security audit of Docker and say "what attack surface am I exposing via device nodes within the container?" |
@timthelion subtly, you just said docker, but referenced libcontainer. Libcontainer is what runc now is. |
Fixes opencontainers#95 Signed-off-by: Brandon Philips <[email protected]>
On Wed, Aug 12, 2015 at 11:27:01AM -0700, W. Trevor King wrote:
This issue has been closed for a while, but work on #518 turned up the systemd container interface, which requires everything from the initial post except |
Linux applications rely on a number of devices and filesystems. Lets define a default set, what do people think of this set lifted from the appc OS-SPEC?
The following devices and filesystems MUST be made available in each application's filesystem
The text was updated successfully, but these errors were encountered: