2013-03-25 22:52:52 -04:00
<!DOCTYPE html>
<!-- [if lt IE 7]> <html class="no - js lt - ie9 lt - ie8 lt - ie7"> <![endif] -->
<!-- [if IE 7]> <html class="no - js lt - ie9 lt - ie8"> <![endif] -->
<!-- [if IE 8]> <html class="no - js lt - ie9"> <![endif] -->
<!-- [if gt IE 8]><! -->
< html class = "no-js" xmlns = "http://www.w3.org/1999/html" > <!-- <![endif] -->
< head >
< meta charset = "utf-8" >
< meta http-equiv = "X-UA-Compatible" content = "IE=edge,chrome=1" >
2013-05-06 20:41:51 -04:00
< meta name = "google-site-verification" content = "UxV66EKuPe87dgnH1sbrldrx6VsoWMrx5NjwkgUFxXI" / >
2013-05-06 17:11:38 -04:00
< title > Docker - the Linux container engine< / title >
2013-03-25 22:52:52 -04:00
< meta name = "description" content = "Docker encapsulates heterogeneous payloads in standard containers" >
< meta name = "viewport" content = "width=device-width" >
<!-- twitter bootstrap -->
2013-05-08 20:05:46 -04:00
< link rel = "stylesheet" href = "static/css/bootstrap.min.css" >
< link rel = "stylesheet" href = "static/css/bootstrap-responsive.min.css" >
2013-03-25 22:52:52 -04:00
<!-- main style file -->
2013-05-08 20:05:46 -04:00
< link rel = "stylesheet" href = "static/css/main.css" >
2013-03-25 22:52:52 -04:00
<!-- vendor scripts -->
2013-05-08 20:05:46 -04:00
< script src = "static/js/vendor/jquery-1.9.1.min.js" type = "text/javascript" > < / script >
< script src = "static/js/vendor/modernizr-2.6.2-respond-1.1.0.min.js" type = "text/javascript" > < / script >
2013-03-25 22:52:52 -04:00
2013-05-06 20:41:51 -04:00
< style >
.indexlabel {
float: left;
width: 150px;
display: block;
padding: 10px 20px 10px;
font-size: 20px;
font-weight: 200;
background-color: #a30000;
color: white;
height: 22px;
}
.searchbutton {
font-size: 20px;
height: 40px;
}
.debug {
border: 1px red dotted;
}
2013-06-04 14:33:39 -04:00
.twitterblock {
min-height: 75px;
}
.twitterblock img {
float: left;
margin-right: 10px;
}
2013-05-06 20:41:51 -04:00
< / style >
2013-03-25 22:52:52 -04:00
2013-06-04 14:33:39 -04:00
2013-03-25 22:52:52 -04:00
< / head >
< body >
< div class = "navbar navbar-fixed-top" >
< div class = "navbar-dotcloud" >
< div class = "container" style = "text-align: center;" >
2013-06-04 14:33:39 -04:00
< div class = "pull-left" id = "fork-us" style = "margin-top: 16px;" >
< a href = "http://github.com/dotcloud/docker/" > < img src = "static/img/fork-us.png" alt = "fork-icon" > Fork us on Github< / a >
< / div >
2013-03-25 22:52:52 -04:00
< div class = "pull-right" >
< ul class = "nav" >
2013-06-04 14:33:39 -04:00
< li id = "nav-introduction" class = "active" > < a href = "/" > Introduction< / a > < / li >
< li id = "nav-gettingstarted" > < a href = "gettingstarted" > Getting started< / a > < / li >
< li id = "nav-documentation" class = "" > < a href = "http://docs.docker.io/en/latest/" > Documentation< / a > < / li >
< li id = "nav-blog" > < a href = "http://blog.docker.io/" > Blog< / a > < / li >
2013-03-25 22:52:52 -04:00
< / ul >
< / div >
< / div >
< / div >
< / div >
2013-05-06 20:41:51 -04:00
< div class = "container" style = "margin-top: 30px;" >
2013-03-25 22:52:52 -04:00
< div class = "row" >
< div class = "span12" >
< section class = "contentblock header" >
2013-05-06 20:41:51 -04:00
< div class = "span5" style = "margin-bottom: 15px;" >
< div style = "text-align: center;" >
2013-06-04 14:33:39 -04:00
< img src = "static/img/docker_letters_500px.png" alt = "docker letters" >
2013-05-06 20:41:51 -04:00
< h2 > The Linux container engine< / h2 >
2013-03-25 22:52:52 -04:00
< / div >
2013-05-06 20:41:51 -04:00
< div style = "display: block; text-align: center; margin-top: 20px;" >
2013-03-25 22:52:52 -04:00
2013-05-06 20:41:51 -04:00
< h5 >
Docker is an open-source engine which automates the deployment of applications as highly portable, self-sufficient containers which are independent of hardware, language, framework, packaging system and hosting provider.
< / h5 >
2013-05-06 17:11:38 -04:00
2013-05-06 20:41:51 -04:00
< / div >
2013-05-06 17:11:38 -04:00
2013-05-06 20:41:51 -04:00
< div style = "display: block; text-align: center; margin-top: 30px;" >
< a class = "btn btn-custom btn-large" href = "gettingstarted/" > Let's get started< / a >
< / div >
2013-05-06 17:11:38 -04:00
2013-03-25 22:52:52 -04:00
< / div >
2013-05-06 20:41:51 -04:00
< div class = "span6" >
< div class = "js-video" >
< iframe width = "600" height = "360" src = "http://www.youtube.com/embed/wW9CAH9nSLs?feature=player_detailpage&rel=0&modestbranding=1&start=11" frameborder = "0" allowfullscreen > < / iframe >
< / div >
2013-03-25 22:52:52 -04:00
< / div >
< br style = "clear: both" / >
< / section >
< / div >
< / div >
< / div >
< div class = "container" >
2013-03-26 13:03:10 -04:00
< div class = "row" >
2013-03-25 22:52:52 -04:00
2013-05-06 20:41:51 -04:00
< div class = "span6" >
2013-03-25 22:52:52 -04:00
< section class = "contentblock" >
< h4 > Heterogeneous payloads< / h4 >
< p > Any combination of binaries, libraries, configuration files, scripts, virtualenvs, jars, gems, tarballs, you name it. No more juggling between domain-specific tools. Docker can deploy and run them all.< / p >
< h4 > Any server< / h4 >
< p > Docker can run on any x64 machine with a modern linux kernel - whether it's a laptop, a bare metal server or a VM. This makes it perfect for multi-cloud deployments.< / p >
2013-05-06 20:41:51 -04:00
< h4 > Isolation< / h4 >
< p > Docker isolates processes from each other and from the underlying host, using lightweight containers.< / p >
< h4 > Repeatability< / h4 >
< p > Because each container is isolated in its own filesystem, they behave the same regardless of where, when, and alongside what they run.< / p >
2013-03-25 22:52:52 -04:00
< / section >
< section class = "contentblock" >
2013-05-17 22:35:46 -04:00
< div class = "container" >
< div class = "span2" style = "margin-left: 0" >
2013-06-04 14:33:39 -04:00
< a href = "http://dotcloud.theresumator.com/apply/mWjkD4/Software-Engineer.html" title = "Job description" > < img src = "static/img/hiring_graphic.png" alt = "we're hiring" width = "140" style = "margin-top: 25px" > < / a >
2013-05-17 22:35:46 -04:00
< / div >
< div class = "span4" style = "margin-left: 0" >
< h4 > Do you think it is cool to hack on docker? Join us!< / h4 >
< ul >
< li > Work on open source< / li >
< li > Program in Go< / li >
< / ul >
< a href = "http://dotcloud.theresumator.com/apply/mWjkD4/Software-Engineer.html" title = "Job description" > read more< / a >
< / div >
< / div >
2013-03-25 22:52:52 -04:00
< / section >
< / div >
2013-05-06 20:41:51 -04:00
< div class = "span6" >
2013-03-25 22:52:52 -04:00
< section class = "contentblock" >
2013-05-06 20:41:51 -04:00
< h1 > New! Docker Index< / h1 >
On the Docker Index you can find and explore pre-made container images. It allows you to share your images and download them.
< br > < br >
< a href = "https://index.docker.io" target = "_blank" >
< div class = "indexlabel" >
DOCKER index
< / div >
< / a >
2013-06-04 14:33:39 -04:00
< input type = "button" class = "searchbutton" value = "Search images"
2013-05-06 20:41:51 -04:00
onClick="window.open('https://index.docker.io')" />
2013-03-25 22:52:52 -04:00
< / section >
< section class = "contentblock" >
2013-05-06 20:41:51 -04:00
< div id = "wufoo-z7x3p3" >
Fill out my < a href = "http://dotclouddocker.wufoo.com/forms/z7x3p3" > online form< / a > .
< / div >
< script type = "text/javascript" > v a r z 7 x 3 p 3 ; ( f u n c t i o n ( d , t ) {
var s = d.createElement(t), options = {
'userName':'dotclouddocker',
'formHash':'z7x3p3',
'autoResize':true,
'height':'577',
'async':true,
'header':'show'};
s.src = ('https:' == d.location.protocol ? 'https://' : 'http://') + 'wufoo.com/scripts/embed/form.js';
s.onload = s.onreadystatechange = function() {
var rs = this.readyState; if (rs) if (rs != 'complete') if (rs != 'loaded') return;
try { z7x3p3 = new WufooForm();z7x3p3.initialize(options);z7x3p3.display(); } catch (e) {}};
var scr = d.getElementsByTagName(t)[0], par = scr.parentNode; par.insertBefore(s, scr);
})(document, 'script');< / script >
2013-03-25 22:52:52 -04:00
< / section >
< / div >
< / div >
2013-05-06 20:41:51 -04:00
2013-03-25 22:52:52 -04:00
< / div >
< div class = "container" >
2013-05-06 17:24:14 -04:00
< div class = "row" >
< div class = "span6" >
< section class = "contentblock twitterblock" >
2013-05-06 17:26:58 -04:00
< img src = "https://si0.twimg.com/profile_images/2707460527/252a64411a339184ff375a96fb68dcb0_bigger.png" >
2013-06-04 14:33:39 -04:00
< em > Mitchell Hashimoto @mitchellh:< / em > Docker launched today. It is incredible. They’ re also working RIGHT NOW on a Vagrant provider. LXC is COMING!!
2013-05-06 17:24:14 -04:00
< / section >
< / div >
< div class = "span6" >
< section class = "contentblock twitterblock" >
2013-05-06 17:26:58 -04:00
< img src = "https://si0.twimg.com/profile_images/1108290260/Adam_Jacob-114x150_original_bigger.jpg" >
2013-06-04 14:33:39 -04:00
< em > Adam Jacob @adamhjk:< / em > Docker is clearly the right idea. @solomonstre absolutely killed it. Containerized app deployment is the future, I think.
2013-05-06 17:24:14 -04:00
< / section >
< / div >
< / div >
< div class = "row" >
< div class = "span6" >
< section class = "contentblock twitterblock" >
2013-05-06 17:26:58 -04:00
< img src = "https://si0.twimg.com/profile_images/14872832/twitter_pic_bigger.jpg" >
2013-06-04 14:33:39 -04:00
< em > Matt Townsend @mtownsend:< / em > I have a serious code crush on docker.io - it's Lego for PaaS. Motherfucking awesome Lego.
2013-05-06 17:24:14 -04:00
< / section >
< / div >
< div class = "span6" >
< section class = "contentblock twitterblock" >
2013-05-06 17:26:58 -04:00
< img src = "https://si0.twimg.com/profile_images/1312352395/rupert-259x300_bigger.jpg" >
2013-06-04 14:33:39 -04:00
< em > Rob Harrop @robertharrop:< / em > Impressed by @getdocker - it's all kinds of magic. Serious rethink of AWS architecture happening @skillsmatter.
2013-05-06 17:24:14 -04:00
< / section >
< / div >
< / div >
2013-03-26 13:03:10 -04:00
< div class = "row" >
2013-03-25 22:52:52 -04:00
< div class = "span6" >
< section class = "contentblock twitterblock" >
< img src = "https://twimg0-a.akamaihd.net/profile_images/2491994496/rbevyyq6ykp6bnoby2je_bigger.jpeg" >
< em > John Willis @botchagalupe:< / em > IMHO docker is to paas what chef was to Iaas 4 years ago
< / section >
< / div >
< div class = "span6" >
< section class = "contentblock twitterblock" >
< img src = "https://twimg0-a.akamaihd.net/profile_images/3348427561/9d7f08f1e103a16c8debd169301b9944_bigger.jpeg" >
< em > John Feminella @superninjarobot:< / em > So, @getdocker is pure excellence. If you've ever wished for arbitrary, PaaS-agnostic, lxc/aufs Linux containers, this is your jam!
< / section >
< / div >
< / div >
2013-03-26 13:03:10 -04:00
< div class = "row" >
< div class = "span6" >
< section class = "contentblock twitterblock" >
< img src = "https://si0.twimg.com/profile_images/3408403010/4496ccdd14e9b7285eca04c31a740207_bigger.jpeg" >
< em > David Romulan @destructuring:< / em > I haven't had this much fun since AWS
< / section >
< / div >
< div class = "span6" >
< section class = "contentblock twitterblock" >
< img src = "https://si0.twimg.com/profile_images/780893320/My_Avatar_bigger.jpg" >
< em > Ricardo Gladwell @rgladwell:< / em > wow @getdocker is either amazing or totally stupid
< / section >
< / div >
< / div >
2013-03-25 22:52:52 -04:00
< / div >
< div class = "container" >
< div class = "row" >
< div class = "span6" >
< section class = "contentblock" >
< h2 > Notable features< / h2 >
< ul >
< li > Filesystem isolation: each process container runs in a completely separate root filesystem.< / li >
< li > Resource isolation: system resources like cpu and memory can be allocated differently to each process container, using cgroups.< / li >
< li > Network isolation: each process container runs in its own network namespace, with a virtual interface and IP address of its own.< / li >
2013-06-01 21:48:32 -04:00
< li > Copy-on-write: root filesystems are created using copy-on-write, which makes deployment extremely fast, memory-cheap and disk-cheap.< / li >
2013-03-25 22:52:52 -04:00
< li > Logging: the standard streams (stdout/stderr/stdin) of each process container is collected and logged for real-time or batch retrieval.< / li >
< li > Change management: changes to a container's filesystem can be committed into a new image and re-used to create more containers. No templating or manual configuration required.< / li >
< li > Interactive shell: docker can allocate a pseudo-tty and attach to the standard input of any container, for example to run a throwaway interactive shell.< / li >
< / ul >
< h2 > Under the hood< / h2 >
< p > Under the hood, Docker is built on the following components:< / p >
< ul >
< li > The < a href = "http://blog.dotcloud.com/kernel-secrets-from-the-paas-garage-part-24-c" > cgroup< / a > and < a href = "http://blog.dotcloud.com/under-the-hood-linux-kernels-on-dotcloud-part" > namespacing< / a > capabilities of the Linux kernel;< / li >
< li > < a href = "http://aufs.sourceforge.net/aufs.html" > AUFS< / a > , a powerful union filesystem with copy-on-write capabilities;< / li >
< li > The < a href = "http://golang.org" > Go< / a > programming language;< / li >
< li > < a href = "http://lxc.sourceforge.net/" > lxc< / a > , a set of convenience scripts to simplify the creation of linux containers.< / li >
< / ul >
2013-05-06 20:41:51 -04:00
< h2 > Who started it< / h2 >
< p >
Docker is an open-source implementation of the deployment engine which powers < a href = "http://dotcloud.com" > dotCloud< / a > , a popular Platform-as-a-Service.< / p >
< p > It benefits directly from the experience accumulated over several years of large-scale operation and support of hundreds of thousands
of applications and databases.
< / p >
2013-03-25 22:52:52 -04:00
< / section >
< / div >
< div class = "span6" >
2013-05-06 20:41:51 -04:00
2013-03-25 22:52:52 -04:00
< section class = "contentblock" >
< h3 id = "twitter" > Twitter< / h3 >
< a class = "twitter-timeline" href = "https://twitter.com/getdocker" data-widget-id = "312730839718957056" > Tweets by @getdocker< / a >
< script > ! function ( d , s , id ) { var js , fjs = d . getElementsByTagName ( s ) [ 0 ] ; if ( ! d . getElementById ( id ) ) { js = d . createElement ( s ) ; js . id = id ; js . src = "//platform.twitter.com/widgets.js" ; fjs . parentNode . insertBefore ( js , fjs ) ; } } ( document , "script" , "twitter-wjs" ) ; < / script >
< / section >
2013-05-06 20:41:51 -04:00
2013-03-25 22:52:52 -04:00
< / div >
< / div >
< / div > <!-- end container -->
< div class = "container" >
< footer id = "footer" class = "footer" >
< div class = "row" >
< div class = "span12" >
2013-06-04 14:33:39 -04:00
< div class = "tbox textright forceleftmargin social links pull-right" >
< a class = "twitter" href = "http://twitter.com/getdocker" > Twitter< / a >
< a class = "github" href = "https://github.com/dotcloud/docker/" > GitHub< / a >
< / div >
2013-03-25 22:52:52 -04:00
Docker is a project by < a href = "http://www.dotcloud.com" > dotCloud< / a >
< / div >
< / div >
< div class = "row" >
< div class = "emptyspace" style = "height: 40px" >
< / div >
< / div >
< / footer >
< / div >
<!-- bootstrap javascipts -->
2013-05-08 20:05:46 -04:00
< script src = "static/js/vendor/bootstrap.min.js" type = "text/javascript" > < / script >
2013-03-25 22:52:52 -04:00
<!-- Google analytics -->
< script type = "text/javascript" >
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-6096819-11']);
_gaq.push(['_setDomainName', 'docker.io']);
_gaq.push(['_setAllowLinker', true]);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
< / script >
< / body >
< / html >