nearform / nscale

Deployment just got easy
http://nscale.nearform.com/
Artistic License 2.0
325 stars 23 forks source link

Support data volume containers #65

Open AdrianRossouw opened 9 years ago

AdrianRossouw commented 9 years ago

One of the docker 'best practices' involves using the VOLUME command and --volumes-from flag to store any data a container stores in it's own container.

This doesn't seem to work really well in nscale at the moment, because these data containers don't need to be running to attach to other containers, and you need to refer to the container by name (which might be tricky with nscale as it is today)

mcollina commented 9 years ago

It is not tricky to name a container:

...
specific: {
  execute: {
    args: '--name myname'
  }
}
...

What is tricky is that nscale's analyzer assumes that a container must be running, and it would keep restarting it. Maybe an if-else thing is needed in https://github.com/nearform/nscale-docker-analyzer.

AdrianRossouw commented 9 years ago

i've now had experience with 3 different docker implementations, and all of them have needed support for data containers.

tegamckinney commented 8 years ago

@AdrianRossouw I have just got started using nscale and am wondering if you were able to make progress with nscale and data volume containers? Or it possible out of the box or require some type of work-around?

AdrianRossouw commented 8 years ago

Not specifically, but i've gotten enough experience with data volume containers on their own to get the idea that docker itself needs to improve how it handles them before this should be attempted.

It's not really possible to move them between servers without a bunch of custom scripting, and there are some other aspects of how they work that makes them unwieldy.

Host mounts seem to be the best solution, but then I also ran into issues with docker on OSX the other day. Turns out that virtualbox shared folders aren't real filesystems, so certain ioctl calls just fail on them.

Specifically it wasn't possible to store an sqlite database on a folder on the osx host that is shared with docker.