Browse code

Some updates to the README.md

* Updated pre-reqs for 0.9.
* Fixed a couple of docker to Docker.
* Fixed the Docker build example to be correct.
* Reformatted a bunch of paragraphs

Docker-DCO-1.1-Signed-off-by: James Turnbull <james@lovedthanlost.net> (github: jamtur01)

James Turnbull authored on 2014/03/04 21:53:22
Showing 1 changed files
... ...
@@ -4,19 +4,19 @@ Docker: the Linux container engine
4 4
 Docker is an open source project to pack, ship and run any application
5 5
 as a lightweight container
6 6
 
7
-Docker containers are both *hardware-agnostic* and
8
-*platform-agnostic*. This means that they can run anywhere, from your
9
-laptop to the largest EC2 compute instance and everything in between -
10
-and they don't require that you use a particular language, framework
11
-or packaging system. That makes them great building blocks for
12
-deploying and scaling web apps, databases and backend services without
13
-depending on a particular stack or provider.
7
+Docker containers are both *hardware-agnostic* and *platform-agnostic*.
8
+This means that they can run anywhere, from your laptop to the largest
9
+EC2 compute instance and everything in between - and they don't require
10
+that you use a particular language, framework or packaging system. That
11
+makes them great building blocks for deploying and scaling web apps,
12
+databases and backend services without depending on a particular stack
13
+or provider.
14 14
 
15 15
 Docker is an open-source implementation of the deployment engine which
16
-powers [dotCloud](http://dotcloud.com), a popular
17
-Platform-as-a-Service.  It benefits directly from the experience
18
-accumulated over several years of large-scale operation and support of
19
-hundreds of thousands of applications and databases.
16
+powers [dotCloud](http://dotcloud.com), a popular Platform-as-a-Service.
17
+It benefits directly from the experience accumulated over several years
18
+of large-scale operation and support of hundreds of thousands of
19
+applications and databases.
20 20
 
21 21
 ![Docker L](docs/theme/docker/static/img/dockerlogo-h.png "Docker")
22 22
 
... ...
@@ -24,10 +24,10 @@ hundreds of thousands of applications and databases.
24 24
 
25 25
 A common method for distributing applications and sandboxing their
26 26
 execution is to use virtual machines, or VMs. Typical VM formats are
27
-VMWare's vmdk, Oracle Virtualbox's vdi, and Amazon EC2's ami. In
28
-theory these formats should allow every developer to automatically
29
-package their application into a "machine" for easy distribution and
30
-deployment. In practice, that almost never happens, for a few reasons:
27
+VMWare's vmdk, Oracle Virtualbox's vdi, and Amazon EC2's ami. In theory
28
+these formats should allow every developer to automatically package
29
+their application into a "machine" for easy distribution and deployment.
30
+In practice, that almost never happens, for a few reasons:
31 31
 
32 32
   * *Size*: VMs are very large which makes them impractical to store
33 33
      and transfer.
... ...
@@ -47,39 +47,37 @@ deployment. In practice, that almost never happens, for a few reasons:
47 47
     service discovery.
48 48
 
49 49
 By contrast, Docker relies on a different sandboxing method known as
50
-*containerization*. Unlike traditional virtualization,
51
-containerization takes place at the kernel level. Most modern
52
-operating system kernels now support the primitives necessary for
53
-containerization, including Linux with [openvz](http://openvz.org),
50
+*containerization*. Unlike traditional virtualization, containerization
51
+takes place at the kernel level. Most modern operating system kernels
52
+now support the primitives necessary for containerization, including
53
+Linux with [openvz](http://openvz.org),
54 54
 [vserver](http://linux-vserver.org) and more recently
55 55
 [lxc](http://lxc.sourceforge.net), Solaris with
56 56
 [zones](http://docs.oracle.com/cd/E26502_01/html/E29024/preface-1.html#scrolltoc)
57 57
 and FreeBSD with
58 58
 [Jails](http://www.freebsd.org/doc/handbook/jails.html).
59 59
 
60
-Docker builds on top of these low-level primitives to offer developers
61
-a portable format and runtime environment that solves all 4
62
-problems. Docker containers are small (and their transfer can be
63
-optimized with layers), they have basically zero memory and cpu
64
-overhead, they are completely portable and are designed from the
65
-ground up with an application-centric design.
60
+Docker builds on top of these low-level primitives to offer developers a
61
+portable format and runtime environment that solves all 4 problems.
62
+Docker containers are small (and their transfer can be optimized with
63
+layers), they have basically zero memory and cpu overhead, they are
64
+completely portable and are designed from the ground up with an
65
+application-centric design.
66 66
 
67
-The best part: because ``docker`` operates at the OS level, it can
68
-still be run inside a VM!
67
+The best part: because Docker operates at the OS level, it can still be
68
+run inside a VM!
69 69
 
70 70
 ## Plays well with others
71 71
 
72 72
 Docker does not require that you buy into a particular programming
73 73
 language, framework, packaging system or configuration language.
74 74
 
75
-Is your application a Unix process? Does it use files, tcp
76
-connections, environment variables, standard Unix streams and
77
-command-line arguments as inputs and outputs? Then ``docker`` can run
78
-it.
75
+Is your application a Unix process? Does it use files, tcp connections,
76
+environment variables, standard Unix streams and command-line arguments
77
+as inputs and outputs? Then Docker can run it.
79 78
 
80 79
 Can your application's build be expressed as a sequence of such
81
-commands? Then ``docker`` can build it.
82
-
80
+commands? Then Docker can build it.
83 81
 
84 82
 ## Escape dependency hell
85 83
 
... ...
@@ -126,14 +124,11 @@ build command inherits the result of the previous commands, the
126 126
 Here's a typical Docker build process:
127 127
 
128 128
 ```bash
129
-from ubuntu:12.10
130
-run apt-get update
131
-run DEBIAN_FRONTEND=noninteractive apt-get install -q -y python
132
-run DEBIAN_FRONTEND=noninteractive apt-get install -q -y python-pip
133
-run pip install django
134
-run DEBIAN_FRONTEND=noninteractive apt-get install -q -y curl
135
-run curl -L https://github.com/shykes/helloflask/archive/master.tar.gz | tar -xzv
136
-run cd helloflask-master && pip install -r requirements.txt
129
+FROM ubuntu:12.04
130
+RUN apt-get update
131
+RUN apt-get install -q -y python python-pip curl
132
+RUN curl -L https://github.com/shykes/helloflask/archive/master.tar.gz | tar -xzv
133
+RUN cd helloflask-master && pip install -r requirements.txt
137 134
 ```
138 135
 
139 136
 Note that Docker doesn't care *how* dependencies are built - as long
... ...
@@ -143,22 +138,25 @@ as they can be built by running a Unix command in a container.
143 143
 Getting started
144 144
 ===============
145 145
 
146
-Docker can be installed on your local machine as well as servers - both bare metal and virtualized.
147
-It is available as a binary on most modern Linux systems, or as a VM on Windows, Mac and other systems.
148
-
149
-We also offer an interactive tutorial for quickly learning the basics of using Docker.
150
-
146
+Docker can be installed on your local machine as well as servers - both
147
+bare metal and virtualized.  It is available as a binary on most modern
148
+Linux systems, or as a VM on Windows, Mac and other systems.
151 149
 
152
-For up-to-date install instructions and online tutorials, see the [Getting Started page](http://www.docker.io/gettingstarted/).
150
+We also offer an interactive tutorial for quickly learning the basics of
151
+using Docker.
153 152
 
153
+For up-to-date install instructions and online tutorials, see the
154
+[Getting Started page](http://www.docker.io/gettingstarted/).
154 155
 
155 156
 Usage examples
156 157
 ==============
157 158
 
158
-Docker can be used to run short-lived commands, long-running daemons (app servers, databases etc.),
159
-interactive shell sessions, etc.
159
+Docker can be used to run short-lived commands, long-running daemons
160
+(app servers, databases etc.), interactive shell sessions, etc.
160 161
 
161
-You can find a [list of real-world examples](http://docs.docker.io/en/latest/examples/) in the documentation.
162
+You can find a [list of real-world
163
+examples](http://docs.docker.io/en/latest/examples/) in the
164
+documentation.
162 165
 
163 166
 Under the hood
164 167
 --------------
... ...
@@ -170,13 +168,7 @@ Under the hood, Docker is built on the following components:
170 170
   and
171 171
   [namespacing](http://blog.dotcloud.com/under-the-hood-linux-kernels-on-dotcloud-part)
172 172
   capabilities of the Linux kernel;
173
-* [AUFS](http://aufs.sourceforge.net/aufs.html), a powerful union
174
-  filesystem with copy-on-write capabilities;
175
-* The [Go](http://golang.org) programming language;
176
-* [lxc](http://lxc.sourceforge.net/), a set of convenience scripts to
177
-  simplify the creation of Linux containers.
178
-
179
-
173
+* The [Go](http://golang.org) programming language.
180 174
 
181 175
 Contributing to Docker
182 176
 ======================
... ...
@@ -187,7 +179,6 @@ started [here](CONTRIBUTING.md).
187 187
 They are probably not perfect, please let us know if anything feels
188 188
 wrong or incomplete.
189 189
 
190
-
191 190
 ### Legal
192 191
 
193 192
 *Brought to you courtesy of our legal counsel. For more context,