Skip to content
This repository was archived by the owner on Feb 27, 2018. It is now read-only.

Commit f6d7468

Browse files
committed
Merge pull request #382 from moxiegirl/add-deprecated-install-docs
boot2docker cli installation docs
2 parents 8fdc6f5 + 63a8d4b commit f6d7468

11 files changed

Lines changed: 530 additions & 0 deletions

docs/images/bad_host.png

26.7 KB
Loading

docs/images/cool_view.png

23.8 KB
Loading

docs/images/good_host.png

101 KB
Loading

docs/images/kitematic.png

13.9 KB
Loading

docs/images/newsite_view.png

20.9 KB
Loading
36.6 KB
Loading
37.1 KB
Loading
248 KB
Loading

docs/images/windows-installer.png

187 KB
Loading

docs/mac.md

Lines changed: 358 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,358 @@
1+
<!--[metadata]>
2+
+++
3+
title = "Installation on Mac OS X"
4+
description = "Instructions for installing Docker on OS X using boot2docker."
5+
keywords = ["Docker, Docker documentation, requirements, boot2docker, VirtualBox, SSH, Linux, OSX, OS X, Mac"]
6+
[menu.main]
7+
parent = "smn_engine"
8+
+++
9+
<![end-metadata]-->
10+
11+
# Mac OS X
12+
13+
You can install Docker using Boot2Docker to run `docker` commands at your command-line.
14+
Choose this installation if you are familiar with the command-line or plan to
15+
contribute to the Docker project on GitHub.
16+
17+
[<img src="/installation/images/kitematic.png" alt="Download Kitematic"
18+
style="float:right;">](https://kitematic.com/download)
19+
20+
Alternatively, you may want to try <a id="inlinelink" href="https://kitematic.com/"
21+
target="_blank">Kitematic</a>, an application that lets you set up Docker and
22+
run containers using a graphical user interface (GUI).
23+
24+
## Command-line Docker with Boot2Docker
25+
26+
Because the Docker daemon uses Linux-specific kernel features, you can't run
27+
Docker natively in OS X. Instead, you must install the Boot2Docker application.
28+
The application includes a VirtualBox Virtual Machine (VM), Docker itself, and the
29+
Boot2Docker management tool.
30+
31+
The Boot2Docker management tool is a lightweight Linux virtual machine made
32+
specifically to run the Docker daemon on Mac OS X. The VirtualBox VM runs
33+
completely from RAM, is a small ~24MB download, and boots in approximately 5s.
34+
35+
**Requirements**
36+
37+
Your Mac must be running OS X 10.6 "Snow Leopard" or newer to run Boot2Docker.
38+
39+
### Learn the key concepts before installing
40+
41+
In a Docker installation on Linux, your machine is both the localhost and the
42+
Docker host. In networking, localhost means your computer. The Docker host is
43+
the machine on which the containers run.
44+
45+
On a typical Linux installation, the Docker client, the Docker daemon, and any
46+
containers run directly on your localhost. This means you can address ports on a
47+
Docker container using standard localhost addressing such as `localhost:8000` or
48+
`0.0.0.0:8376`.
49+
50+
![Linux Architecture Diagram](/installation/images/linux_docker_host.svg)
51+
52+
In an OS X installation, the `docker` daemon is running inside a Linux virtual
53+
machine provided by Boot2Docker.
54+
55+
![OSX Architecture Diagram](/installation/images/mac_docker_host.svg)
56+
57+
In OS X, the Docker host address is the address of the Linux VM.
58+
When you start the `boot2docker` process, the VM is assigned an IP address. Under
59+
`boot2docker` ports on a container map to ports on the VM. To see this in
60+
practice, work through the exercises on this page.
61+
62+
63+
### Installation
64+
65+
1. Go to the [boot2docker/osx-installer ](
66+
https://github.com/boot2docker/osx-installer/releases/latest) release page.
67+
68+
4. Download Boot2Docker by clicking `Boot2Docker-x.x.x.pkg` in the "Downloads"
69+
section.
70+
71+
3. Install Boot2Docker by double-clicking the package.
72+
73+
The installer places Boot2Docker and VirtualBox in your "Applications" folder.
74+
75+
The installation places the `docker` and `boot2docker` binaries in your
76+
`/usr/local/bin` directory.
77+
78+
79+
## Start the Boot2Docker Application
80+
81+
To run a Docker container, you first start the `boot2docker` VM and then issue
82+
`docker` commands to create, load, and manage containers. You can launch
83+
`boot2docker` from your Applications folder or from the command line.
84+
85+
> **NOTE**: Boot2Docker is designed as a development tool. You should not use
86+
> it in production environments.
87+
88+
### From the Applications folder
89+
90+
When you launch the "Boot2Docker" application from your "Applications" folder, the
91+
application:
92+
93+
* opens a terminal window
94+
95+
* creates a $HOME/.boot2docker directory
96+
97+
* creates a VirtualBox ISO and certs
98+
99+
* starts a VirtualBox VM running the `docker` daemon
100+
101+
Once the launch completes, you can run `docker` commands. A good way to verify
102+
your setup succeeded is to run the `hello-world` container.
103+
104+
$ docker run hello-world
105+
Unable to find image 'hello-world:latest' locally
106+
511136ea3c5a: Pull complete
107+
31cbccb51277: Pull complete
108+
e45a5af57b00: Pull complete
109+
hello-world:latest: The image you are pulling has been verified.
110+
Important: image verification is a tech preview feature and should not be
111+
relied on to provide security.
112+
Status: Downloaded newer image for hello-world:latest
113+
Hello from Docker.
114+
This message shows that your installation appears to be working correctly.
115+
116+
To generate this message, Docker took the following steps:
117+
1. The Docker client contacted the Docker daemon.
118+
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
119+
(Assuming it was not already locally available.)
120+
3. The Docker daemon created a new container from that image which runs the
121+
executable that produces the output you are currently reading.
122+
4. The Docker daemon streamed that output to the Docker client, which sent it
123+
to your terminal.
124+
125+
To try something more ambitious, you can run an Ubuntu container with:
126+
$ docker run -it ubuntu bash
127+
128+
For more examples and ideas, visit:
129+
http://docs.docker.com/userguide/
130+
131+
132+
A more typical way to start and stop `boot2docker` is using the command line.
133+
134+
### From your command line
135+
136+
Initialize and run `boot2docker` from the command line, do the following:
137+
138+
1. Create a new Boot2Docker VM.
139+
140+
$ boot2docker init
141+
142+
This creates a new virtual machine. You only need to run this command once.
143+
144+
2. Start the `boot2docker` VM.
145+
146+
$ boot2docker start
147+
148+
3. Display the environment variables for the Docker client.
149+
150+
$ boot2docker shellinit
151+
Writing /Users/mary/.boot2docker/certs/boot2docker-vm/ca.pem
152+
Writing /Users/mary/.boot2docker/certs/boot2docker-vm/cert.pem
153+
Writing /Users/mary/.boot2docker/certs/boot2docker-vm/key.pem
154+
export DOCKER_HOST=tcp://192.168.59.103:2376
155+
export DOCKER_CERT_PATH=/Users/mary/.boot2docker/certs/boot2docker-vm
156+
export DOCKER_TLS_VERIFY=1
157+
158+
The specific paths and address on your machine will be different.
159+
160+
4. To set the environment variables in your shell do the following:
161+
162+
$ eval "$(boot2docker shellinit)"
163+
164+
You can also set them manually by using the `export` commands `boot2docker`
165+
returns.
166+
167+
5. Run the `hello-world` container to verify your setup.
168+
169+
$ docker run hello-world
170+
171+
172+
## Basic Boot2Docker exercises
173+
174+
At this point, you should have `boot2docker` running and the `docker` client
175+
environment initialized. To verify this, run the following commands:
176+
177+
$ boot2docker status
178+
$ docker version
179+
180+
Work through this section to try some practical container tasks using `boot2docker` VM.
181+
182+
### Access container ports
183+
184+
1. Start an NGINX container on the DOCKER_HOST.
185+
186+
$ docker run -d -P --name web nginx
187+
188+
Normally, the `docker run` commands starts a container, runs it, and then
189+
exits. The `-d` flag keeps the container running in the background
190+
after the `docker run` command completes. The `-P` flag publishes exposed ports from the
191+
container to your local host; this lets you access them from your Mac.
192+
193+
2. Display your running container with `docker ps` command
194+
195+
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
196+
5fb65ff765e9 nginx:latest "nginx -g 'daemon of 3 minutes ago Up 3 minutes 0.0.0.0:49156->443/tcp, 0.0.0.0:49157->80/tcp web
197+
198+
At this point, you can see `nginx` is running as a daemon.
199+
200+
3. View just the container's ports.
201+
202+
$ docker port web
203+
443/tcp -> 0.0.0.0:49156
204+
80/tcp -> 0.0.0.0:49157
205+
206+
This tells you that the `web` container's port `80` is mapped to port
207+
`49157` on your Docker host.
208+
209+
4. Enter the `http://localhost:49157` address (`localhost` is `0.0.0.0`) in your browser:
210+
211+
![Bad Address](/installation/images/bad_host.png)
212+
213+
This didn't work. The reason it doesn't work is your `DOCKER_HOST` address is
214+
not the localhost address (0.0.0.0) but is instead the address of the
215+
`boot2docker` VM.
216+
217+
5. Get the address of the `boot2docker` VM.
218+
219+
$ boot2docker ip
220+
192.168.59.103
221+
222+
6. Enter the `http://192.168.59.103:49157` address in your browser:
223+
224+
![Correct Addressing](/installation/images/good_host.png)
225+
226+
Success!
227+
228+
7. To stop and then remove your running `nginx` container, do the following:
229+
230+
$ docker stop web
231+
$ docker rm web
232+
233+
### Mount a volume on the container
234+
235+
When you start `boot2docker`, it automatically shares your `/Users` directory
236+
with the VM. You can use this share point to mount directories onto your container.
237+
The next exercise demonstrates how to do this.
238+
239+
1. Change to your user `$HOME` directory.
240+
241+
$ cd $HOME
242+
243+
2. Make a new `site` directory.
244+
245+
$ mkdir site
246+
247+
3. Change into the `site` directory.
248+
249+
$ cd site
250+
251+
4. Create a new `index.html` file.
252+
253+
$ echo "my new site" > index.html
254+
255+
5. Start a new `nginx` container and replace the `html` folder with your `site` directory.
256+
257+
$ docker run -d -P -v $HOME/site:/usr/share/nginx/html --name mysite nginx
258+
259+
6. Get the `mysite` container's port.
260+
261+
$ docker port mysite
262+
80/tcp -> 0.0.0.0:49166
263+
443/tcp -> 0.0.0.0:49165
264+
265+
7. Open the site in a browser:
266+
267+
![My site page](/installation/images/newsite_view.png)
268+
269+
8. Try adding a page to your `$HOME/site` in real time.
270+
271+
$ echo "This is cool" > cool.html
272+
273+
9. Open the new page in the browser.
274+
275+
![Cool page](/installation/images/cool_view.png)
276+
277+
9. Stop and then remove your running `mysite` container.
278+
279+
$ docker stop mysite
280+
$ docker rm mysite
281+
282+
## Upgrade Boot2Docker
283+
284+
If you running Boot2Docker 1.4.1 or greater, you can upgrade Boot2Docker from
285+
the command line. If you are running an older version, you should use the
286+
package provided by the `boot2docker` repository.
287+
288+
### From the command line
289+
290+
To upgrade from 1.4.1 or greater, you can do this:
291+
292+
1. Open a terminal on your local machine.
293+
294+
2. Stop the `boot2docker` application.
295+
296+
$ boot2docker stop
297+
298+
3. Run the upgrade command.
299+
300+
$ boot2docker upgrade
301+
302+
303+
### Use the installer
304+
305+
To upgrade any version of Boot2Docker, do this:
306+
307+
1. Open a terminal on your local machine.
308+
309+
2. Stop the `boot2docker` application.
310+
311+
$ boot2docker stop
312+
313+
3. Go to the [boot2docker/osx-installer ](
314+
https://github.com/boot2docker/osx-installer/releases/latest) release page.
315+
316+
4. Download Boot2Docker by clicking `Boot2Docker-x.x.x.pkg` in the "Downloads"
317+
section.
318+
319+
2. Install Boot2Docker by double-clicking the package.
320+
321+
The installer places Boot2Docker in your "Applications" folder.
322+
323+
324+
## Uninstallation
325+
326+
1. Go to the [boot2docker/osx-installer ](
327+
https://github.com/boot2docker/osx-installer/releases/latest) release page.
328+
329+
2. Download the source code by clicking `Source code (zip)` or
330+
`Source code (tar.gz)` in the "Downloads" section.
331+
332+
3. Extract the source code.
333+
334+
4. Open a terminal on your local machine.
335+
336+
5. Change to the directory where you extracted the source code:
337+
338+
$ cd <path to extracted source code>
339+
340+
6. Make sure the uninstall.sh script is executable:
341+
342+
$ chmod +x uninstall.sh
343+
344+
7. Run the uninstall.sh script:
345+
346+
$ ./uninstall.sh
347+
348+
349+
## Learning more and acknowledgement
350+
351+
Use `boot2docker help` to list the full command line reference. For more
352+
information about using SSH or SCP to access the Boot2Docker VM, see the README
353+
at [Boot2Docker repository](https://github.com/boot2docker/boot2docker).
354+
355+
Thanks to Chris Jones whose [blog](http://viget.com/extend/how-to-use-docker-on-os-x-the-missing-guide)
356+
inspired me to redo this page.
357+
358+
Continue with the [Docker User Guide](/userguide).

0 commit comments

Comments
 (0)