Browse code

Merge remote-tracking branch 'origin/docs'

Solomon Hykes authored on 2013/03/29 03:12:00
Showing 64 changed files
... ...
@@ -45,9 +45,9 @@ clean:
45 45
 
46 46
 docs:
47 47
 	-rm -rf $(BUILDDIR)/*
48
-	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
48
+	$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/html
49 49
 	cp sources/index.html $(BUILDDIR)/html/
50
-	cp sources/gettingstarted.html $(BUILDDIR)/html/
50
+	cp -r sources/gettingstarted $(BUILDDIR)/html/
51 51
 	cp sources/dotcloud.yml $(BUILDDIR)/html/
52 52
 	cp sources/CNAME $(BUILDDIR)/html/
53 53
 	cp sources/.nojekyll $(BUILDDIR)/html/
54 54
new file mode 100644
... ...
@@ -0,0 +1,67 @@
0
+:title: Base commands
1
+:description: Common usage and commands
2
+:keywords: Examples, Usage
3
+
4
+
5
+Base commands
6
+=============
7
+
8
+
9
+Running an interactive shell
10
+----------------------------
11
+
12
+.. code-block:: bash
13
+
14
+  # Download a base image
15
+  docker pull base
16
+
17
+  # Run an interactive shell in the base image,
18
+  # allocate a tty, attach stdin and stdout
19
+  docker run -i -t base /bin/bash
20
+
21
+
22
+Starting a long-running worker process
23
+--------------------------------------
24
+
25
+.. code-block:: bash
26
+
27
+  # Run docker in daemon mode
28
+  (sudo docker -d || echo "Docker daemon already running") &
29
+
30
+  # Start a very useful long-running process
31
+  JOB=$(docker run -d base /bin/sh -c "while true; do echo Hello world; sleep 1; done")
32
+
33
+  # Collect the output of the job so far
34
+  docker logs $JOB
35
+
36
+  # Kill the job
37
+  docker kill $JOB
38
+
39
+
40
+Listing all running containers
41
+------------------------------
42
+
43
+.. code-block:: bash
44
+
45
+  docker ps
46
+
47
+Expose a service on a TCP port
48
+------------------------------
49
+
50
+.. code-block:: bash
51
+
52
+  # Expose port 4444 of this container, and tell netcat to listen on it
53
+  JOB=$(docker run -d -p 4444 base /bin/nc -l -p 4444)
54
+
55
+  # Which public port is NATed to my container?
56
+  PORT=$(docker port $JOB 4444)
57
+
58
+  # Connect to the public port via the host's public address
59
+  echo hello world | nc $(hostname) $PORT
60
+
61
+  # Verify that the network connection worked
62
+  echo "Daemon received: $(docker logs $JOB)"
63
+
64
+Continue to the complete `Command Line Interface`_
65
+
66
+.. _Command Line Interface: ../commandline/cli.html
0 67
new file mode 100644
... ...
@@ -0,0 +1,320 @@
0
+:title: Command Line Interface
1
+:description: Docker's CLI command description and usage
2
+:keywords: Docker, Docker documentation, CLI, command line
3
+
4
+
5
+Command Line Interface
6
+======================
7
+
8
+Docker Usage
9
+~~~~~~~~~~~~
10
+
11
+::
12
+
13
+  $ docker
14
+    Usage: docker COMMAND [arg...]
15
+
16
+    A self-sufficient runtime for linux containers.
17
+
18
+    Commands:
19
+        attach    Attach to a running container
20
+        commit    Create a new image from a container's changes
21
+        diff      Inspect changes on a container's filesystem
22
+        export    Stream the contents of a container as a tar archive
23
+        history   Show the history of an image
24
+        images    List images
25
+        import    Create a new filesystem image from the contents of a tarball
26
+        info      Display system-wide information
27
+        inspect   Return low-level information on a container
28
+        kill      Kill a running container
29
+        login     Register or Login to the docker registry server
30
+        logs      Fetch the logs of a container
31
+        port      Lookup the public-facing port which is NAT-ed to PRIVATE_PORT
32
+        ps        List containers
33
+        pull      Pull an image or a repository to the docker registry server
34
+        push      Push an image or a repository to the docker registry server
35
+        restart   Restart a running container
36
+        rm        Remove a container
37
+        rmi       Remove an image
38
+        run       Run a command in a new container
39
+        start     Start a stopped container
40
+        stop      Stop a running container
41
+        tag       Tag an image into a repository
42
+        version   Show the docker version information
43
+        wait      Block until a container stops, then print its exit code
44
+
45
+
46
+attach
47
+~~~~~~
48
+
49
+::
50
+
51
+  Usage: docker attach [OPTIONS]
52
+
53
+  Attach to a running container
54
+
55
+    -e=true: Attach to stderr
56
+    -i=false: Attach to stdin
57
+    -o=true: Attach to stdout
58
+
59
+
60
+commit
61
+~~~~~~
62
+
63
+::
64
+
65
+  Usage: docker commit [OPTIONS] CONTAINER [DEST]
66
+
67
+  Create a new image from a container's changes
68
+
69
+  -m="": Commit message
70
+
71
+
72
+diff
73
+~~~~
74
+
75
+::
76
+
77
+  Usage: docker diff CONTAINER [OPTIONS]
78
+
79
+  Inspect changes on a container's filesystem
80
+
81
+
82
+export
83
+~~~~~~
84
+
85
+::
86
+
87
+    Usage: docker export CONTAINER
88
+
89
+    Export the contents of a filesystem as a tar archive
90
+
91
+
92
+history
93
+~~~~~~~
94
+
95
+::
96
+
97
+    Usage: docker history [OPTIONS] IMAGE
98
+
99
+    Show the history of an image
100
+
101
+
102
+images
103
+~~~~~~
104
+
105
+::
106
+
107
+  Usage: docker images [OPTIONS] [NAME]
108
+
109
+  List images
110
+
111
+    -a=false: show all images
112
+    -q=false: only show numeric IDs
113
+
114
+
115
+import
116
+~~~~~~
117
+
118
+::
119
+
120
+Usage: docker import [OPTIONS] URL|- [REPOSITORY [TAG]]
121
+
122
+Create a new filesystem image from the contents of a tarball
123
+
124
+
125
+info
126
+~~~~
127
+
128
+::
129
+
130
+  Usage: docker info
131
+
132
+  Display system-wide information.
133
+
134
+
135
+inspect
136
+~~~~~~~
137
+
138
+::
139
+
140
+  Usage: docker inspect [OPTIONS] CONTAINER
141
+
142
+  Return low-level information on a container
143
+
144
+
145
+kill
146
+~~~~
147
+
148
+::
149
+
150
+  Usage: docker kill [OPTIONS] CONTAINER [CONTAINER...]
151
+
152
+  Kill a running container
153
+
154
+
155
+login
156
+~~~~~
157
+
158
+::
159
+
160
+  Usage: docker login
161
+
162
+  Register or Login to the docker registry server
163
+
164
+
165
+logs
166
+~~~~
167
+
168
+::
169
+
170
+  Usage: docker logs [OPTIONS] CONTAINER
171
+
172
+  Fetch the logs of a container
173
+
174
+
175
+port
176
+~~~~
177
+
178
+::
179
+
180
+    Usage: docker port [OPTIONS] CONTAINER PRIVATE_PORT
181
+
182
+    Lookup the public-facing port which is NAT-ed to PRIVATE_PORT
183
+
184
+
185
+ps
186
+~~
187
+
188
+::
189
+
190
+    Usage: docker ps [OPTIONS]
191
+
192
+    List containers
193
+
194
+      -a=false: Show all containers. Only running containers are shown by default.
195
+      -notrunc=false: Don't truncate output
196
+      -q=false: Only display numeric IDs
197
+
198
+
199
+pull
200
+~~~~
201
+
202
+::
203
+
204
+    Usage: docker pull NAME
205
+
206
+    Pull an image or a repository from the registry
207
+
208
+push
209
+~~~~
210
+
211
+::
212
+
213
+    Usage: docker push NAME
214
+
215
+    Push an image or a repository to the registry
216
+
217
+
218
+restart
219
+~~~~~~~
220
+
221
+::
222
+
223
+  Usage: docker restart [OPTIONS] NAME
224
+
225
+  Restart a running container
226
+
227
+
228
+rm
229
+~~
230
+
231
+::
232
+
233
+  Usage: docker rm [OPTIONS] CONTAINER
234
+
235
+  Remove a container
236
+
237
+
238
+rmi
239
+~~~
240
+
241
+::
242
+
243
+  Usage: docker rmi [OPTIONS] IMAGE
244
+
245
+  Remove an image
246
+
247
+    -a=false: Use IMAGE as a path and remove ALL images in this path
248
+    -r=false: Use IMAGE as a regular expression instead of an exact name
249
+
250
+
251
+run
252
+~~~
253
+
254
+::
255
+
256
+  Usage: docker run [OPTIONS] IMAGE COMMAND [ARG...]
257
+
258
+  Run a command in a new container
259
+
260
+    -a=false: Attach stdin and stdout
261
+    -c="": Comment
262
+    -i=false: Keep stdin open even if not attached
263
+    -m=0: Memory limit (in bytes)
264
+    -p=[]: Map a network port to the container
265
+    -t=false: Allocate a pseudo-tty
266
+    -u="": Username or UID
267
+
268
+
269
+start
270
+~~~~~
271
+
272
+::
273
+
274
+  Usage: docker start [OPTIONS] NAME
275
+
276
+  Start a stopped container
277
+
278
+
279
+stop
280
+~~~~
281
+
282
+::
283
+
284
+  Usage: docker stop [OPTIONS] NAME
285
+
286
+  Stop a running container
287
+
288
+
289
+tag
290
+~~~
291
+
292
+::
293
+
294
+    Usage: docker tag [OPTIONS] IMAGE REPOSITORY [TAG]
295
+
296
+    Tag an image into a repository
297
+
298
+      -f=false: Force
299
+
300
+
301
+version
302
+~~~~~~~
303
+
304
+::
305
+
306
+  Usage: docker version
307
+
308
+  Show the docker version information
309
+
310
+
311
+wait
312
+~~~~
313
+
314
+::
315
+
316
+  Usage: docker wait [OPTIONS] NAME
317
+
318
+  Block until a container stops, then print its exit code.
319
+
0 320
new file mode 100644
... ...
@@ -0,0 +1,15 @@
0
+:title: docker documentation
1
+:description: -- todo: change me
2
+:keywords: todo: change me
3
+
4
+
5
+Commands
6
+========
7
+
8
+Contents:
9
+
10
+.. toctree::
11
+  :maxdepth: 2
12
+
13
+  basecommands
14
+  cli
0 15
\ No newline at end of file
1 16
new file mode 100644
... ...
@@ -0,0 +1,112 @@
0
+:title: Containers
1
+:description: What are standard containers?
2
+:keywords: containers, lxc, concepts, explanation
3
+
4
+
5
+
6
+Standard Containers
7
+===================
8
+
9
+
10
+What is a Standard Container?
11
+-----------------------------
12
+
13
+Docker defines a unit of software delivery called a Standard Container. The goal of a Standard Container is to encapsulate a software component and all its dependencies in
14
+a format that is self-describing and portable, so that any compliant runtime can run it without extra dependency, regardless of the underlying machine and the contents of the container.
15
+
16
+The spec for Standard Containers is currently work in progress, but it is very straightforward. It mostly defines 1) an image format, 2) a set of standard operations, and 3) an execution environment.
17
+
18
+A great analogy for this is the shipping container. Just like Standard Containers are a fundamental unit of software delivery, shipping containers (http://bricks.argz.com/ins/7823-1/12) are a fundamental unit of physical delivery.
19
+
20
+Standard operations
21
+-----------------------
22
+
23
+Just like shipping containers, Standard Containers define a set of STANDARD OPERATIONS. Shipping containers can be lifted, stacked, locked, loaded, unloaded and labelled. Similarly, standard containers can be started, stopped, copied, snapshotted, downloaded, uploaded and tagged.
24
+
25
+
26
+Content-agnostic
27
+---------------------
28
+
29
+Just like shipping containers, Standard Containers are CONTENT-AGNOSTIC: all standard operations have the same effect regardless of the contents. A shipping container will be stacked in exactly the same way whether it contains Vietnamese powder coffee or spare Maserati parts. Similarly, Standard Containers are started or uploaded in the same way whether they contain a postgres database, a php application with its dependencies and application server, or Java build artifacts.
30
+
31
+
32
+Infrastructure-agnostic
33
+--------------------------
34
+
35
+Both types of containers are INFRASTRUCTURE-AGNOSTIC: they can be transported to thousands of facilities around the world, and manipulated by a wide variety of equipment. A shipping container can be packed in a factory in Ukraine, transported by truck to the nearest routing center, stacked onto a train, loaded into a German boat by an Australian-built crane, stored in a warehouse at a US facility, etc. Similarly, a standard container can be bundled on my laptop, uploaded to S3, downloaded, run and snapshotted by a build server at Equinix in Virginia, uploaded to 10 staging servers in a home-made Openstack cluster, then sent to 30 production instances across 3 EC2 regions.
36
+
37
+
38
+Designed for automation
39
+--------------------------
40
+
41
+Because they offer the same standard operations regardless of content and infrastructure, Standard Containers, just like their physical counterpart, are extremely well-suited for automation. In fact, you could say automation is their secret weapon.
42
+
43
+Many things that once required time-consuming and error-prone human effort can now be programmed. Before shipping containers, a bag of powder coffee was hauled, dragged, dropped, rolled and stacked by 10 different people in 10 different locations by the time it reached its destination. 1 out of 50 disappeared. 1 out of 20 was damaged. The process was slow, inefficient and cost a fortune - and was entirely different depending on the facility and the type of goods.
44
+
45
+Similarly, before Standard Containers, by the time a software component ran in production, it had been individually built, configured, bundled, documented, patched, vendored, templated, tweaked and instrumented by 10 different people on 10 different computers. Builds failed, libraries conflicted, mirrors crashed, post-it notes were lost, logs were misplaced, cluster updates were half-broken. The process was slow, inefficient and cost a fortune - and was entirely different depending on the language and infrastructure provider.
46
+
47
+
48
+Industrial-grade delivery
49
+----------------------------
50
+
51
+There are 17 million shipping containers in existence, packed with every physical good imaginable. Every single one of them can be loaded on the same boats, by the same cranes, in the same facilities, and sent anywhere in the World with incredible efficiency. It is embarrassing to think that a 30 ton shipment of coffee can safely travel half-way across the World in *less time* than it takes a software team to deliver its code from one datacenter to another sitting 10 miles away.
52
+
53
+With Standard Containers we can put an end to that embarrassment, by making INDUSTRIAL-GRADE DELIVERY of software a reality.
54
+
55
+
56
+Standard Container Specification
57
+--------------------------------
58
+
59
+(TODO)
60
+
61
+Image format
62
+~~~~~~~~~~~~
63
+
64
+Standard operations
65
+~~~~~~~~~~~~~~~~~~~
66
+
67
+-  Copy
68
+-  Run
69
+-  Stop
70
+-  Wait
71
+-  Commit
72
+-  Attach standard streams
73
+-  List filesystem changes
74
+-  ...
75
+
76
+Execution environment
77
+~~~~~~~~~~~~~~~~~~~~~
78
+
79
+Root filesystem
80
+^^^^^^^^^^^^^^^
81
+
82
+Environment variables
83
+^^^^^^^^^^^^^^^^^^^^^
84
+
85
+Process arguments
86
+^^^^^^^^^^^^^^^^^
87
+
88
+Networking
89
+^^^^^^^^^^
90
+
91
+Process namespacing
92
+^^^^^^^^^^^^^^^^^^^
93
+
94
+Resource limits
95
+^^^^^^^^^^^^^^^
96
+
97
+Process monitoring
98
+^^^^^^^^^^^^^^^^^^
99
+
100
+Logging
101
+^^^^^^^
102
+
103
+Signals
104
+^^^^^^^
105
+
106
+Pseudo-terminal allocation
107
+^^^^^^^^^^^^^^^^^^^^^^^^^^
108
+
109
+Security
110
+^^^^^^^^
111
+
0 112
new file mode 100644
... ...
@@ -0,0 +1,16 @@
0
+:title: docker documentation
1
+:description: -- todo: change me
2
+:keywords: todo: change me
3
+
4
+
5
+
6
+Concepts
7
+========
8
+
9
+Contents:
10
+
11
+.. toctree::
12
+   :maxdepth: 1
13
+
14
+   containers
15
+
0 16
new file mode 100644
... ...
@@ -0,0 +1,58 @@
0
+Contributing to Docker
1
+======================
2
+
3
+Want to hack on Docker? Awesome! There are instructions to get you
4
+started on the website: http://docker.io/gettingstarted.html
5
+
6
+They are probably not perfect, please let us know if anything feels
7
+wrong or incomplete.
8
+
9
+Contribution guidelines
10
+-----------------------
11
+
12
+Pull requests are always welcome
13
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14
+
15
+We are always thrilled to receive pull requests, and do our best to
16
+process them as fast as possible. Not sure if that typo is worth a pull
17
+request? Do it! We will appreciate it.
18
+
19
+If your pull request is not accepted on the first try, don't be
20
+discouraged! If there's a problem with the implementation, hopefully you
21
+received feedback on what to improve.
22
+
23
+We're trying very hard to keep Docker lean and focused. We don't want it
24
+to do everything for everybody. This means that we might decide against
25
+incorporating a new feature. However, there might be a way to implement
26
+that feature *on top of* docker.
27
+
28
+Discuss your design on the mailing list
29
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
30
+
31
+We recommend discussing your plans `on the mailing
32
+list <https://groups.google.com/forum/?fromgroups#!forum/docker-club>`__
33
+before starting to code - especially for more ambitious contributions.
34
+This gives other contributors a chance to point you in the right
35
+direction, give feedback on your design, and maybe point out if someone
36
+else is working on the same thing.
37
+
38
+Create issues...
39
+~~~~~~~~~~~~~~~~
40
+
41
+Any significant improvement should be documented as `a github
42
+issue <https://github.com/dotcloud/docker/issues>`__ before anybody
43
+starts working on it.
44
+
45
+...but check for existing issues first!
46
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
47
+
48
+Please take a moment to check that an issue doesn't already exist
49
+documenting your bug report or improvement proposal. If it does, it
50
+never hurts to add a quick "+1" or "I have this problem too". This will
51
+help prioritize the most common problems and requests.
52
+
53
+Write tests
54
+~~~~~~~~~~~
55
+
56
+Golang has a great testing suite built in: use it! Take a look at
57
+existing tests for inspiration.
0 58
new file mode 100644
... ...
@@ -0,0 +1,31 @@
0
+:title: Setting up a dev environment
1
+:description: Guides on how to contribute to docker
2
+:keywords: Docker, documentation, developers, contributing, dev environment
3
+
4
+Setting up a dev environment
5
+============================
6
+
7
+Instructions that have been verified to work on Ubuntu 12.10,
8
+
9
+.. code:: bash
10
+
11
+    sudo apt-get -y install lxc wget bsdtar curl golang git
12
+
13
+    export GOPATH=~/go/
14
+    export PATH=$GOPATH/bin:$PATH
15
+
16
+    mkdir -p $GOPATH/src/github.com/dotcloud
17
+    cd $GOPATH/src/github.com/dotcloud
18
+    git clone git@github.com:dotcloud/docker.git
19
+    cd docker
20
+
21
+    go get -v github.com/dotcloud/docker/...
22
+    go install -v github.com/dotcloud/docker/...
23
+
24
+Then run the docker daemon,
25
+
26
+.. code:: bash
27
+
28
+    sudo $GOPATH/bin/docker -d
29
+
30
+Run the ``go install`` command (above) to recompile docker.
0 31
new file mode 100644
... ...
@@ -0,0 +1,14 @@
0
+:title: Contributing to Docker
1
+:description: Guides on how to contribute to docker
2
+:keywords: Docker, documentation, developers, contributing, dev environment
3
+
4
+
5
+
6
+Contributing
7
+============
8
+
9
+.. toctree::
10
+   :maxdepth: 1
11
+
12
+   contributing
13
+   devenvironment
0 14
deleted file mode 100644
... ...
@@ -1,67 +0,0 @@
1
-:title: Base commands
2
-:description: Common usage and commands
3
-:keywords: Examples, Usage
4
-
5
-
6
-Base commands
7
-=============
8
-
9
-
10
-Running an interactive shell
11
-
12
-.. code-block:: bash
13
-
14
-  # Download a base image
15
-  docker pull base
16
-
17
-  # Run an interactive shell in the base image,
18
-  # allocate a tty, attach stdin and stdout
19
-  docker run -i -t base /bin/bash
20
-
21
-
22
-Starting a long-running worker process
23
-
24
-.. code-block:: bash
25
-
26
-  # Run docker in daemon mode
27
-  (sudo docker -d || echo "Docker daemon already running") &
28
-
29
-  # Start a very useful long-running process
30
-  JOB=$(docker run -d base /bin/sh -c "while true; do echo Hello world; sleep 1; done")
31
-
32
-  # Collect the output of the job so far
33
-  docker logs $JOB
34
-
35
-  # Kill the job
36
-  docker kill $JOB
37
-
38
-
39
-Listing all running containers
40
-
41
-.. code-block:: bash
42
-
43
-  docker ps
44
-
45
-Expose a service on a TCP port
46
-
47
-.. code-block:: bash
48
-
49
-  # Expose port 4444 of this container, and tell netcat to listen on it
50
-  JOB=$(docker run -d -p 4444 base /bin/nc -l -p 4444)
51
-
52
-  # Which public port is NATed to my container?
53
-  PORT=$(docker port $JOB 4444)
54
-
55
-  # Connect to the public port via the host's public address
56
-  echo hello world | nc $(hostname) $PORT
57
-
58
-  # Verify that the network connection worked
59
-  echo "Daemon received: $(docker logs $JOB)"
60
-
61
-Continue to the complete `Command Line Interface`_
62
-
63
-.. _Command Line Interface: ../commandline/cli.html
64 1
deleted file mode 100644
... ...
@@ -1,320 +0,0 @@
1
-:title: Command Line Interface
2
-:description: Docker's CLI command description and usage
3
-:keywords: Docker, Docker documentation, CLI, command line
4
-
5
-
6
-Command Line Interface
7
-======================
8
-
9
-Docker Usage
10
-~~~~~~~~~~~~
11
-
12
-::
13
-
14
-  $ docker
15
-    Usage: docker COMMAND [arg...]
16
-
17
-    A self-sufficient runtime for linux containers.
18
-
19
-    Commands:
20
-        attach    Attach to a running container
21
-        commit    Create a new image from a container's changes
22
-        diff      Inspect changes on a container's filesystem
23
-        export    Stream the contents of a container as a tar archive
24
-        history   Show the history of an image
25
-        images    List images
26
-        import    Create a new filesystem image from the contents of a tarball
27
-        info      Display system-wide information
28
-        inspect   Return low-level information on a container
29
-        kill      Kill a running container
30
-        login     Register or Login to the docker registry server
31
-        logs      Fetch the logs of a container
32
-        port      Lookup the public-facing port which is NAT-ed to PRIVATE_PORT
33
-        ps        List containers
34
-        pull      Pull an image or a repository to the docker registry server
35
-        push      Push an image or a repository to the docker registry server
36
-        restart   Restart a running container
37
-        rm        Remove a container
38
-        rmi       Remove an image
39
-        run       Run a command in a new container
40
-        start     Start a stopped container
41
-        stop      Stop a running container
42
-        tag       Tag an image into a repository
43
-        version   Show the docker version information
44
-        wait      Block until a container stops, then print its exit code
45
-
46
-
47
-attach
48
-~~~~~~
49
-
50
-::
51
-
52
-  Usage: docker attach [OPTIONS]
53
-
54
-  Attach to a running container
55
-
56
-    -e=true: Attach to stderr
57
-    -i=false: Attach to stdin
58
-    -o=true: Attach to stdout
59
-
60
-
61
-commit
62
-~~~~~~
63
-
64
-::
65
-
66
-  Usage: docker commit [OPTIONS] CONTAINER [DEST]
67
-
68
-  Create a new image from a container's changes
69
-
70
-  -m="": Commit message
71
-
72
-
73
-diff
74
-~~~~
75
-
76
-::
77
-
78
-  Usage: docker diff CONTAINER [OPTIONS]
79
-
80
-  Inspect changes on a container's filesystem
81
-
82
-
83
-export
84
-~~~~~~
85
-
86
-::
87
-
88
-    Usage: docker export CONTAINER
89
-
90
-    Export the contents of a filesystem as a tar archive
91
-
92
-
93
-history
94
-~~~~~~~
95
-
96
-::
97
-
98
-    Usage: docker history [OPTIONS] IMAGE
99
-
100
-    Show the history of an image
101
-
102
-
103
-images
104
-~~~~~~
105
-
106
-::
107
-
108
-  Usage: docker images [OPTIONS] [NAME]
109
-
110
-  List images
111
-
112
-    -a=false: show all images
113
-    -q=false: only show numeric IDs
114
-
115
-
116
-import
117
-~~~~~~
118
-
119
-::
120
-
121
-Usage: docker import [OPTIONS] URL|- [REPOSITORY [TAG]]
122
-
123
-Create a new filesystem image from the contents of a tarball
124
-
125
-
126
-info
127
-~~~~
128
-
129
-::
130
-
131
-  Usage: docker info
132
-
133
-  Display system-wide information.
134
-
135
-
136
-inspect
137
-~~~~~~~
138
-
139
-::
140
-
141
-  Usage: docker inspect [OPTIONS] CONTAINER
142
-
143
-  Return low-level information on a container
144
-
145
-
146
-kill
147
-~~~~
148
-
149
-::
150
-
151
-  Usage: docker kill [OPTIONS] CONTAINER [CONTAINER...]
152
-
153
-  Kill a running container
154
-
155
-
156
-login
157
-~~~~~
158
-
159
-::
160
-
161
-  Usage: docker login
162
-
163
-  Register or Login to the docker registry server
164
-
165
-
166
-logs
167
-~~~~
168
-
169
-::
170
-
171
-  Usage: docker logs [OPTIONS] CONTAINER
172
-
173
-  Fetch the logs of a container
174
-
175
-
176
-port
177
-~~~~
178
-
179
-::
180
-
181
-    Usage: docker port [OPTIONS] CONTAINER PRIVATE_PORT
182
-
183
-    Lookup the public-facing port which is NAT-ed to PRIVATE_PORT
184
-
185
-
186
-ps
187
-~~
188
-
189
-::
190
-
191
-    Usage: docker ps [OPTIONS]
192
-
193
-    List containers
194
-
195
-      -a=false: Show all containers. Only running containers are shown by default.
196
-      -notrunc=false: Don't truncate output
197
-      -q=false: Only display numeric IDs
198
-
199
-
200
-pull
201
-~~~~
202
-
203
-::
204
-
205
-    Usage: docker pull NAME
206
-
207
-    Pull an image or a repository from the registry
208
-
209
-push
210
-~~~~
211
-
212
-::
213
-
214
-    Usage: docker push NAME
215
-
216
-    Push an image or a repository to the registry
217
-
218
-
219
-restart
220
-~~~~~~~
221
-
222
-::
223
-
224
-  Usage: docker restart [OPTIONS] NAME
225
-
226
-  Restart a running container
227
-
228
-
229
-rm
230
-~~
231
-
232
-::
233
-
234
-  Usage: docker rm [OPTIONS] CONTAINER
235
-
236
-  Remove a container
237
-
238
-
239
-rmi
240
-~~~
241
-
242
-::
243
-
244
-  Usage: docker rmi [OPTIONS] IMAGE
245
-
246
-  Remove an image
247
-
248
-    -a=false: Use IMAGE as a path and remove ALL images in this path
249
-    -r=false: Use IMAGE as a regular expression instead of an exact name
250
-
251
-
252
-run
253
-~~~
254
-
255
-::
256
-
257
-  Usage: docker run [OPTIONS] IMAGE COMMAND [ARG...]
258
-
259
-  Run a command in a new container
260
-
261
-    -a=false: Attach stdin and stdout
262
-    -c="": Comment
263
-    -i=false: Keep stdin open even if not attached
264
-    -m=0: Memory limit (in bytes)
265
-    -p=[]: Map a network port to the container
266
-    -t=false: Allocate a pseudo-tty
267
-    -u="": Username or UID
268
-
269
-
270
-start
271
-~~~~~
272
-
273
-::
274
-
275
-  Usage: docker start [OPTIONS] NAME
276
-
277
-  Start a stopped container
278
-
279
-
280
-stop
281
-~~~~
282
-
283
-::
284
-
285
-  Usage: docker stop [OPTIONS] NAME
286
-
287
-  Stop a running container
288
-
289
-
290
-tag
291
-~~~
292
-
293
-::
294
-
295
-    Usage: docker tag [OPTIONS] IMAGE REPOSITORY [TAG]
296
-
297
-    Tag an image into a repository
298
-
299
-      -f=false: Force
300
-
301
-
302
-version
303
-~~~~~~~
304
-
305
-::
306
-
307
-  Usage: docker version
308
-
309
-  Show the docker version information
310
-
311
-
312
-wait
313
-~~~~
314
-
315
-::
316
-
317
-  Usage: docker wait [OPTIONS] NAME
318
-
319
-  Block until a container stops, then print its exit code.
320
-
321 1
deleted file mode 100644
... ...
@@ -1,15 +0,0 @@
1
-:title: docker documentation
2
-:description: -- todo: change me
3
-:keywords: todo: change me
4
-
5
-
6
-Commands
7
-========
8
-
9
-Contents:
10
-
11
-.. toctree::
12
-  :maxdepth: 2
13
-
14
-  basecommands
15
-  cli
16 1
\ No newline at end of file
17 2
deleted file mode 100644
... ...
@@ -1,112 +0,0 @@
1
-:title: Containers
2
-:description: What are standard containers?
3
-:keywords: containers, lxc, concepts, explanation
4
-
5
-
6
-
7
-Standard Containers
8
-===================
9
-
10
-
11
-What is a Standard Container?
12
-
13
-Docker defines a unit of software delivery called a Standard Container. The goal of a Standard Container is to encapsulate a software component and all its dependencies in
14
-a format that is self-describing and portable, so that any compliant runtime can run it without extra dependency, regardless of the underlying machine and the contents of the container.
15
-
16
-The spec for Standard Containers is currently work in progress, but it is very straightforward. It mostly defines 1) an image format, 2) a set of standard operations, and 3) an execution environment.
17
-
18
-A great analogy for this is the shipping container. Just like Standard Containers are a fundamental unit of software delivery, shipping containers (http://bricks.argz.com/ins/7823-1/12) are a fundamental unit of physical delivery.
19
-
20
-Standard operations
21
-
22
-Just like shipping containers, Standard Containers define a set of STANDARD OPERATIONS. Shipping containers can be lifted, stacked, locked, loaded, unloaded and labelled. Similarly, standard containers can be started, stopped, copied, snapshotted, downloaded, uploaded and tagged.
23
-
24
-
25
-Content-agnostic
26
-
27
-Just like shipping containers, Standard Containers are CONTENT-AGNOSTIC: all standard operations have the same effect regardless of the contents. A shipping container will be stacked in exactly the same way whether it contains Vietnamese powder coffee or spare Maserati parts. Similarly, Standard Containers are started or uploaded in the same way whether they contain a postgres database, a php application with its dependencies and application server, or Java build artifacts.
28
-
29
-
30
-Infrastructure-agnostic
31
-
32
-Both types of containers are INFRASTRUCTURE-AGNOSTIC: they can be transported to thousands of facilities around the world, and manipulated by a wide variety of equipment. A shipping container can be packed in a factory in Ukraine, transported by truck to the nearest routing center, stacked onto a train, loaded into a German boat by an Australian-built crane, stored in a warehouse at a US facility, etc. Similarly, a standard container can be bundled on my laptop, uploaded to S3, downloaded, run and snapshotted by a build server at Equinix in Virginia, uploaded to 10 staging servers in a home-made Openstack cluster, then sent to 30 production instances across 3 EC2 regions.
33
-
34
-
35
-Designed for automation
36
-
37
-Because they offer the same standard operations regardless of content and infrastructure, Standard Containers, just like their physical counterpart, are extremely well-suited for automation. In fact, you could say automation is their secret weapon.
38
-
39
-Many things that once required time-consuming and error-prone human effort can now be programmed. Before shipping containers, a bag of powder coffee was hauled, dragged, dropped, rolled and stacked by 10 different people in 10 different locations by the time it reached its destination. 1 out of 50 disappeared. 1 out of 20 was damaged. The process was slow, inefficient and cost a fortune - and was entirely different depending on the facility and the type of goods.
40
-
41
-Similarly, before Standard Containers, by the time a software component ran in production, it had been individually built, configured, bundled, documented, patched, vendored, templated, tweaked and instrumented by 10 different people on 10 different computers. Builds failed, libraries conflicted, mirrors crashed, post-it notes were lost, logs were misplaced, cluster updates were half-broken. The process was slow, inefficient and cost a fortune - and was entirely different depending on the language and infrastructure provider.
42
-
43
-
44
-Industrial-grade delivery
45
-
46
-There are 17 million shipping containers in existence, packed with every physical good imaginable. Every single one of them can be loaded on the same boats, by the same cranes, in the same facilities, and sent anywhere in the World with incredible efficiency. It is embarrassing to think that a 30 ton shipment of coffee can safely travel half-way across the World in *less time* than it takes a software team to deliver its code from one datacenter to another sitting 10 miles away.
47
-
48
-With Standard Containers we can put an end to that embarrassment, by making INDUSTRIAL-GRADE DELIVERY of software a reality.
49
-
50
-
51
-Standard Container Specification
52
-
53
-(TODO)
54
-
55
-Image format
56
-~~~~~~~~~~~~
57
-
58
-Standard operations
59
-~~~~~~~~~~~~~~~~~~~
60
-
61
--  Copy
62
--  Run
63
--  Stop
64
--  Wait
65
--  Commit
66
--  Attach standard streams
67
--  List filesystem changes
68
--  ...
69
-
70
-Execution environment
71
-~~~~~~~~~~~~~~~~~~~~~
72
-
73
-Root filesystem
74
-^^^^^^^^^^^^^^^
75
-
76
-Environment variables
77
-^^^^^^^^^^^^^^^^^^^^^
78
-
79
-Process arguments
80
-^^^^^^^^^^^^^^^^^
81
-
82
-Networking
83
-^^^^^^^^^^
84
-
85
-Process namespacing
86
-^^^^^^^^^^^^^^^^^^^
87
-
88
-Resource limits
89
-^^^^^^^^^^^^^^^
90
-
91
-Process monitoring
92
-^^^^^^^^^^^^^^^^^^
93
-
94
-Logging
95
-^^^^^^^
96
-
97
-Signals
98
-^^^^^^^
99
-
100
-Pseudo-terminal allocation
101
-^^^^^^^^^^^^^^^^^^^^^^^^^^
102
-
103
-Security
104
-^^^^^^^^
105
-
106 1
deleted file mode 100644
... ...
@@ -1,16 +0,0 @@
1
-:title: docker documentation
2
-:description: -- todo: change me
3
-:keywords: todo: change me
4
-
5
-
6
-
7
-Concepts
8
-========
9
-
10
-Contents:
11
-
12
-.. toctree::
13
-   :maxdepth: 1
14
-
15
-   containers
16
-
17 1
deleted file mode 100644
... ...
@@ -1,58 +0,0 @@
1
-Contributing to Docker
2
-======================
3
-
4
-Want to hack on Docker? Awesome! There are instructions to get you
5
-started on the website: http://docker.io/gettingstarted.html
6
-
7
-They are probably not perfect, please let us know if anything feels
8
-wrong or incomplete.
9
-
10
-Contribution guidelines
11
-
12
-Pull requests are always welcome
13
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14
-
15
-We are always thrilled to receive pull requests, and do our best to
16
-process them as fast as possible. Not sure if that typo is worth a pull
17
-request? Do it! We will appreciate it.
18
-
19
-If your pull request is not accepted on the first try, don't be
20
-discouraged! If there's a problem with the implementation, hopefully you
21
-received feedback on what to improve.
22
-
23
-We're trying very hard to keep Docker lean and focused. We don't want it
24
-to do everything for everybody. This means that we might decide against
25
-incorporating a new feature. However, there might be a way to implement
26
-that feature *on top of* docker.
27
-
28
-Discuss your design on the mailing list
29
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
30
-
31
-We recommend discussing your plans `on the mailing
32
-list <https://groups.google.com/forum/?fromgroups#!forum/docker-club>`__
33
-before starting to code - especially for more ambitious contributions.
34
-This gives other contributors a chance to point you in the right
35
-direction, give feedback on your design, and maybe point out if someone
36
-else is working on the same thing.
37
-
38
-Create issues...
39
-~~~~~~~~~~~~~~~~
40
-
41
-Any significant improvement should be documented as `a github
42
-issue <https://github.com/dotcloud/docker/issues>`__ before anybody
43
-starts working on it.
44
-
45
-...but check for existing issues first!
46
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
47
-
48
-Please take a moment to check that an issue doesn't already exist
49
-documenting your bug report or improvement proposal. If it does, it
50
-never hurts to add a quick "+1" or "I have this problem too". This will
51
-help prioritize the most common problems and requests.
52
-
53
-Write tests
54
-~~~~~~~~~~~
55
-
56
-Golang has a great testing suite built in: use it! Take a look at
57
-existing tests for inspiration.
58 1
deleted file mode 100644
... ...
@@ -1,31 +0,0 @@
1
-:title: Setting up a dev environment
2
-:description: Guides on how to contribute to docker
3
-:keywords: Docker, documentation, developers, contributing, dev environment
4
-
5
-Setting up a dev environment
6
-============================
7
-
8
-Instructions that have been verified to work on Ubuntu 12.10,
9
-
10
-.. code:: bash
11
-
12
-    sudo apt-get -y install lxc wget bsdtar curl golang git
13
-
14
-    export GOPATH=~/go/
15
-    export PATH=$GOPATH/bin:$PATH
16
-
17
-    mkdir -p $GOPATH/src/github.com/dotcloud
18
-    cd $GOPATH/src/github.com/dotcloud
19
-    git clone git@github.com:dotcloud/docker.git
20
-    cd docker
21
-
22
-    go get -v github.com/dotcloud/docker/...
23
-    go install -v github.com/dotcloud/docker/...
24
-
25
-Then run the docker daemon,
26
-
27
-.. code:: bash
28
-
29
-    sudo $GOPATH/bin/docker -d
30
-
31
-Run the ``go install`` command (above) to recompile docker.
32 1
deleted file mode 100644
... ...
@@ -1,14 +0,0 @@
1
-:title: Contributing to Docker
2
-:description: Guides on how to contribute to docker
3
-:keywords: Docker, documentation, developers, contributing, dev environment
4
-
5
-
6
-
7
-Contributing
8
-============
9
-
10
-.. toctree::
11
-   :maxdepth: 1
12
-
13
-   contributing
14
-   devenvironment
15 1
deleted file mode 100644
... ...
@@ -1,34 +0,0 @@
1
-:title: Hello world example
2
-:description: A simple hello world example with Docker
3
-:keywords: docker, example, hello world
4
-
5
-.. _hello_world:
6
-
7
-Hello World
8
-===========
9
-This is the most basic example available for using docker
10
-
11
-This example assumes you have Docker installed and it will download the busybox image and then use that image to run a simple echo command, that will echo hello world back to the console over standard out.
12
-
13
-.. code-block:: bash
14
-
15
-    $ docker run busybox /bin/echo hello world
16
-
17
-**Explanation:**
18
-
19
-- **"docker run"** run a command in a new container 
20
-- **"busybox"** is the image we want to run the command inside of.
21
-- **"/bin/echo"** is the command we want to run in the container
22
-- **"hello world"** is the input for the echo command
23
-
24
-**Video:**
25
-
26
-See the example in action
27
-
28
-.. raw:: html
29
-
30
-    <div style="margin-top:10px;">
31
-      <iframe width="560" height="350" src="http://ascii.io/a/2561/raw" frameborder="0"></iframe>
32
-    </div>
33
-
34
-Continue to the :ref:`hello_world_daemon` example.
35 1
\ No newline at end of file
36 2
deleted file mode 100644
... ...
@@ -1,79 +0,0 @@
1
-:title: Hello world daemon example
2
-:description: A simple hello world daemon example with Docker
3
-:keywords: docker, example, hello world, daemon
4
-
5
-.. _hello_world_daemon:
6
-
7
-Hello World Daemon
8
-==================
9
-The most boring daemon ever written.
10
-
11
-This example assumes you have Docker installed and with the busybox image already imported. We will use the busybox image to run a simple hello world daemon that will just print hello world to standard out every second. It will continue to do this until we stop it.
12
-
13
-**Steps:**
14
-
15
-.. code-block:: bash
16
-
17
-    $ CONTAINER_ID=$(docker run -d busybox /bin/sh -c "while true; do echo hello world; sleep 1; done")
18
-
19
-We are going to run a simple hello world daemon in a new container made from the busybox daemon.
20
-
21
-- **"docker run -d "** run a command in a new container. We pass "-d" so it runs as a daemon.
22
-- **"busybox"** is the image we want to run the command inside of.
23
-- **"/bin/sh -c"** is the command we want to run in the container
24
-- **"while true; do echo hello world; sleep 1; done"** is the mini script we want to run, that will just print hello world once a second until we stop it.
25
-- **$CONTAINER_ID** the output of the run command will return a container id, we can use in future commands to see what is going on with this process.
26
-
27
-.. code-block:: bash
28
-
29
-    $ docker logs $CONTAINER_ID
30
-
31
-Check the logs make sure it is working correctly.
32
-
33
-- **"docker logs**" This will return the logs for a container
34
-- **$CONTAINER_ID** The Id of the container we want the logs for.
35
-
36
-.. code-block:: bash
37
-
38
-    $ docker attach $CONTAINER_ID
39
-
40
-Attach to the container to see the results in realtime.
41
-
42
-- **"docker attach**" This will allow us to attach to a background process to see what is going on.
43
-- **$CONTAINER_ID** The Id of the container we want to attach too.
44
-
45
-.. code-block:: bash
46
-
47
-    $ docker ps
48
-
49
-Check the process list to make sure it is running.
50
-
51
-- **"docker ps"** this shows all running process managed by docker
52
-
53
-.. code-block:: bash
54
-
55
-    $ docker stop $CONTAINER_ID
56
-
57
-Stop the container, since we don't need it anymore.
58
-
59
-- **"docker stop"** This stops a container
60
-- **$CONTAINER_ID** The Id of the container we want to stop.
61
-
62
-.. code-block:: bash
63
-
64
-    $ docker ps
65
-
66
-Make sure it is really stopped.
67
-
68
-
69
-**Video:**
70
-
71
-See the example in action
72
-
73
-.. raw:: html
74
-
75
-    <div style="margin-top:10px;">
76
-      <iframe width="560" height="350" src="http://ascii.io/a/2562/raw" frameborder="0"></iframe>
77
-    </div>
78
-
79
-Continue to the :ref:`python_web_app` example.
80 1
\ No newline at end of file
81 2
deleted file mode 100644
... ...
@@ -1,17 +0,0 @@
1
-:title: Docker Examples
2
-:description: Examples on how to use Docker
3
-:keywords: docker, hello world, examples
4
-
5
-
6
-
7
-Examples
8
-============
9
-
10
-Contents:
11
-
12
-.. toctree::
13
-   :maxdepth: 1
14
-
15
-   hello_world
16
-   hello_world_daemon
17
-   python_web_app
18 1
deleted file mode 100644
... ...
@@ -1,70 +0,0 @@
1
-:title: Python Web app example
2
-:description: Building your own python web app using docker
3
-:keywords: docker, example, python, web app
4
-
5
-.. _python_web_app:
6
-
7
-Building a python web app
8
-=========================
9
-The goal of this example is to show you how you can author your own docker images using a parent image, making changes to it, and then saving the results as a new image. We will do that by making a simple hello flask web application image.
10
-
11
-**Steps:**
12
-
13
-.. code-block:: bash
14
-
15
-    $ docker pull shykes/pybuilder
16
-
17
-We are downloading the "shykes/pybuilder" docker image
18
-
19
-.. code-block:: bash
20
-
21
-    $ URL=http://github.com/shykes/helloflask/archive/master.tar.gz
22
-
23
-We set a URL variable that points to a tarball of a simple helloflask web app
24
-
25
-.. code-block:: bash
26
-
27
-    $ BUILD_JOB=$(docker run -t shykes/pybuilder:1d9aab3737242c65 /usr/local/bin/buildapp $URL)
28
-
29
-Inside of the "shykes/pybuilder" image there is a command called buildapp, we are running that command and passing the $URL variable from step 2 to it, and running the whole thing inside of a new container. BUILD_JOB will be set with the new container_id. "1d9aab3737242c65" came from the output of step 1 when importing image. also available from 'docker images'.
30
-
31
-.. code-block:: bash
32
-
33
-    $ docker attach $BUILD_JOB
34
-    [...]
35
-
36
-We attach to the new container to see what is going on. Ctrl-C to disconnect
37
-
38
-.. code-block:: bash
39
-
40
-    $ BUILD_IMG=$(docker commit $BUILD_JOB _/builds/github.com/hykes/helloflask/master)
41
-
42
-Save the changed we just made in the container to a new image called "_/builds/github.com/hykes/helloflask/master" and save the image id in the BUILD_IMG variable name.
43
-
44
-.. code-block:: bash
45
-
46
-    $ WEB_WORKER=$(docker run -p 5000 $BUILD_IMG /usr/local/bin/runapp)
47
-
48
-Use the new image we just created and create a new container with network port 5000, and return the container id and store in the WEB_WORKER variable.
49
-
50
-.. code-block:: bash
51
-
52
-    $ docker logs $WEB_WORKER
53
-     * Running on http://0.0.0.0:5000/
54
-
55
-view the logs for the new container using the WEB_WORKER variable, and if everything worked as planned you should see the line "Running on http://0.0.0.0:5000/" in the log output.
56
-
57
-
58
-**Video:**
59
-
60
-See the example in action
61
-
62
-.. raw:: html
63
-
64
-    <div style="margin-top:10px;">
65
-      <iframe width="720" height="350" src="http://ascii.io/a/2573/raw" frameborder="0"></iframe>
66
-    </div>
67
-
68
-Continue to the `base commands`_
69
-
70
-.. _base commands: ../commandline/basecommands.html
71 1
deleted file mode 100644
... ...
@@ -1,47 +0,0 @@
1
-FAQ
2
-===
3
-
4
-
5
-Most frequently asked questions.
6
-
7
-**1. How much does Docker cost?**
8
-
9
-Docker is 100% free, it is open source, so you can use it without paying.
10
-
11
-**2. What open source license are you using?**
12
-
13
-We are using the Apache License Version 2.0, see it here: https://github.com/dotcloud/docker/blob/master/LICENSE
14
-
15
-**3. Does Docker run on Mac OS X or Windows?**
16
-
17
-Not at this time, Docker currently only runs on Linux, but you can use VirtualBox to run Docker in a virtual machine on your box, and get the best of both worlds. Check out the MacOSX_ and Windows_ intallation guides.
18
-
19
-**4. How do containers compare to virtual machines?**
20
-
21
-They are complementary. VMs are best used to allocate chunks of hardware resources. Containers operate at the process level, which makes them very lightweight and perfect as a unit of software delivery.
22
-
23
-**5. Can I help by adding some questions and answers?**
24
-
25
-Definitely! You can fork `the repo`_ and edit the documentation sources.
26
-
27
-
28
-**42. Where can I find more answers?**
29
-
30
-You can find more answers on:
31
-
32
-* `IRC: docker on freenode`_
33
-* `Github`_
34
-* `Ask questions on Stackoverflow`_
35
-* `Join the conversation on Twitter`_
36
-
37
-.. _Windows: ../documentation/installation/windows.html
38
-.. _MacOSX: ../documentation/installation/macos.html
39
-.. _the repo: http://www.github.com/dotcloud/docker
40
-.. _IRC\: docker on freenode: irc://chat.freenode.net#docker
41
-.. _Github: http://www.github.com/dotcloud/docker
42
-.. _Ask questions on Stackoverflow: http://stackoverflow.com/search?q=docker
43
-.. _Join the conversation on Twitter: http://twitter.com/getdocker
44
-
45
-
46
-Looking for something else to read? Checkout the :ref:`hello_world` example.
47 1
deleted file mode 100644
... ...
@@ -1,18 +0,0 @@
1
-:title: docker documentation
2
-:description: docker documentation
3
-:keywords:
4
-
5
-Documentation
6
-=============
7
-
8
-This documentation has the following resources:
9
-
10
-.. toctree::
11
-   :maxdepth: 1
12
-
13
-   concepts/index
14
-   installation/index
15
-   examples/index
16
-   contributing/index
17
-   commandline/index
18
-   faq
19 1
\ No newline at end of file
20 2
deleted file mode 100644
... ...
@@ -1,54 +0,0 @@
1
-Amazon EC2
2
-==========
3
-
4
-
5
-
6
-Installation
7
-
8
-Install vagrant from http://www.vagrantup.com/ (or use your package manager)
9
-
10
-clone the repo
11
-
12
-
13
-Docker can be installed with Vagrant on Amazon EC2, using Vagrant 1.1 is required for EC2, but deploying is as simple as:
14
-
15
-::
16
-
17
-    $ export AWS_ACCESS_KEY_ID=xxx \
18
-        AWS_SECRET_ACCESS_KEY=xxx \
19
-        AWS_KEYPAIR_NAME=xxx \
20
-        AWS_SSH_PRIVKEY=xxx
21
-
22
-::
23
-
24
-    $ vagrant plugin install vagrant-aws
25
-
26
-::
27
-
28
-    $ vagrant up --provider=aws
29
-
30
-The environment variables are:
31
-
32
-* ``AWS_ACCESS_KEY_ID`` - The API key used to make requests to AWS
33
-* ``AWS_SECRET_ACCESS_KEY`` - The secret key to make AWS API requests
34
-* ``AWS_KEYPAIR_NAME`` - The ID of the keypair used for this EC2 instance
35
-* ``AWS_SSH_PRIVKEY`` - The path to the private key for the named keypair
36
-
37
-
38
-Make sure your default security zone on AWS includes rights to SSH to your container. Otherwise access will
39
-fail silently.
40
-
41
-
42
-.. code-block:: bash
43
-
44
-    vagrant ssh
45
-
46
-Now you are in the VM, run docker
47
-
48
-.. code-block:: bash
49
-
50
-    docker
51
-
52
-
53
-Continue with the :ref:`hello_world` example.
54 1
\ No newline at end of file
55 2
deleted file mode 100644
56 3
Binary files a/docs/sources/documentation/installation/images/win/_01.gif and /dev/null differ
57 4
deleted file mode 100644
58 5
Binary files a/docs/sources/documentation/installation/images/win/_02.gif and /dev/null differ
59 6
deleted file mode 100644
60 7
Binary files a/docs/sources/documentation/installation/images/win/_06.gif and /dev/null differ
61 8
deleted file mode 100644
62 9
Binary files a/docs/sources/documentation/installation/images/win/cygwin.gif and /dev/null differ
63 10
deleted file mode 100644
64 11
Binary files a/docs/sources/documentation/installation/images/win/putty.gif and /dev/null differ
65 12
deleted file mode 100644
66 13
Binary files a/docs/sources/documentation/installation/images/win/putty_2.gif and /dev/null differ
67 14
deleted file mode 100644
68 15
Binary files a/docs/sources/documentation/installation/images/win/run_02_.gif and /dev/null differ
69 16
deleted file mode 100644
70 17
Binary files a/docs/sources/documentation/installation/images/win/run_03.gif and /dev/null differ
71 18
deleted file mode 100644
72 19
Binary files a/docs/sources/documentation/installation/images/win/run_04.gif and /dev/null differ
73 20
deleted file mode 100644
74 21
Binary files a/docs/sources/documentation/installation/images/win/ssh-config.gif and /dev/null differ
75 22
deleted file mode 100644
... ...
@@ -1,17 +0,0 @@
1
-:title: docker documentation
2
-:description: -- todo: change me
3
-:keywords: todo: change me
4
-
5
-
6
-
7
-Installation
8
-============
9
-
10
-Contents:
11
-
12
-.. toctree::
13
-   :maxdepth: 1
14
-
15
-   ubuntulinux
16
-   macos
17
-   windows
18 1
deleted file mode 100644
... ...
@@ -1,66 +0,0 @@
1
-
2
-Mac OS X and other linux
3
-========================
4
-
5
-  Please note this is a community contributed installation path. The only 'official' installation is using the :ref:`ubuntu_linux` installation path. This version
6
-  may be out of date because it depends on some binaries to be updated and published
7
-
8
-
9
-Requirements
10
-
11
-We currently rely on some Ubuntu-linux specific packages, this will change in the future, but for now we provide a
12
-streamlined path to install Virtualbox with a Ubuntu 12.10 image using Vagrant.
13
-
14
-1. Install virtualbox from https://www.virtualbox.org/ (or use your package manager)
15
-2. Install vagrant from http://www.vagrantup.com/ (or use your package manager)
16
-3. Install git if you had not installed it before, check if it is installed by running
17
-   ``git`` in a terminal window
18
-
19
-We recommend having at least about 2Gb of free disk space and 2Gb RAM (or more).
20
-
21
-Installation
22
-
23
-1. Fetch the docker sources
24
-
25
-.. code-block:: bash
26
-
27
-   git clone https://github.com/dotcloud/docker.git
28
-
29
-2. Run vagrant from the sources directory
30
-
31
-.. code-block:: bash
32
-
33
-    vagrant up
34
-
35
-Vagrant will:
36
-
37
-* Download the Quantal64 base ubuntu virtual machine image from get.docker.io/
38
-* Boot this image in virtualbox
39
-
40
-Then it will use Puppet to perform an initial setup in this machine:
41
-
42
-* Download & untar the most recent docker binary tarball to vagrant homedir.
43
-* Debootstrap to /var/lib/docker/images/ubuntu.
44
-* Install & run dockerd as service.
45
-* Put docker in /usr/local/bin.
46
-* Put latest Go toolchain in /usr/local/go.
47
-
48
-You now have a Ubuntu Virtual Machine running with docker pre-installed.
49
-
50
-To access the VM and use Docker, Run ``vagrant ssh`` from the same directory as where you ran
51
-``vagrant up``. Vagrant will make sure to connect you to the correct VM.
52
-
53
-.. code-block:: bash
54
-
55
-    vagrant ssh
56
-
57
-Now you are in the VM, run docker
58
-
59
-.. code-block:: bash
60
-
61
-    docker
62
-
63
-
64
-Continue with the :ref:`hello_world` example.
65 1
deleted file mode 100644
... ...
@@ -1,48 +0,0 @@
1
-.. _ubuntu_linux:
2
-
3
-Ubuntu Linux
4
-============
5
-
6
-  **Please note this project is currently under heavy development. It should not be used in production.**
7
-
8
-
9
-
10
-Installing on Ubuntu 12.04 and 12.10
11
-
12
-Right now, the officially supported distributions are:
13
-
14
-Ubuntu 12.04 (precise LTS)
15
-Ubuntu 12.10 (quantal)
16
-Docker probably works on other distributions featuring a recent kernel, the AUFS patch, and up-to-date lxc. However this has not been tested.
17
-
18
-Install dependencies:
19
-
20
-::
21
-
22
-    sudo apt-get install lxc wget bsdtar curl
23
-    sudo apt-get install linux-image-extra-`uname -r`
24
-
25
-The linux-image-extra package is needed on standard Ubuntu EC2 AMIs in order to install the aufs kernel module.
26
-
27
-Install the latest docker binary:
28
-
29
-::
30
-
31
-    wget http://get.docker.io/builds/$(uname -s)/$(uname -m)/docker-master.tgz
32
-    tar -xf docker-master.tgz
33
-
34
-Run your first container!
35
-
36
-::
37
-
38
-    cd docker-master
39
-
40
-::
41
-
42
-    sudo ./docker run -i -t base /bin/bash
43
-
44
-Consider adding docker to your PATH for simplicity.
45
-
46
-
47
-Continue with the :ref:`hello_world` example.
48 1
\ No newline at end of file
49 2
deleted file mode 100644
... ...
@@ -1,167 +0,0 @@
1
-:title: Requirements and Installation on Windows
2
-:description: Docker's tutorial to run docker on Windows
3
-:keywords: Docker, Docker documentation, Windows, requirements, virtualbox, vagrant, git, ssh, putty, cygwin
4
-
5
-
6
-Windows
7
-=========
8
-
9
-  Please note this is a community contributed installation path. The only 'official' installation is using the :ref:`ubuntu_linux` installation path. This version
10
-  may be out of date because it depends on some binaries to be updated and published
11
-
12
-
13
-
14
-Requirements
15
-
16
-1. Install virtualbox from https://www.virtualbox.org - or follow this tutorial__
17
-
18
-.. __: http://www.slideshare.net/julienbarbier42/install-virtualbox-on-windows-7
19
-
20
-2. Install vagrant from http://www.vagrantup.com - or follow this tutorial__
21
-
22
-.. __: http://www.slideshare.net/julienbarbier42/install-vagrant-on-windows-7
23
-
24
-3. Install git with ssh from http://git-scm.com/downloads - or follow this tutorial__
25
-
26
-.. __: http://www.slideshare.net/julienbarbier42/install-git-with-ssh-on-windows-7
27
-
28
-
29
-We recommend having at least 2Gb of free disk space and 2Gb of RAM (or more).
30
-
31
-Opening a command prompt
32
-
33
-First open a cmd prompt. Press Windows key and then press “R” key. This will open the RUN dialog box for you. Type “cmd” and press Enter. Or you can click on Start, type “cmd” in the “Search programs and files” field, and click on cmd.exe.
34
-
35
-.. image:: images/win/_01.gif
36
-   :alt: Git install
37
-   :align: center
38
-
39
-This should open a cmd prompt window.
40
-
41
-.. image:: images/win/_02.gif
42
-   :alt: run docker
43
-   :align: center
44
-
45
-Alternatively, you can also use a Cygwin terminal, or Git Bash (or any other command line program you are usually using). The next steps would be the same.
46
-
47
-Launch an Ubuntu virtual server
48
-
49
-Let’s download and run an Ubuntu image with docker binaries already installed.
50
-
51
-.. code-block:: bash
52
-
53
-	git clone https://github.com/dotcloud/docker.git 
54
-	cd docker
55
-	vagrant up
56
-
57
-.. image:: images/win/run_02_.gif
58
-   :alt: run docker
59
-   :align: center
60
-
61
-Congratulations! You are running an Ubuntu server with docker installed on it. You do not see it though, because it is running in the background.
62
-
63
-Log onto your Ubuntu server
64
-
65
-Let’s log into your Ubuntu server now. To do so you have two choices:
66
-
67
-- Use Vagrant on Windows command prompt OR
68
-- Use SSH
69
-
70
-Using Vagrant on Windows Command Prompt
71
-```````````````````````````````````````
72
-
73
-Run the following command
74
-
75
-.. code-block:: bash
76
-
77
-	vagrant ssh
78
-
79
-You may see an error message starting with “`ssh` executable not found”. In this case it means that you do not have SSH in your PATH. If you do not have SSH in your PATH you can set it up with the “set” command. For instance, if your ssh.exe is in the folder named “C:\Program Files (x86)\Git\bin”, then you can run the following command:
80
-
81
-.. code-block:: bash
82
-
83
-	set PATH=%PATH%;C:\Program Files (x86)\Git\bin
84
-
85
-.. image:: images/win/run_03.gif
86
-   :alt: run docker
87
-   :align: center
88
-
89
-Using SSH
90
-`````````
91
-
92
-First step is to get the IP and port of your Ubuntu server. Simply run:
93
-
94
-.. code-block:: bash
95
-
96
-	vagrant ssh-config 
97
-
98
-You should see an output with HostName and Port information. In this example, HostName is 127.0.0.1 and port is 2222. And the User is “vagrant”. The password is not shown, but it is also “vagrant”.
99
-
100
-.. image:: images/win/ssh-config.gif
101
-   :alt: run docker
102
-   :align: center
103
-
104
-You can now use this information for connecting via SSH to your server. To do so you can:
105
-
106
-- Use putty.exe OR
107
-- Use SSH from a terminal
108
-
109
-Use putty.exe
110
-'''''''''''''
111
-
112
-You can download putty.exe from this page http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
113
-Launch putty.exe and simply enter the information you got from last step.
114
-
115
-.. image:: images/win/putty.gif
116
-   :alt: run docker
117
-   :align: center
118
-
119
-Open, and enter user = vagrant and password = vagrant.
120
-
121
-.. image:: images/win/putty_2.gif
122
-   :alt: run docker
123
-   :align: center
124
-
125
-SSH from a terminal
126
-'''''''''''''''''''
127
-
128
-You can also run this command on your favorite terminal (windows prompt, cygwin, git-bash, …). Make sure to adapt the IP and port from what you got from the vagrant ssh-config command.
129
-
130
-.. code-block:: bash
131
-
132
-	ssh vagrant@127.0.0.1 –p 2222
133
-
134
-Enter user = vagrant and password = vagrant.
135
-
136
-.. image:: images/win/cygwin.gif
137
-   :alt: run docker
138
-   :align: center
139
-
140
-Congratulations, you are now logged onto your Ubuntu Server, running on top of your Windows machine !
141
-
142
-Running Docker
143
-
144
-First you have to be root in order to run docker. Simply run the following command:
145
-
146
-.. code-block:: bash
147
-
148
-	sudo su
149
-
150
-You are now ready for the docker’s “hello world” example. Run
151
-
152
-.. code-block:: bash
153
-
154
-	docker run busybox echo hello world
155
-
156
-.. image:: images/win/run_04.gif
157
-   :alt: run docker
158
-   :align: center
159
-
160
-All done!
161
-
162
-Now you can continue with the :ref:`hello_world` example.
163 1
new file mode 100644
... ...
@@ -0,0 +1,50 @@
0
+:title: Hello world example
1
+:description: A simple hello world example with Docker
2
+:keywords: docker, example, hello world
3
+
4
+.. _hello_world:
5
+
6
+Hello World
7
+===========
8
+This is the most basic example available for using docker
9
+
10
+This example assumes you have Docker installed.
11
+
12
+
13
+Download the base container
14
+
15
+.. code-block:: bash
16
+
17
+    # Download a base image
18
+    docker pull base
19
+
20
+The *base* image is a minimal *ubuntu* based container, alternatively you can select *busybox*, a bare
21
+minimal linux system. The images are retrieved from the docker repository.
22
+
23
+
24
+.. code-block:: bash
25
+
26
+    #run a simple echo command, that will echo hello world back to the console over standard out.
27
+    docker run base /bin/echo hello world
28
+
29
+**Explanation:**
30
+
31
+- **"docker run"** run a command in a new container 
32
+- **"base"** is the image we want to run the command inside of.
33
+- **"/bin/echo"** is the command we want to run in the container
34
+- **"hello world"** is the input for the echo command
35
+
36
+
37
+
38
+**Video:**
39
+
40
+See the example in action
41
+
42
+.. raw:: html
43
+
44
+    <div style="margin-top:10px;">
45
+      <iframe width="560" height="350" src="http://ascii.io/a/2603/raw" frameborder="0"></iframe>
46
+    </div>
47
+
48
+
49
+Continue to the :ref:`hello_world_daemon` example.
0 50
\ No newline at end of file
1 51
new file mode 100644
... ...
@@ -0,0 +1,89 @@
0
+:title: Hello world daemon example
1
+:description: A simple hello world daemon example with Docker
2
+:keywords: docker, example, hello world, daemon
3
+
4
+.. _hello_world_daemon:
5
+
6
+Hello World Daemon
7
+==================
8
+The most boring daemon ever written.
9
+
10
+This example assumes you have Docker installed and with the base image already imported ``docker pull base``.
11
+We will use the base image to run a simple hello world daemon that will just print hello world to standard
12
+out every second. It will continue to do this until we stop it.
13
+
14
+**Steps:**
15
+
16
+.. code-block:: bash
17
+
18
+    $ CONTAINER_ID=$(docker run -d base /bin/sh -c "while true; do echo hello world; sleep 1; done")
19
+
20
+We are going to run a simple hello world daemon in a new container made from the busybox daemon.
21
+
22
+- **"docker run -d "** run a command in a new container. We pass "-d" so it runs as a daemon.
23
+- **"base"** is the image we want to run the command inside of.
24
+- **"/bin/sh -c"** is the command we want to run in the container
25
+- **"while true; do echo hello world; sleep 1; done"** is the mini script we want to run, that will just print hello world once a second until we stop it.
26
+- **$CONTAINER_ID** the output of the run command will return a container id, we can use in future commands to see what is going on with this process.
27
+
28
+.. code-block:: bash
29
+
30
+    $ docker logs $CONTAINER_ID
31
+
32
+Check the logs make sure it is working correctly.
33
+
34
+- **"docker logs**" This will return the logs for a container
35
+- **$CONTAINER_ID** The Id of the container we want the logs for.
36
+
37
+.. code-block:: bash
38
+
39
+    docker attach $CONTAINER_ID
40
+
41
+Attach to the container to see the results in realtime.
42
+
43
+- **"docker attach**" This will allow us to attach to a background process to see what is going on.
44
+- **$CONTAINER_ID** The Id of the container we want to attach too.
45
+
46
+.. code-block:: bash
47
+
48
+    docker ps
49
+
50
+Check the process list to make sure it is running.
51
+
52
+- **"docker ps"** this shows all running process managed by docker
53
+
54
+.. code-block:: bash
55
+
56
+    $ docker stop $CONTAINER_ID
57
+
58
+Stop the container, since we don't need it anymore.
59
+
60
+- **"docker stop"** This stops a container
61
+- **$CONTAINER_ID** The Id of the container we want to stop.
62
+
63
+.. code-block:: bash
64
+
65
+    docker ps
66
+
67
+Make sure it is really stopped.
68
+
69
+
70
+**Video:**
71
+
72
+See the example in action
73
+
74
+.. raw:: html
75
+
76
+    <div style="margin-top:10px;">
77
+      <iframe width="560" height="350" src="http://ascii.io/a/2562/raw" frameborder="0"></iframe>
78
+    </div>
79
+
80
+Continue to the :ref:`python_web_app` example.
81
+
82
+
83
+Notes:
84
+------
85
+
86
+- **Docker daemon** The docker daemon is started by ``sudo docker -d``, Vagrant may have started
87
+  the Docker daemon for you, but you will need to restart it this way if it was terminated. Otherwise
88
+  it may give you ``Couldn't create Tag store: open /var/lib/docker/repositories: permission denied``
0 89
new file mode 100644
... ...
@@ -0,0 +1,17 @@
0
+:title: Docker Examples
1
+:description: Examples on how to use Docker
2
+:keywords: docker, hello world, examples
3
+
4
+
5
+
6
+Examples
7
+============
8
+
9
+Contents:
10
+
11
+.. toctree::
12
+   :maxdepth: 1
13
+
14
+   hello_world
15
+   hello_world_daemon
16
+   python_web_app
0 17
new file mode 100644
... ...
@@ -0,0 +1,70 @@
0
+:title: Python Web app example
1
+:description: Building your own python web app using docker
2
+:keywords: docker, example, python, web app
3
+
4
+.. _python_web_app:
5
+
6
+Building a python web app
7
+=========================
8
+The goal of this example is to show you how you can author your own docker images using a parent image, making changes to it, and then saving the results as a new image. We will do that by making a simple hello flask web application image.
9
+
10
+**Steps:**
11
+
12
+.. code-block:: bash
13
+
14
+    $ docker pull shykes/pybuilder
15
+
16
+We are downloading the "shykes/pybuilder" docker image
17
+
18
+.. code-block:: bash
19
+
20
+    $ URL=http://github.com/shykes/helloflask/archive/master.tar.gz
21
+
22
+We set a URL variable that points to a tarball of a simple helloflask web app
23
+
24
+.. code-block:: bash
25
+
26
+    $ BUILD_JOB=$(docker run -t shykes/pybuilder:1d9aab3737242c65 /usr/local/bin/buildapp $URL)
27
+
28
+Inside of the "shykes/pybuilder" image there is a command called buildapp, we are running that command and passing the $URL variable from step 2 to it, and running the whole thing inside of a new container. BUILD_JOB will be set with the new container_id. "1d9aab3737242c65" came from the output of step 1 when importing image. also available from 'docker images'.
29
+
30
+.. code-block:: bash
31
+
32
+    $ docker attach $BUILD_JOB
33
+    [...]
34
+
35
+We attach to the new container to see what is going on. Ctrl-C to disconnect
36
+
37
+.. code-block:: bash
38
+
39
+    $ BUILD_IMG=$(docker commit $BUILD_JOB _/builds/github.com/hykes/helloflask/master)
40
+
41
+Save the changed we just made in the container to a new image called "_/builds/github.com/hykes/helloflask/master" and save the image id in the BUILD_IMG variable name.
42
+
43
+.. code-block:: bash
44
+
45
+    $ WEB_WORKER=$(docker run -p 5000 $BUILD_IMG /usr/local/bin/runapp)
46
+
47
+Use the new image we just created and create a new container with network port 5000, and return the container id and store in the WEB_WORKER variable.
48
+
49
+.. code-block:: bash
50
+
51
+    $ docker logs $WEB_WORKER
52
+     * Running on http://0.0.0.0:5000/
53
+
54
+view the logs for the new container using the WEB_WORKER variable, and if everything worked as planned you should see the line "Running on http://0.0.0.0:5000/" in the log output.
55
+
56
+
57
+**Video:**
58
+
59
+See the example in action
60
+
61
+.. raw:: html
62
+
63
+    <div style="margin-top:10px;">
64
+      <iframe width="720" height="350" src="http://ascii.io/a/2573/raw" frameborder="0"></iframe>
65
+    </div>
66
+
67
+Continue to the `base commands`_
68
+
69
+.. _base commands: ../commandline/basecommands.html
0 70
new file mode 100644
... ...
@@ -0,0 +1,47 @@
0
+FAQ
1
+===
2
+
3
+
4
+Most frequently asked questions.
5
+--------------------------------
6
+
7
+**1. How much does Docker cost?**
8
+
9
+Docker is 100% free, it is open source, so you can use it without paying.
10
+
11
+**2. What open source license are you using?**
12
+
13
+We are using the Apache License Version 2.0, see it here: https://github.com/dotcloud/docker/blob/master/LICENSE
14
+
15
+**3. Does Docker run on Mac OS X or Windows?**
16
+
17
+Not at this time, Docker currently only runs on Linux, but you can use VirtualBox to run Docker in a virtual machine on your box, and get the best of both worlds. Check out the MacOSX_ and Windows_ intallation guides.
18
+
19
+**4. How do containers compare to virtual machines?**
20
+
21
+They are complementary. VMs are best used to allocate chunks of hardware resources. Containers operate at the process level, which makes them very lightweight and perfect as a unit of software delivery.
22
+
23
+**5. Can I help by adding some questions and answers?**
24
+
25
+Definitely! You can fork `the repo`_ and edit the documentation sources.
26
+
27
+
28
+**42. Where can I find more answers?**
29
+
30
+You can find more answers on:
31
+
32
+* `IRC: docker on freenode`_
33
+* `Github`_
34
+* `Ask questions on Stackoverflow`_
35
+* `Join the conversation on Twitter`_
36
+
37
+.. _Windows: ../documentation/installation/windows.html
38
+.. _MacOSX: ../documentation/installation/macos.html
39
+.. _the repo: http://www.github.com/dotcloud/docker
40
+.. _IRC\: docker on freenode: irc://chat.freenode.net#docker
41
+.. _Github: http://www.github.com/dotcloud/docker
42
+.. _Ask questions on Stackoverflow: http://stackoverflow.com/search?q=docker
43
+.. _Join the conversation on Twitter: http://twitter.com/getdocker
44
+
45
+
46
+Looking for something else to read? Checkout the :ref:`hello_world` example.
0 47
deleted file mode 100644
... ...
@@ -1,204 +0,0 @@
1
-<!DOCTYPE html>
2
-<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
3
-<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
4
-<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
5
-<!--[if gt IE 8]><!-->
6
-<html class="no-js" xmlns="http://www.w3.org/1999/html" xmlns="http://www.w3.org/1999/html"> <!--<![endif]-->
7
-<head>
8
-    <meta charset="utf-8">
9
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
10
-    <title>Docker - the Linux container runtime</title>
11
-
12
-    <meta name="description" content="Docker encapsulates heterogeneous payloads in standard containers">
13
-    <meta name="viewport" content="width=device-width">
14
-
15
-    <!-- twitter bootstrap -->
16
-    <link rel="stylesheet" href="_static/css/bootstrap.min.css">
17
-    <link rel="stylesheet" href="_static/css/bootstrap-responsive.min.css">
18
-
19
-    <!-- main style file -->
20
-    <link rel="stylesheet" href="_static/css/main.css">
21
-
22
-    <!-- vendor scripts -->
23
-    <script src="_static/js/vendor/jquery-1.9.1.min.js" type="text/javascript" ></script>
24
-    <script src="_static/js/vendor/modernizr-2.6.2-respond-1.1.0.min.js" type="text/javascript" ></script>
25
-
26
-</head>
27
-
28
-
29
-<body>
30
-
31
-<div class="navbar navbar-fixed-top">
32
-    <div class="navbar-dotcloud">
33
-        <div class="container" style="text-align: center;">
34
-
35
-            <div style="float: right" class="pull-right">
36
-                <ul class="nav">
37
-                    <li><a href="index.html">Introduction</a></li>
38
-                    <li class="active"><a href="gettingstarted.html">Getting started</a></li>
39
-                    <li class=""><a href="documentation/concepts/containers.html">Documentation</a></li>
40
-                </ul>
41
-
42
-                <div class="social links" style="float: right; margin-top: 14px; margin-left: 12px">
43
-                    <a class="twitter" href="http://twitter.com/getdocker">Twitter</a>
44
-                    <a class="github" href="https://github.com/dotcloud/docker/">GitHub</a>
45
-                </div>
46
-            </div>
47
-
48
-            <div style="margin-left: -12px; float: left;">
49
-                <a href="index.html"><img style="margin-top: 12px; height: 38px" src="_static/img/docker-letters-logo.gif"></a>
50
-            </div>
51
-        </div>
52
-    </div>
53
-</div>
54
-
55
-
56
-<div class="container">
57
-    <div class="row">
58
-        <div class="span12 titlebar"><h1 class="pageheader">GETTING STARTED</h1>
59
-        </div>
60
-    </div>
61
-
62
-</div>
63
-
64
-<div class="container">
65
-    <div class="alert alert-info">
66
-	    <strong>Docker is still under heavy development.</strong> It should not yet be used in production. Check <a href="http://github.com/dotcloud/docker">the repo</a> for recent progress.
67
-    </div>
68
-    <div class="row">
69
-        <div class="span6">
70
-            <section class="contentblock">
71
-                <h2>
72
-                    <a name="installing-on-ubuntu-1204-and-1210" class="anchor" href="#installing-on-ubuntu-1204-and-1210"><span class="mini-icon mini-icon-link"></span>
73
-                    </a>Installing on Ubuntu</h2>
74
-                <ol>
75
-                    <li>
76
-                        <p>Install dependencies:</p>
77
-
78
-                        <div class="highlight">
79
-                        <pre>sudo apt-get install lxc wget bsdtar curl</pre>
80
-                        <pre>sudo apt-get install linux-image-extra-<span class="sb">`</span>uname -r<span class="sb">`</span></pre></div>
81
-
82
-                        <p>The <code>linux-image-extra</code> package is needed on standard Ubuntu EC2 AMIs in order to install the aufs kernel module.</p>
83
-                    </li>
84
-                    <li>
85
-                        <p>Install the latest docker binary:</p>
86
-
87
-                        <div class="highlight">
88
-                        <pre>wget http://get.docker.io/builds/<span class="k">$(</span>uname -s<span class="k">)</span>/<span class="k">$(</span>uname -m<span class="k">)</span>/docker-master.tgz</pre>
89
-                        <pre>tar -xf docker-master.tgz</pre>
90
-                        </div>
91
-                    </li>
92
-                    <li>
93
-                        <p>Run your first container!</p>
94
-
95
-                        <div class="highlight"><pre><span class="nb">cd </span>docker-master</pre>
96
-                        <pre>sudo ./docker run -i -t base /bin/bash</pre>
97
-                        </div>
98
-                        <p>Done!</p>
99
-                        <p>Consider adding docker to your <code>PATH</code> for simplicity.</p>
100
-                    </li>
101
-
102
-                    Continue with the <a href="documentation/examples/hello_world.html#hello-world">Hello world</a> example.
103
-                </ol>
104
-            </section>
105
-
106
-            <section class="contentblock">
107
-                <h2>Contributing to Docker</h2>
108
-
109
-                <p>Want to hack on Docker? Awesome! We have some <a href="/documentation/contributing/contributing.html">instructions to get you started</a>. They are probably not perfect, please let us know if anything feels wrong or incomplete.</p>
110
-            </section>
111
-
112
-        </div>
113
-        <div class="span6">
114
-            <section class="contentblock">
115
-                <h2>Quick install on other operating systems</h2>
116
-                <p><strong>For other operating systems we recommend and provide a streamlined install with virtualbox,
117
-                    vagrant and an Ubuntu virtual machine.</strong></p>
118
-
119
-                <ul>
120
-                    <li><a href="documentation/installation/macos.html">Mac OS X and other linuxes</a></li>
121
-                    <li><a href="documentation/installation/windows.html">Windows</a></li>
122
-                </ul>
123
-
124
-            </section>
125
-
126
-            <section class="contentblock">
127
-                <h2>More resources</h2>
128
-                <ul>
129
-                    <li><a href="irc://chat.freenode.net#docker">IRC: docker on freenode</a></li>
130
-                    <li><a href="http://www.github.com/dotcloud/docker">Github</a></li>
131
-                    <li><a href="http://stackoverflow.com/tags/docker/">Ask questions on Stackoverflow</a></li>
132
-                    <li><a href="http://twitter.com/getdocker/">Join the conversation on Twitter</a></li>
133
-                </ul>
134
-            </section>
135
-
136
-
137
-            <section class="contentblock">
138
-                <div id="wufoo-z7x3p3">
139
-                    Fill out my <a href="http://dotclouddocker.wufoo.com/forms/z7x3p3">online form</a>.
140
-                </div>
141
-                <script type="text/javascript">var z7x3p3;(function(d, t) {
142
-                    var s = d.createElement(t), options = {
143
-                        'userName':'dotclouddocker',
144
-                        'formHash':'z7x3p3',
145
-                        'autoResize':true,
146
-                        'height':'577',
147
-                        'async':true,
148
-                        'header':'show'};
149
-                    s.src = ('https:' == d.location.protocol ? 'https://' : 'http://') + 'wufoo.com/scripts/embed/form.js';
150
-                    s.onload = s.onreadystatechange = function() {
151
-                        var rs = this.readyState; if (rs) if (rs != 'complete') if (rs != 'loaded') return;
152
-                        try { z7x3p3 = new WufooForm();z7x3p3.initialize(options);z7x3p3.display(); } catch (e) {}};
153
-                    var scr = d.getElementsByTagName(t)[0], par = scr.parentNode; par.insertBefore(s, scr);
154
-                })(document, 'script');</script>
155
-            </section>
156
-
157
-        </div>
158
-    </div>
159
-</div>
160
-
161
-
162
-<div class="container">
163
-    <footer id="footer" class="footer">
164
-        <div class="row">
165
-            <div class="span12 social">
166
-
167
-                Docker is a project by <a href="http://www.dotcloud.com">dotCloud</a>
168
-
169
-            </div>
170
-        </div>
171
-
172
-        <div class="row">
173
-            <div class="emptyspace" style="height: 40px">
174
-
175
-            </div>
176
-        </div>
177
-
178
-    </footer>
179
-</div>
180
-
181
-
182
-<!-- bootstrap javascipts -->
183
-<script src="_static/js/vendor/bootstrap.min.js" type="text/javascript"></script>
184
-
185
-<!-- Google analytics -->
186
-<script type="text/javascript">
187
-
188
-    var _gaq = _gaq || [];
189
-    _gaq.push(['_setAccount', 'UA-6096819-11']);
190
-    _gaq.push(['_setDomainName', 'docker.io']);
191
-    _gaq.push(['_setAllowLinker', true]);
192
-    _gaq.push(['_trackPageview']);
193
-
194
-    (function() {
195
-        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
196
-        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
197
-        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
198
-    })();
199
-
200
-</script>
201
-
202
-
203
-</body>
204
-</html>
205 1
new file mode 100644
... ...
@@ -0,0 +1,204 @@
0
+<!DOCTYPE html>
1
+<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
2
+<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
3
+<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
4
+<!--[if gt IE 8]><!-->
5
+<html class="no-js" xmlns="http://www.w3.org/1999/html" xmlns="http://www.w3.org/1999/html"> <!--<![endif]-->
6
+<head>
7
+    <meta charset="utf-8">
8
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
9
+    <title>Docker - the Linux container runtime</title>
10
+
11
+    <meta name="description" content="Docker encapsulates heterogeneous payloads in standard containers">
12
+    <meta name="viewport" content="width=device-width">
13
+
14
+    <!-- twitter bootstrap -->
15
+    <link rel="stylesheet" href="../_static/css/bootstrap.min.css">
16
+    <link rel="stylesheet" href="../_static/css/bootstrap-responsive.min.css">
17
+
18
+    <!-- main style file -->
19
+    <link rel="stylesheet" href="../_static/css/main.css">
20
+
21
+    <!-- vendor scripts -->
22
+    <script src="../_static/js/vendor/jquery-1.9.1.min.js" type="text/javascript" ></script>
23
+    <script src="../_static/js/vendor/modernizr-2.6.2-respond-1.1.0.min.js" type="text/javascript" ></script>
24
+
25
+</head>
26
+
27
+
28
+<body>
29
+
30
+<div class="navbar navbar-fixed-top">
31
+    <div class="navbar-dotcloud">
32
+        <div class="container" style="text-align: center;">
33
+
34
+            <div style="float: right" class="pull-right">
35
+                <ul class="nav">
36
+                    <li><a href="../">Introduction</a></li>
37
+                    <li class="active"><a href="./">Getting started</a></li>
38
+                    <li class=""><a href="http://docs.docker.io/en/latest/concepts/containers/">Documentation</a></li>
39
+                </ul>
40
+
41
+                <div class="social links" style="float: right; margin-top: 14px; margin-left: 12px">
42
+                    <a class="twitter" href="http://twitter.com/getdocker">Twitter</a>
43
+                    <a class="github" href="https://github.com/dotcloud/docker/">GitHub</a>
44
+                </div>
45
+            </div>
46
+
47
+            <div style="margin-left: -12px; float: left;">
48
+                <a href="../index.html"><img style="margin-top: 12px; height: 38px" src="../_static/img/docker-letters-logo.gif"></a>
49
+            </div>
50
+        </div>
51
+    </div>
52
+</div>
53
+
54
+
55
+<div class="container">
56
+    <div class="row">
57
+        <div class="span12 titlebar"><h1 class="pageheader">GETTING STARTED</h1>
58
+        </div>
59
+    </div>
60
+
61
+</div>
62
+
63
+<div class="container">
64
+    <div class="alert alert-info">
65
+	    <strong>Docker is still under heavy development.</strong> It should not yet be used in production. Check <a href="http://github.com/dotcloud/docker">the repo</a> for recent progress.
66
+    </div>
67
+    <div class="row">
68
+        <div class="span6">
69
+            <section class="contentblock">
70
+                <h2>
71
+                    <a name="installing-on-ubuntu-1204-and-1210" class="anchor" href="#installing-on-ubuntu-1204-and-1210"><span class="mini-icon mini-icon-link"></span>
72
+                    </a>Installing on Ubuntu</h2>
73
+                <ol>
74
+                    <li>
75
+                        <p>Install dependencies:</p>
76
+
77
+                        <div class="highlight">
78
+                        <pre>sudo apt-get install lxc wget bsdtar curl</pre>
79
+                        <pre>sudo apt-get install linux-image-extra-<span class="sb">`</span>uname -r<span class="sb">`</span></pre></div>
80
+
81
+                        <p>The <code>linux-image-extra</code> package is needed on standard Ubuntu EC2 AMIs in order to install the aufs kernel module.</p>
82
+                    </li>
83
+                    <li>
84
+                        <p>Install the latest docker binary:</p>
85
+
86
+                        <div class="highlight">
87
+                        <pre>wget http://get.docker.io/builds/<span class="k">$(</span>uname -s<span class="k">)</span>/<span class="k">$(</span>uname -m<span class="k">)</span>/docker-master.tgz</pre>
88
+                        <pre>tar -xf docker-master.tgz</pre>
89
+                        </div>
90
+                    </li>
91
+                    <li>
92
+                        <p>Run your first container!</p>
93
+
94
+                        <div class="highlight"><pre><span class="nb">cd </span>docker-master</pre>
95
+                        <pre>sudo ./docker run -i -t base /bin/bash</pre>
96
+                        </div>
97
+                        <p>Done!</p>
98
+                        <p>Consider adding docker to your <code>PATH</code> for simplicity.</p>
99
+                    </li>
100
+
101
+                    Continue with the <a href="examples/hello_world.html#hello-world">Hello world</a> example.
102
+                </ol>
103
+            </section>
104
+
105
+            <section class="contentblock">
106
+                <h2>Contributing to Docker</h2>
107
+
108
+                <p>Want to hack on Docker? Awesome! We have some <a href="/documentation/contributing/contributing.html">instructions to get you started</a>. They are probably not perfect, please let us know if anything feels wrong or incomplete.</p>
109
+            </section>
110
+
111
+        </div>
112
+        <div class="span6">
113
+            <section class="contentblock">
114
+                <h2>Quick install on other operating systems</h2>
115
+                <p><strong>For other operating systems we recommend and provide a streamlined install with virtualbox,
116
+                    vagrant and an Ubuntu virtual machine.</strong></p>
117
+
118
+                <ul>
119
+                    <li><a href="installation/macos.html">Mac OS X and other linuxes</a></li>
120
+                    <li><a href="installation/windows.html">Windows</a></li>
121
+                </ul>
122
+
123
+            </section>
124
+
125
+            <section class="contentblock">
126
+                <h2>More resources</h2>
127
+                <ul>
128
+                    <li><a href="irc://chat.freenode.net#docker">IRC: docker on freenode</a></li>
129
+                    <li><a href="http://www.github.com/dotcloud/docker">Github</a></li>
130
+                    <li><a href="http://stackoverflow.com/tags/docker/">Ask questions on Stackoverflow</a></li>
131
+                    <li><a href="http://twitter.com/getdocker/">Join the conversation on Twitter</a></li>
132
+                </ul>
133
+            </section>
134
+
135
+
136
+            <section class="contentblock">
137
+                <div id="wufoo-z7x3p3">
138
+                    Fill out my <a href="http://dotclouddocker.wufoo.com/forms/z7x3p3">online form</a>.
139
+                </div>
140
+                <script type="text/javascript">var z7x3p3;(function(d, t) {
141
+                    var s = d.createElement(t), options = {
142
+                        'userName':'dotclouddocker',
143
+                        'formHash':'z7x3p3',
144
+                        'autoResize':true,
145
+                        'height':'577',
146
+                        'async':true,
147
+                        'header':'show'};
148
+                    s.src = ('https:' == d.location.protocol ? 'https://' : 'http://') + 'wufoo.com/scripts/embed/form.js';
149
+                    s.onload = s.onreadystatechange = function() {
150
+                        var rs = this.readyState; if (rs) if (rs != 'complete') if (rs != 'loaded') return;
151
+                        try { z7x3p3 = new WufooForm();z7x3p3.initialize(options);z7x3p3.display(); } catch (e) {}};
152
+                    var scr = d.getElementsByTagName(t)[0], par = scr.parentNode; par.insertBefore(s, scr);
153
+                })(document, 'script');</script>
154
+            </section>
155
+
156
+        </div>
157
+    </div>
158
+</div>
159
+
160
+
161
+<div class="container">
162
+    <footer id="footer" class="footer">
163
+        <div class="row">
164
+            <div class="span12 social">
165
+
166
+                Docker is a project by <a href="http://www.dotcloud.com">dotCloud</a>
167
+
168
+            </div>
169
+        </div>
170
+
171
+        <div class="row">
172
+            <div class="emptyspace" style="height: 40px">
173
+
174
+            </div>
175
+        </div>
176
+
177
+    </footer>
178
+</div>
179
+
180
+
181
+<!-- bootstrap javascipts -->
182
+<script src="../_static/js/vendor/bootstrap.min.js" type="text/javascript"></script>
183
+
184
+<!-- Google analytics -->
185
+<script type="text/javascript">
186
+
187
+    var _gaq = _gaq || [];
188
+    _gaq.push(['_setAccount', 'UA-6096819-11']);
189
+    _gaq.push(['_setDomainName', 'docker.io']);
190
+    _gaq.push(['_setAllowLinker', true]);
191
+    _gaq.push(['_trackPageview']);
192
+
193
+    (function() {
194
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
195
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
196
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
197
+    })();
198
+
199
+</script>
200
+
201
+
202
+</body>
203
+</html>
... ...
@@ -23,8 +23,6 @@
23 23
     <script src="_static/js/vendor/jquery-1.9.1.min.js" type="text/javascript" ></script>
24 24
     <script src="_static/js/vendor/modernizr-2.6.2-respond-1.1.0.min.js" type="text/javascript" ></script>
25 25
 
26
-
27
-
28 26
 </head>
29 27
 
30 28
 
... ...
@@ -36,9 +34,9 @@
36 36
 
37 37
             <div class="pull-right" >
38 38
                 <ul class="nav">
39
-                    <li class="active"><a href="index.html">Introduction</a></li>
40
-                    <li ><a href="gettingstarted.html">Getting started</a></li>
41
-                    <li class=""><a href="documentation/concepts/containers.html">Documentation</a></li>
39
+                    <li class="active"><a href="./">Introduction</a></li>
40
+                    <li ><a href="gettingstarted/">Getting started</a></li>
41
+                    <li class=""><a href="http://docs.docker.io/en/latest/concepts/containers/">Documentation</a></li>
42 42
                 </ul>
43 43
 
44 44
                 <div class="social links" style="float: right; margin-top: 14px; margin-left: 12px">
... ...
@@ -89,7 +87,7 @@
89 89
 
90 90
 
91 91
                 <div style="display: block; text-align: center;">
92
-                    <a class="btn btn-custom btn-large" href="gettingstarted.html">Let's get started</a>
92
+                    <a class="btn btn-custom btn-large" href="gettingstarted/index.html">Let's get started</a>
93 93
                 </div>
94 94
 
95 95
 
... ...
@@ -1,16 +1,18 @@
1
-Guides index
2
-============
1
+:title: docker documentation
2
+:description: docker documentation
3
+:keywords:
3 4
 
4
-Contents:
5
+Documentation
6
+=============
7
+
8
+This documentation has the following resources:
5 9
 
6 10
 .. toctree::
7 11
    :maxdepth: 1
8 12
 
9
-   documentation/concepts/index
10
-   documentation/installation/index
11
-   documentation/examples/index
12
-   documentation/contributing/index
13
-   documentation/commandline/index
14
-   documentation/faq
15
-
16
-The source page should also have some content. Otherwise it is just an index.
17 13
\ No newline at end of file
14
+   concepts/index
15
+   installation/index
16
+   examples/index
17
+   contributing/index
18
+   commandline/index
19
+   faq
18 20
\ No newline at end of file
19 21
deleted file mode 100644
... ...
@@ -1,245 +0,0 @@
1
-<!DOCTYPE html>
2
-<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
3
-<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
4
-<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
5
-<!--[if gt IE 8]><!-->
6
-<html class="no-js" xmlns="http://www.w3.org/1999/html"> <!--<![endif]-->
7
-<head>
8
-    <meta charset="utf-8">
9
-    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
10
-    <title>Docker - the Linux container runtime</title>
11
-
12
-    <meta name="description" content="Docker encapsulates heterogeneous payloads in standard containers">
13
-    <meta name="viewport" content="width=device-width">
14
-
15
-    <!-- twitter bootstrap -->
16
-    <link rel="stylesheet" href="_static/css/bootstrap.min.css">
17
-    <link rel="stylesheet" href="_static/css/bootstrap-responsive.min.css">
18
-
19
-    <!-- main style file -->
20
-    <link rel="stylesheet" href="_static/css/main.css">
21
-
22
-    <!-- vendor scripts -->
23
-    <script src="_static/js/vendor/jquery-1.9.1.min.js" type="text/javascript" ></script>
24
-    <script src="_static/js/vendor/modernizr-2.6.2-respond-1.1.0.min.js" type="text/javascript" ></script>
25
-
26
-</head>
27
-
28
-
29
-<body>
30
-
31
-
32
-<div class="navbar navbar-fixed-top">
33
-    <div class="navbar-dotcloud">
34
-        <div class="container">
35
-            <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
36
-                <span class="icon-bar"></span>
37
-                <span class="icon-bar"></span>
38
-                <span class="icon-bar"></span>
39
-            </a>
40
-            <a class="brand" href="#"></a>
41
-            <div class="nav-collapse collapse">
42
-                <ul class="nav pull-right">
43
-                    <li><a href="#">Introduction</a></li>
44
-                    <li class=""><a href="usage/concepts/docker.html">Usage</a></li>
45
-                    <li><a href="gettingstarted.html">About</a></li>
46
-
47
-                </ul>
48
-
49
-            </div><!--/.nav-collapse -->
50
-        </div>
51
-    </div>
52
-</div>
53
-
54
-
55
-<div class="container">
56
-    <div class="row">
57
-        <div class="text-center">
58
-            <img src="_static/img/docker-letters-logo.gif">
59
-        </div>
60
-    </div>
61
-</div>
62
-
63
-<div class="container">
64
-    <div class="row">
65
-
66
-        <div class="span9">
67
-            <section class="contentblock">
68
-
69
-                <h1>Docker - the Linux container runtime</h1>
70
-
71
-                <p>Docker encapsulates heterogeneous payloads in <a href="#container">Standard Containers</a>, and runs them on any server with strong guarantees of isolation and repeatability.</p>
72
-
73
-                <p>It is a great building block for automating distributed systems: large-scale web deployments, database clusters, continuous deployment systems, private PaaS, service-oriented architectures, etc.</p>
74
-
75
-                <ul>
76
-                    <li><em>Heterogeneous payloads</em>: 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.</li>
77
-                    <li><em>Any server</em>: 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.</li>
78
-                    <li><em>Isolation</em>: docker isolates processes from each other and from the underlying host, using lightweight containers. </li>
79
-                    <li><em>Repeatability</em>: because containers are isolated in their own filesystem, they behave the same regardless of where, when, and alongside what they run.</li>
80
-                </ul>
81
-            </section>
82
-        </div>
83
-
84
-        <div class="span3">
85
-            <section class="contentblock">
86
-                <h4>Docker will be open source soon</h4>
87
-                <br>
88
-                <div id="wufoo-z7x3p3">
89
-                    Fill out my <a href="http://dotclouddocker.wufoo.com/forms/z7x3p3">online form</a>.
90
-                </div>
91
-                <script type="text/javascript">var z7x3p3;(function(d, t) {
92
-                    var s = d.createElement(t), options = {
93
-                        'userName':'dotclouddocker',
94
-                        'formHash':'z7x3p3',
95
-                        'autoResize':true,
96
-                        'height':'577',
97
-                        'async':true,
98
-                        'header':'show'};
99
-                    s.src = ('https:' == d.location.protocol ? 'https://' : 'http://') + 'wufoo.com/scripts/embed/form.js';
100
-                    s.onload = s.onreadystatechange = function() {
101
-                        var rs = this.readyState; if (rs) if (rs != 'complete') if (rs != 'loaded') return;
102
-                        try { z7x3p3 = new WufooForm();z7x3p3.initialize(options);z7x3p3.display(); } catch (e) {}};
103
-                    var scr = d.getElementsByTagName(t)[0], par = scr.parentNode; par.insertBefore(s, scr);
104
-                })(document, 'script');</script>
105
-
106
-                <a href="#twitter"><img src="_static/img/twitter.png"> Follow us on Twitter</a>
107
-            </section>
108
-        </div>
109
-
110
-
111
-        <div class="span12">
112
-
113
-            <section class="contentblock">
114
-
115
-                <img src="_static/lego_docker.jpg" width="600px" style="float:right; margin-left: 10px">
116
-                <h2>Notable features</h2>
117
-
118
-                <ul>
119
-                    <li>Filesystem isolation: each process container runs in a completely separate root filesystem.</li>
120
-                    <li>Resource isolation: system resources like cpu and memory can be allocated differently to each process container, using cgroups.</li>
121
-                    <li>Network isolation: each process container runs in its own network namespace, with a virtual interface and IP address of its own.</li>
122
-                    <li>Copy-on-write: root filesystems are created using copy-on-write, which makes deployment extremeley fast, memory-cheap and disk-cheap.</li>
123
-                    <li>Logging: the standard streams (stdout/stderr/stdin) of each process container is collected and logged for real-time or batch retrieval.</li>
124
-                    <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>
125
-                    <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>
126
-                </ul>
127
-
128
-                <h2>Under the hood</h2>
129
-
130
-                <p>Under the hood, Docker is built on the following components:</p>
131
-
132
-                <ul>
133
-                    <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>
134
-                    <li><a href="http://aufs.sourceforge.net/aufs.html">AUFS</a>, a powerful union filesystem with copy-on-write capabilities;</li>
135
-                    <li>The <a href="http://golang.org">Go</a> programming language;</li>
136
-                    <li><a href="http://lxc.sourceforge.net/">lxc</a>, a set of convenience scripts to simplify the creation of linux containers.</li>
137
-                </ul>
138
-
139
-            </section>
140
-        </div>
141
-    </div>
142
-
143
-    <div class="row">
144
-        <div class="span12">
145
-            <section id="container" class="contentblock">
146
-
147
-
148
-                <h1>What is a Standard Container?</h1>
149
-
150
-
151
-                <p>Docker defines a unit of software delivery called a Standard Container. The goal of a Standard Container is to encapsulate a software component and all its dependencies in
152
-                    a format that is self-describing and portable, so that any compliant runtime can run it without extra dependency, regardless of the underlying machine and the contents of the container.</p>
153
-
154
-                <p>The spec for Standard Containers is currently work in progress, but it is very straightforward. It mostly defines 1) an image format, 2) a set of standard operations, and 3) an execution environment.</p>
155
-
156
-                <p>A great analogy for this is the shipping container. Just like Standard Containers are a fundamental unit of software delivery, shipping containers (http://bricks.argz.com/ins/7823-1/12) are a fundamental unit of physical delivery.</p>
157
-
158
-                <h3>1. STANDARD OPERATIONS</h3>
159
-
160
-                <p>Just like shipping containers, Standard Containers define a set of STANDARD OPERATIONS. Shipping containers can be lifted, stacked, locked, loaded, unloaded and labelled. Similarly, standard containers can be started, stopped, copied, snapshotted, downloaded, uploaded and tagged.</p>
161
-
162
-                <h3>2. CONTENT-AGNOSTIC</h3>
163
-
164
-                <p>Just like shipping containers, Standard Containers are CONTENT-AGNOSTIC: all standard operations have the same effect regardless of the contents. A shipping container will be stacked in exactly the same way whether it contains Vietnamese powder coffe or spare Maserati parts. Similarly, Standard Containers are started or uploaded in the same way whether they contain a postgres database, a php application with its dependencies and application server, or Java build artifacts.</p>
165
-
166
-                <h3>3. INFRASTRUCTURE-AGNOSTIC</h3>
167
-
168
-                <p>Both types of containers are INFRASTRUCTURE-AGNOSTIC: they can be transported to thousands of facilities around the world, and manipulated by a wide variety of equipment. A shipping container can be packed in a factory in Ukraine, transported by truck to the nearest routing center, stacked onto a train, loaded into a German boat by an Australian-built crane, stored in a warehouse at a US facility, etc. Similarly, a standard container can be bundled on my laptop, uploaded to S3, downloaded, run and snapshotted by a build server at Equinix in Virginia, uploaded to 10 staging servers in a home-made Openstack cluster, then sent to 30 production instances across 3 EC2 regions.</p>
169
-
170
-                <h3>4. DESIGNED FOR AUTOMATION</h3>
171
-
172
-                <p>Because they offer the same standard operations regardless of content and infrastructure, Standard Containers, just like their physical counterpart, are extremely well-suited for automation. In fact, you could say automation is their secret weapon.</p>
173
-
174
-                <p>Many things that once required time-consuming and error-prone human effort can now be programmed. Before shipping containers, a bag of powder coffee was hauled, dragged, dropped, rolled and stacked by 10 different people in 10 different locations by the time it reached its destination. 1 out of 50 disappeared. 1 out of 20 was damaged. The process was slow, inefficient and cost a fortune - and was entirely different depending on the facility and the type of goods.</p>
175
-
176
-                <p>Similarly, before Standard Containers, by the time a software component ran in production, it had been individually built, configured, bundled, documented, patched, vendored, templated, tweaked and instrumented by 10 different people on 10 different computers. Builds failed, libraries conflicted, mirrors crashed, post-it notes were lost, logs were misplaced, cluster updates were half-broken. The process was slow, inefficient and cost a fortune - and was entirely different depending on the language and infrastructure provider.</p>
177
-
178
-                <h3>5. INDUSTRIAL-GRADE DELIVERY</h3>
179
-
180
-                <p>There are 17 million shipping containers in existence, packed with every physical good imaginable. Every single one of them can be loaded on the same boats, by the same cranes, in the same facilities, and sent anywhere in the World with incredible efficiency. It is embarrassing to think that a 30 ton shipment of coffee can safely travel half-way across the World in <em>less time</em> than it takes a software team to deliver its code from one datacenter to another sitting 10 miles away.</p>
181
-
182
-                <p>With Standard Containers we can put an end to that embarrassment, by making INDUSTRIAL-GRADE DELIVERY of software a reality.</p>
183
-            </section>
184
-        </div>
185
-    </div>
186
-
187
-    <div class="row">
188
-        <div class="span6">
189
-            <section class="contentblock">
190
-                <h3 id="twitter">Twitter</h3>
191
-                <a class="twitter-timeline" href="https://twitter.com/getdocker" data-widget-id="312730839718957056">Tweets by @getdocker</a>
192
-                <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>
193
-            </section>
194
-        </div>
195
-
196
-    </div> <!-- end row -->
197
-
198
-
199
-
200
-
201
-
202
-</div> <!-- end container -->
203
-
204
-
205
-
206
-
207
-<hr>
208
-<footer>
209
-    <div class="row">
210
-        <div class="text-center">
211
-            Docker is a project by <a href="http://www.dotcloud.com">dotCloud</a>. When released, find us on <a href="http://github.com/dotcloud/docker/">Github</a>
212
-        </div>
213
-    </div>
214
-
215
-    <div class="row">
216
-        <div class="emptyspace" style="height: 40px">
217
-
218
-        </div>
219
-    </div>
220
-
221
-</footer>
222
-
223
-<!-- bootstrap javascipts -->
224
-<script src="js/vendor/bootstrap.min.js" type="text/javascript"></script>
225
-
226
-<!-- Google analytics -->
227
-<script type="text/javascript">
228
-
229
-    var _gaq = _gaq || [];
230
-    _gaq.push(['_setAccount', 'UA-6096819-11']);
231
-    _gaq.push(['_setDomainName', 'docker.io']);
232
-    _gaq.push(['_setAllowLinker', true]);
233
-    _gaq.push(['_trackPageview']);
234
-
235
-    (function() {
236
-        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
237
-        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
238
-        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
239
-    })();
240
-
241
-</script>
242
-
243
-
244
-</body>
245
-</html>
246 1
new file mode 100644
... ...
@@ -0,0 +1,87 @@
0
+Amazon EC2
1
+==========
2
+
3
+    Please note this is a community contributed installation path. The only 'official' installation is using the :ref:`ubuntu_linux` installation path. This version
4
+    may be out of date because it depends on some binaries to be updated and published
5
+
6
+Installation
7
+------------
8
+
9
+Docker can now be installed on Amazon EC2 with a single vagrant command. Vagrant 1.1 or higher is required.
10
+
11
+1. Install vagrant from http://www.vagrantup.com/ (or use your package manager)
12
+2. Install the vagrant aws plugin
13
+
14
+   ::
15
+
16
+       vagrant plugin install vagrant-aws
17
+
18
+
19
+3. Get the docker sources, this will give you the latest Vagrantfile and puppet manifests.
20
+
21
+   ::
22
+
23
+      git clone https://github.com/dotcloud/docker.git
24
+
25
+
26
+4. Check your AWS environment.
27
+
28
+   Create a keypair specifically for EC2, give it a name and save it to your disk. *I usually store these in my ~/.ssh/ folder*.
29
+
30
+   Check that your default security group has an inbound rule to accept SSH (port 22) connections.
31
+
32
+
33
+
34
+5. Inform Vagrant of your settings
35
+
36
+   Vagrant will read your access credentials from your environment, so we need to set them there first. Make sure
37
+   you have everything on amazon aws setup so you can (manually) deploy a new image to EC2.
38
+
39
+   ::
40
+
41
+       export AWS_ACCESS_KEY_ID=xxx
42
+       export AWS_SECRET_ACCESS_KEY=xxx
43
+       export AWS_KEYPAIR_NAME=xxx
44
+       export AWS_SSH_PRIVKEY=xxx
45
+
46
+   The environment variables are:
47
+
48
+   * ``AWS_ACCESS_KEY_ID`` - The API key used to make requests to AWS
49
+   * ``AWS_SECRET_ACCESS_KEY`` - The secret key to make AWS API requests
50
+   * ``AWS_KEYPAIR_NAME`` - The name of the keypair used for this EC2 instance
51
+   * ``AWS_SSH_PRIVKEY`` - The path to the private key for the named keypair, for example ``~/.ssh/docker.pem``
52
+
53
+   You can check if they are set correctly by doing something like
54
+
55
+   ::
56
+
57
+      echo $AWS_ACCESS_KEY_ID
58
+
59
+6. Do the magic!
60
+
61
+   ::
62
+
63
+      vagrant up --provider=aws
64
+
65
+
66
+   If it stalls indefinitely on ``[default] Waiting for SSH to become available...``, Double check your default security
67
+   zone on AWS includes rights to SSH (port 22) to your container.
68
+
69
+   If you have an advanced AWS setup, you might want to have a look at the https://github.com/mitchellh/vagrant-aws
70
+
71
+7. Connect to your machine
72
+
73
+   .. code-block:: bash
74
+
75
+      vagrant ssh
76
+
77
+8. Your first command
78
+
79
+   Now you are in the VM, run docker
80
+
81
+   .. code-block:: bash
82
+
83
+      docker
84
+
85
+
86
+Continue with the :ref:`hello_world` example.
0 87
\ No newline at end of file
1 88
new file mode 100644
2 89
Binary files /dev/null and b/docs/sources/installation/images/win/_01.gif differ
3 90
new file mode 100644
4 91
Binary files /dev/null and b/docs/sources/installation/images/win/_02.gif differ
5 92
new file mode 100644
6 93
Binary files /dev/null and b/docs/sources/installation/images/win/_06.gif differ
7 94
new file mode 100644
8 95
Binary files /dev/null and b/docs/sources/installation/images/win/cygwin.gif differ
9 96
new file mode 100644
10 97
Binary files /dev/null and b/docs/sources/installation/images/win/putty.gif differ
11 98
new file mode 100644
12 99
Binary files /dev/null and b/docs/sources/installation/images/win/putty_2.gif differ
13 100
new file mode 100644
14 101
Binary files /dev/null and b/docs/sources/installation/images/win/run_02_.gif differ
15 102
new file mode 100644
16 103
Binary files /dev/null and b/docs/sources/installation/images/win/run_03.gif differ
17 104
new file mode 100644
18 105
Binary files /dev/null and b/docs/sources/installation/images/win/run_04.gif differ
19 106
new file mode 100644
20 107
Binary files /dev/null and b/docs/sources/installation/images/win/ssh-config.gif differ
21 108
new file mode 100644
... ...
@@ -0,0 +1,18 @@
0
+:title: docker documentation
1
+:description: -- todo: change me
2
+:keywords: todo: change me
3
+
4
+
5
+
6
+Installation
7
+============
8
+
9
+Contents:
10
+
11
+.. toctree::
12
+   :maxdepth: 1
13
+
14
+   ubuntulinux
15
+   macos
16
+   windows
17
+   amazon
0 18
new file mode 100644
... ...
@@ -0,0 +1,66 @@
0
+
1
+Mac OS X and other linux
2
+========================
3
+
4
+  Please note this is a community contributed installation path. The only 'official' installation is using the :ref:`ubuntu_linux` installation path. This version
5
+  may be out of date because it depends on some binaries to be updated and published
6
+
7
+
8
+Requirements
9
+------------
10
+
11
+We currently rely on some Ubuntu-linux specific packages, this will change in the future, but for now we provide a
12
+streamlined path to install Virtualbox with a Ubuntu 12.10 image using Vagrant.
13
+
14
+1. Install virtualbox from https://www.virtualbox.org/ (or use your package manager)
15
+2. Install vagrant from http://www.vagrantup.com/ (or use your package manager)
16
+3. Install git if you had not installed it before, check if it is installed by running
17
+   ``git`` in a terminal window
18
+
19
+We recommend having at least about 2Gb of free disk space and 2Gb RAM (or more).
20
+
21
+Installation
22
+------------
23
+
24
+1. Fetch the docker sources
25
+
26
+.. code-block:: bash
27
+
28
+   git clone https://github.com/dotcloud/docker.git
29
+
30
+2. Run vagrant from the sources directory
31
+
32
+.. code-block:: bash
33
+
34
+    vagrant up
35
+
36
+Vagrant will:
37
+
38
+* Download the Quantal64 base ubuntu virtual machine image from get.docker.io/
39
+* Boot this image in virtualbox
40
+
41
+Then it will use Puppet to perform an initial setup in this machine:
42
+
43
+* Download & untar the most recent docker binary tarball to vagrant homedir.
44
+* Debootstrap to /var/lib/docker/images/ubuntu.
45
+* Install & run dockerd as service.
46
+* Put docker in /usr/local/bin.
47
+* Put latest Go toolchain in /usr/local/go.
48
+
49
+You now have a Ubuntu Virtual Machine running with docker pre-installed.
50
+
51
+To access the VM and use Docker, Run ``vagrant ssh`` from the same directory as where you ran
52
+``vagrant up``. Vagrant will make sure to connect you to the correct VM.
53
+
54
+.. code-block:: bash
55
+
56
+    vagrant ssh
57
+
58
+Now you are in the VM, run docker
59
+
60
+.. code-block:: bash
61
+
62
+    docker
63
+
64
+
65
+Continue with the :ref:`hello_world` example.
0 66
new file mode 100644
... ...
@@ -0,0 +1,48 @@
0
+.. _ubuntu_linux:
1
+
2
+Ubuntu Linux
3
+============
4
+
5
+  **Please note this project is currently under heavy development. It should not be used in production.**
6
+
7
+
8
+
9
+Installing on Ubuntu 12.04 and 12.10
10
+
11
+Right now, the officially supported distributions are:
12
+
13
+Ubuntu 12.04 (precise LTS)
14
+Ubuntu 12.10 (quantal)
15
+Docker probably works on other distributions featuring a recent kernel, the AUFS patch, and up-to-date lxc. However this has not been tested.
16
+
17
+Install dependencies:
18
+---------------------
19
+
20
+::
21
+
22
+    sudo apt-get install lxc wget bsdtar curl
23
+    sudo apt-get install linux-image-extra-`uname -r`
24
+
25
+The linux-image-extra package is needed on standard Ubuntu EC2 AMIs in order to install the aufs kernel module.
26
+
27
+Install the latest docker binary:
28
+
29
+::
30
+
31
+    wget http://get.docker.io/builds/$(uname -s)/$(uname -m)/docker-master.tgz
32
+    tar -xf docker-master.tgz
33
+
34
+Run your first container!
35
+
36
+::
37
+
38
+    cd docker-master
39
+
40
+::
41
+
42
+    sudo ./docker run -i -t base /bin/bash
43
+
44
+Consider adding docker to your PATH for simplicity.
45
+
46
+
47
+Continue with the :ref:`hello_world` example.
0 48
\ No newline at end of file
1 49
new file mode 100644
... ...
@@ -0,0 +1,167 @@
0
+:title: Requirements and Installation on Windows
1
+:description: Docker's tutorial to run docker on Windows
2
+:keywords: Docker, Docker documentation, Windows, requirements, virtualbox, vagrant, git, ssh, putty, cygwin
3
+
4
+
5
+Windows
6
+=========
7
+
8
+  Please note this is a community contributed installation path. The only 'official' installation is using the :ref:`ubuntu_linux` installation path. This version
9
+  may be out of date because it depends on some binaries to be updated and published
10
+
11
+
12
+
13
+Requirements
14
+------------
15
+
16
+1. Install virtualbox from https://www.virtualbox.org - or follow this tutorial__
17
+
18
+.. __: http://www.slideshare.net/julienbarbier42/install-virtualbox-on-windows-7
19
+
20
+2. Install vagrant from http://www.vagrantup.com - or follow this tutorial__
21
+
22
+.. __: http://www.slideshare.net/julienbarbier42/install-vagrant-on-windows-7
23
+
24
+3. Install git with ssh from http://git-scm.com/downloads - or follow this tutorial__
25
+
26
+.. __: http://www.slideshare.net/julienbarbier42/install-git-with-ssh-on-windows-7
27
+
28
+
29
+We recommend having at least 2Gb of free disk space and 2Gb of RAM (or more).
30
+
31
+Opening a command prompt
32
+------------------------
33
+
34
+First open a cmd prompt. Press Windows key and then press “R” key. This will open the RUN dialog box for you. Type “cmd” and press Enter. Or you can click on Start, type “cmd” in the “Search programs and files” field, and click on cmd.exe.
35
+
36
+.. image:: images/win/_01.gif
37
+   :alt: Git install
38
+   :align: center
39
+
40
+This should open a cmd prompt window.
41
+
42
+.. image:: images/win/_02.gif
43
+   :alt: run docker
44
+   :align: center
45
+
46
+Alternatively, you can also use a Cygwin terminal, or Git Bash (or any other command line program you are usually using). The next steps would be the same.
47
+
48
+Launch an Ubuntu virtual server
49
+-------------------------------
50
+
51
+Let’s download and run an Ubuntu image with docker binaries already installed.
52
+
53
+.. code-block:: bash
54
+
55
+	git clone https://github.com/dotcloud/docker.git 
56
+	cd docker
57
+	vagrant up
58
+
59
+.. image:: images/win/run_02_.gif
60
+   :alt: run docker
61
+   :align: center
62
+
63
+Congratulations! You are running an Ubuntu server with docker installed on it. You do not see it though, because it is running in the background.
64
+
65
+Log onto your Ubuntu server
66
+---------------------------
67
+
68
+Let’s log into your Ubuntu server now. To do so you have two choices:
69
+
70
+- Use Vagrant on Windows command prompt OR
71
+- Use SSH
72
+
73
+Using Vagrant on Windows Command Prompt
74
+```````````````````````````````````````
75
+
76
+Run the following command
77
+
78
+.. code-block:: bash
79
+
80
+	vagrant ssh
81
+
82
+You may see an error message starting with “`ssh` executable not found”. In this case it means that you do not have SSH in your PATH. If you do not have SSH in your PATH you can set it up with the “set” command. For instance, if your ssh.exe is in the folder named “C:\Program Files (x86)\Git\bin”, then you can run the following command:
83
+
84
+.. code-block:: bash
85
+
86
+	set PATH=%PATH%;C:\Program Files (x86)\Git\bin
87
+
88
+.. image:: images/win/run_03.gif
89
+   :alt: run docker
90
+   :align: center
91
+
92
+Using SSH
93
+`````````
94
+
95
+First step is to get the IP and port of your Ubuntu server. Simply run:
96
+
97
+.. code-block:: bash
98
+
99
+	vagrant ssh-config 
100
+
101
+You should see an output with HostName and Port information. In this example, HostName is 127.0.0.1 and port is 2222. And the User is “vagrant”. The password is not shown, but it is also “vagrant”.
102
+
103
+.. image:: images/win/ssh-config.gif
104
+   :alt: run docker
105
+   :align: center
106
+
107
+You can now use this information for connecting via SSH to your server. To do so you can:
108
+
109
+- Use putty.exe OR
110
+- Use SSH from a terminal
111
+
112
+Use putty.exe
113
+'''''''''''''
114
+
115
+You can download putty.exe from this page http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
116
+Launch putty.exe and simply enter the information you got from last step.
117
+
118
+.. image:: images/win/putty.gif
119
+   :alt: run docker
120
+   :align: center
121
+
122
+Open, and enter user = vagrant and password = vagrant.
123
+
124
+.. image:: images/win/putty_2.gif
125
+   :alt: run docker
126
+   :align: center
127
+
128
+SSH from a terminal
129
+'''''''''''''''''''
130
+
131
+You can also run this command on your favorite terminal (windows prompt, cygwin, git-bash, …). Make sure to adapt the IP and port from what you got from the vagrant ssh-config command.
132
+
133
+.. code-block:: bash
134
+
135
+	ssh vagrant@127.0.0.1 –p 2222
136
+
137
+Enter user = vagrant and password = vagrant.
138
+
139
+.. image:: images/win/cygwin.gif
140
+   :alt: run docker
141
+   :align: center
142
+
143
+Congratulations, you are now logged onto your Ubuntu Server, running on top of your Windows machine !
144
+
145
+Running Docker
146
+--------------
147
+
148
+First you have to be root in order to run docker. Simply run the following command:
149
+
150
+.. code-block:: bash
151
+
152
+	sudo su
153
+
154
+You are now ready for the docker’s “hello world” example. Run
155
+
156
+.. code-block:: bash
157
+
158
+	docker run busybox echo hello world
159
+
160
+.. image:: images/win/run_04.gif
161
+   :alt: run docker
162
+   :align: center
163
+
164
+All done!
165
+
166
+Now you can continue with the :ref:`hello_world` example.
... ...
@@ -61,15 +61,11 @@
61 61
     <div class="navbar-dotcloud">
62 62
         <div class="container" style="text-align: center;">
63 63
 
64
-{#            <div class="nav-collapse collapse" style="float: left; margin-top: 12px;">#}
65
-{#                <a class="btn btn-custom" href="http://github.com/dotcloud/docker"><img src="{{ pathto('_static/img/fork-us.png', 1) }}">Fork us!</a>#}
66
-{#            </div>#}
67
-
68 64
             <div style="float: right" class="pull-right">
69 65
                 <ul class="nav">
70
-                    <li><a href="{{ pathto('./', 1) }}">Introduction</a></li>
71
-                    <li><a href="{{ pathto('gettingstarted.html', 1) }}">Getting started</a></li>
72
-                    <li class="active"><a href="{{ pathto('documentation/concepts/containers.html', 1) }}">Documentation</a></li>
66
+                    <li><a href="http://www.docker.io/">Introduction</a></li>
67
+                    <li><a href="http://www.docker.io/gettingstarted/">Getting started</a></li>
68
+                    <li class="active"><a href="{{ pathto('concepts/containers/', 1) }}">Documentation</a></li>
73 69
                 </ul>
74 70
                 <div class="social links" style="float: right; margin-top: 14px; margin-left: 12px">
75 71
                     <a class="twitter" href="http://twitter.com/getdocker">Twitter</a>
... ...
@@ -77,7 +73,6 @@
77 77
                 </div>
78 78
             </div>
79 79
 
80
-{#            <div style="width: 200px; margin-left: auto; margin-right: auto;">#}
81 80
             <div style="margin-left: -12px; float: left;">
82 81
                 <a href="{{ pathto('./', 1) }}"><img style="margin-top: 12px; height: 38px" src="{{ pathto('_static/img/docker-letters-logo.gif', 1) }}"></a>
83 82
             </div>