Docker


Recommended Posts

i've been hearing about docker for a while now, but never quite understood what it was.

 

as virtualization is in the process of being incorporated into unraid, i started researching a bit more about different options

 

smartos as suggested by grumpybutfun is a nice option.

 

then i took the time to discover more about docker and it seems really cool, although i haven't played with it yet

 

some good explanations i found are

 

https://www.docker.io/learn_more/

http://www.activestate.com/blog/2013/06/solomon-hykes-explains-docker

http://www.reddit.com/r/programming/comments/1emva0/docker_way_better_than_a_vm/

 

food for thought ... something i'm considering for the overhaul of my media/storage setup

Link to comment
  • 2 weeks later...
  • Replies 89
  • Created
  • Last Reply

Top Posters In This Topic

Isn't docker designed for deploying apps? It's a higher level tool than would be necessary to distributing modules.

 

I highly doubt all this is necessary to distribute couch:

 

Download the base image from the docker index

Create a new LXC container

Allocate a filesystem for it

Mount a read-write layer

Allocate a network interface

Setup an IP for it, with network address translation

 

Modules should be distributed at the package level, not the application level. Docker is a great tool, it's just not really designed for the problems that we have, IMO.

Link to comment

Docker IMHO is the future for a load of things people use VMs for this now. It doesn't do everything a VM can do but when you can use Docker it is vastly more efficient than a VM.

 

There is a reason it is new cool kid in town and would be perfect for unRAID appliance model as it can run in isolation, is portable and has relatively minimal requirements.

 

Its one down side is it often hard to explain exactly what it is and what it is for.

 

I HIGHLY recommend anyone interested in VMs to make a cup of coffee, turn the phone off and spend 15 mins here:

 

https://www.docker.io/gettingstarted/

 

for some it will come as a revelation.

 

 

Link to comment

i have to agree with spants, prostuff1 and NAS.

 

i sense a hint of an unraid docker suggestion from the post by NAS, but then again i may have misread :)

 

from all the virtualization discussions, i came up with ONE TRUTH , for me at least :) .. i want unraid to have bare metal access to it's hard disks.

 

from the little i know about docker, seems that an unraid container might have bare metal access to the underlying disks, it's  an interesting concept.

 

for the time being, i'm going back to unraid running bare (two separate arrays) and i'm throwing esxi out in favor of an ubuntu 12.04 host, with a couple zfs pools and filesystems, running kvm and docker containers to replace the apps i previously ran in different esxi vms. i don't have plans as of yet for kvm vm's, but i will install it just in case.

 

i will post about it in a couple of days.

Link to comment

Oh yes! Looks like the tools that I need...

 

So a 64bit linux base with docker, unraidVM and this would be 90% of my requirements.

Probably just crashplan (native install perhaps?)

 

https://github.com/GeoffreyPlitt/docker-pirateship

=================================

A pirate ship built on Docker.

 

This project pulls several Docker'fied downloading tools and runs them in a Vagrant VM.

 

Tools included:

 

CouchPotato via https://github.com/GeoffreyPlitt/docker-couchpotato

Headphones via https://github.com/GeoffreyPlitt/docker-headphones

NZBmegasearcH via https://github.com/GeoffreyPlitt/docker-megasearch

Sabnzbd via https://github.com/GeoffreyPlitt/docker-sabnzb

Sick Beard via https://github.com/GeoffreyPlitt/docker-sickbeard

 

Usage:

 

vagrant up

 

Then go to:

 

CouchPotato: http://localhost:5050

Headphones: http://localhost:8181

NZBmegasearcH: http://localhost:5000

Sabnzbd: http://localhost:8080

Sick Beard: http://localhost:8081

Link to comment

I'm still trying to figure out what benefit this will provide. I already have ESXI with unRaid and all my VM's doing what I need. What's the benefit in adding another layer just to do what I'm already doing?

 

with docker, you wouldn't need to run esxi and full blown vms.

 

each app you currently run in a vm, would become a docker container, which is a lot less resource intensive than a vm.

 

also, you wouldn't need a vt-d capable motherboard to run docker apps, a regular motherboard would do just fine.

 

among other things :)

Link to comment

In simple terms Docker gives you the abilty to run an app as a container (think like an isoltaed VM). They are portable so if I make one you can use it. This is guarateed and doesnt require you to worry about base OS etc etc. What the dev runs the user can run.

 

because you dont need to virtualise the whole OS the wasy ESXi does it is super efficient. You could easily run thousands of them if needed on a single machine. Also that single machine does not have to be super specific to whatever the VM wants i.e. on a VMware whitelist.

 

Here is an exmaple. Let say someone wants ot make a plugin for unRAID. Lets say this is curl for simplicty. lets also say I want to make that to tun within ubuntu.

 

Here is the complete procedure:

 

docker pull ubuntu

docker run -t -i ubuntu apt-get install curl

 

thats it done.

 

lets run it

 

docker run -t ubuntu curl www.google.com

 

That is a trivial basic example but it should be obvious how this can scale and there are some extra super clever tricks in there.

Link to comment

The simple answer to that is probably not a lot.  Just some general excitement and want for the feature would likely get us most of the way there as compared to some of the things being thrown about here docker is technically a relatively easy add.

 

And if that blows your mind check out the relative speed of running something. It is up and running before ESX begins to start the virtual bios :)

 

 

Link to comment

I currently run plugins for some of my things on unRAID, but this is all within an ESXi box.

 

Assuming docker gets added/supported I would probably move away from using the plugins and to using docker containers.  It will not replace my ESXi setup as I do other things with it, but I could see it replacing my use of some plugins.

 

I prefer the ESXi approach to virtualization as opposed to that being proposed with KVM/Xen.  I think KVM/Xen has it merits but I would not use it for the XBMC stuff that proponents of it like to push.  To each there own.

Link to comment

Coincidently I think we are in the same boat. I have unRAID and I also have ESX. I wont be dropping ESX as it does things i need that nothing else can.

 

However that is not to say that Docker is not a better way to do many of the things I previously could only use ESX for. In certain scenario Docker beats ESX hands down and I suspect a crazy amount of what people do now with addons, plugins and stripped out VMs could be done better with Docker.

 

And if you don't use it then it costs nothing. There is almost zero cost for the users who don't care for anything other than stock unRAID.

 

 

This is a video talking about Docker. It is 47 mins long so not for everyone but its an easy watch and has examples that show you how cool it is.

 

Introduction to Docker

dotCloud founder and CTO Solomon Hykes recently stopped by Twitter HQ to show us Docker, an open source project designed to easily create lightweight, portable, self-sufficient containers from any application.

 

 

Link to comment

yeah think of Docker as standardising and putting a useabilty framework around containers.

 

Containers/jails have existed for ages in linux/bsd etc but as it hit mainline Linux ... and a few other things happened at round the same time... it became far more useful as a real world utility.

 

Link to comment

yeah think of Docker as standardising and putting a useabilty framework around containers.

 

Containers/jails have existed for ages in linux/bsd etc but as it hit mainline Linux ... and a few other things happened at round the same time... it became far more useful as a real world utility.

 

Thats cool. In all honesty, without rekindling the flame war, integrating this with the upcoming 64-bit edition of UNRaid along with maybe the kernel not so neutered down with KVM/QEMU support, UNRaid would be a killer NAS solution without deviating too much from the appliance methodology.

Link to comment

yeah think of Docker as standardising and putting a useabilty framework around containers.

 

Containers/jails have existed for ages in linux/bsd etc but as it hit mainline Linux ... and a few other things happened at round the same time... it became far more useful as a real world utility.

 

Thats cool. In all honesty, without rekindling the flame war, integrating this with the upcoming 64-bit edition of UNRaid along with maybe the kernel not so neutered down with KVM/QEMU support, UNRaid would be a killer NAS solution without deviating too much from the appliance methodology.

Correct.

 

Some like and prefer the "appliance" approach that has existed for a very long time.  I am one of those.

Some like and prefer the I have everything at my finger tips.  This is all fine and dandy, different strokes for different folks.

Link to comment

Something else to consider is that Docker gives you dependency isolation. unRAID OS updates would not break addons. Other addons could not break your addon (common with python etc).

 

This alone is a huge deal when like me you want the reliability of an appliance over all other things. With isolation be a primitive (as they call it) unRAID should in theory never be impacted by addons no matter how crazy they are. I mean you can rm -rf / in a Docker container and it would make zero difference to unRAID host.

Link to comment

Something else to consider is that Docker gives you dependency isolation. unRAID OS updates would not break addons. Other addons could not break your addon (common with python etc).

 

This alone is a huge deal when like me you want the reliability of an appliance over all other things. With isolation be a primitive (as they call it) unRAID should in theory never be impacted by addons no matter how crazy they are. I mean you can rm -rf / in a Docker container and it would make zero difference to unRAID host.

 

My only concern is of two things. Can this be legally packaged with UNRaid or would it have to be a add-on from the stock image. Secondly, due to the nature of this product, there would still have to be maintainers of the docklets if I am not mistaken?(After reading the guides, it looks alot easier to make those opposed to a PLG install file)

Link to comment

Can this be legally packaged with UNRaid or would it have to be a add-on from the stock image.

 

Its GNU licensed software. Of course you can.

 

If were to install Ubuntu, CentOS, Fedora, etc. with a GUI Desktop... You are talking about 1,200+ individual GNU Licensed software packages that make up the whole.

 

Including Docker in a Distro (like unRAID) is no different than including XBMC, Samba, NFS, Apache, Gimp, Gnome, etc.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.