mirror of https://github.com/docker/docs.git
Adding in updates for Mac for birthday.
Signed-off-by: Mary Anthony <mary.anthony@docker.com>
This commit is contained in:
parent
2243e32cbb
commit
d03ce18b0b
Binary file not shown.
After Width: | Height: | Size: 46 KiB |
Binary file not shown.
After Width: | Height: | Size: 39 KiB |
Binary file not shown.
After Width: | Height: | Size: 127 KiB |
Binary file not shown.
After Width: | Height: | Size: 26 KiB |
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
Binary file not shown.
After Width: | Height: | Size: 34 KiB |
|
@ -1,116 +1,309 @@
|
||||||
page_title: Installation on Mac OS X
|
page_title: Installation on Mac OS X
|
||||||
page_description: Instructions for installing Docker on OS X using boot2docker.
|
page_description: Instructions for installing Docker on OS X using boot2docker.
|
||||||
page_keywords: Docker, Docker documentation, requirements, boot2docker, VirtualBox, SSH, Linux, OSX, OS X, Mac
|
page_keywords: Docker, Docker documentation, requirements, boot2docker, VirtualBox, SSH, Linux, OSX, OS X, Mac
|
||||||
|
|
||||||
# Installing Docker on Mac OS X
|
# Install Docker on Mac OS X
|
||||||
|
|
||||||
> **Note:**
|
Because the Docker daemon uses Linux-specific kernel features, you can't run
|
||||||
> Docker is supported on Mac OS X 10.6 "Snow Leopard" or newer.
|
Docker natively in OS X. Instead, you must install the Boot2Docker application.
|
||||||
|
Boot2Docker includes a VirtualBox VM, Docker itself, and the Boot2Docker
|
||||||
|
management tool.
|
||||||
|
|
||||||
Because the Docker Engine uses Linux-specific kernel features, you'll need to use a
|
The Boot2Docker management tool is a lightweight Linux virtual machine made
|
||||||
lightweight virtual machine (VM) to run it on OS X. You use the OS X Docker client to
|
specifically to run the Docker daemon on Mac OS X. The VirtualBox VM runs
|
||||||
control the virtualized Docker Engine to build, run, and manage Docker containers.
|
completely from RAM, is a small ~24MB download, and boots in approximately 5s.
|
||||||
|
|
||||||
To make this process easier, we've built a helper application called
|
Your Mac must be running OS X 10.6 "Snow Leopard" or newer to run Boot2Docker.
|
||||||
[Boot2Docker](https://github.com/boot2docker/boot2docker) that installs a
|
|
||||||
virtual machine (using VirtualBox) that's all set up to run the Docker daemon.
|
|
||||||
|
|
||||||
## Demonstration
|
|
||||||
|
|
||||||
<iframe width="640" height="360" src="//www.youtube.com/embed/wQsrKX4588U?rel=0" frameborder="0" allowfullscreen></iframe>
|
## Learn the key concepts before installing
|
||||||
|
|
||||||
|
In a Linux installation, your local machine is the Docker host. The Docker
|
||||||
|
client, the Docker daemon, and any containers run directly on this host. This
|
||||||
|
means you can address ports on a Docker container using standard addressing
|
||||||
|
such as `localhost:8000` or `0.0.0.0:8376`.
|
||||||
|
|
||||||
## Installation
|

|
||||||
|
|
||||||
1. Download the latest release of the [Docker for OS X Installer](
|
In an OS X installation, the `docker` daemon is running inside a Linux virtual
|
||||||
https://github.com/boot2docker/osx-installer/releases/latest) (Look for the
|
machine provided by Boot2Docker.
|
||||||
green Boot2Docker-x.x.x.pkg button near the bottom of the page.)
|
|
||||||
|
|
||||||
2. Run the installer by double-clicking the downloaded package, which will install a
|

|
||||||
VirtualBox VM, Docker itself, and the Boot2Docker management tool.
|
|
||||||

|
|
||||||
|
|
||||||
3. Locate the `Boot2Docker` app in your `Applications` folder and run it.
|
When running on OS X, the Docker host address is that of the virtual Linux
|
||||||
Or, you can initialize Boot2Docker from the command line by running:
|
machine. Its IP address is assigned when you start the `boot2docker` process.
|
||||||
|
|
||||||
$ boot2docker init
|
|
||||||
$ boot2docker start
|
|
||||||
$ $(boot2docker shellinit)
|
|
||||||
|
|
||||||
A terminal window will open and you'll see the virtual machine starting up.
|
## Install Boot2Docker
|
||||||
Once you have an initialized virtual machine, you can control it with `boot2docker stop`
|
|
||||||
and `boot2docker start`.
|
1. Go to the [boo2docker/osx-installer ](
|
||||||
|
https://github.com/boot2docker/osx-installer/releases/latest) release page.
|
||||||
|
|
||||||
> **Note:**
|
2. Click the `Boot2Docker-x.x.x.pkg` link in the "Downloads" section.
|
||||||
> If you see a message in the terminal that looks something like this:
|
|
||||||
>
|
|
||||||
> `To connect the Docker client to the Docker daemon, please set: export
|
|
||||||
DOCKER_HOST=tcp://192.168.59.103:2375`
|
|
||||||
>
|
|
||||||
you can safely set the environment variable as instructed.
|
|
||||||
|
|
||||||
View the
|
Your browser downloads the package to your folder.
|
||||||
[Boot2Docker ReadMe](https://github.com/boot2docker/boot2docker/blob/master/README.md)
|
|
||||||
for more information.
|
|
||||||
|
|
||||||
## Upgrading
|
3. Install Boot2Docker by double-clicking the package.
|
||||||
|
|
||||||
1. Download the latest release of the [Docker for OS X Installer](
|
The installer places a `Boot2Docker` app in your `Applications` folder.
|
||||||
https://github.com/boot2docker/osx-installer/releases/latest)
|
|
||||||
|
|
||||||
2. If Boot2Docker is currently running, stop it with `boot2docker stop`. Then, run
|
The installation places the `docker` and `boot2docker` binaries in your
|
||||||
the installer package, which will update Docker and the Boot2Docker management tool.
|
`/usr/local/bin` directory.
|
||||||
|
|
||||||
3. To complete the upgrade, you also need to update your existing virtual machine. Open a
|
|
||||||
terminal window and run:
|
|
||||||
|
|
||||||
$ boot2docker stop
|
## Start the Boot2Docker Application
|
||||||
$ boot2docker download
|
|
||||||
$ boot2docker start
|
|
||||||
|
|
||||||
This will download an .iso image containing a fresh VM and start it up. Your upgrade is
|
To run `docker` containers, you first start the `boot2docker` VM and then issue
|
||||||
complete. You can test it by following the directions below.
|
`docker` commands to create, load, and manage containers. You can launch
|
||||||
|
`boot2docker` from your Applications folder or from the command line.
|
||||||
|
|
||||||
## Running Docker
|
> **NOTE**: Boot2Docker is designed as a development tool. You should not use
|
||||||
|
> it for any kind of production workloads.
|
||||||
|
|
||||||
{{ include "no-remote-sudo.md" }}
|
### From the Applications folder
|
||||||
|
|
||||||
|
When you launch the "Boot2Docker" application from your "Applications" folder, the
|
||||||
|
application:
|
||||||
|
|
||||||
From your terminal, you can test that Docker is running with our small `hello-world`
|
* opens a terminal window
|
||||||
example image:
|
|
||||||
Start the vm (`boot2docker start`) and then run:
|
|
||||||
|
|
||||||
$ docker run hello-world
|
* creates a $HOME/.boot2docker directory
|
||||||
|
|
||||||
This should download the `hello-world` image, which then creates a small
|
* creates a VirtualBox ISO and certs
|
||||||
container with an executable that prints a brief `Hello from Docker.` message.
|
|
||||||
|
|
||||||
## Container port redirection
|
* starts a VirtualBox VM running the `docker` daemon
|
||||||
|
|
||||||
The latest version of `boot2docker` sets up a host-only network adaptor which provides
|
Once the launch completes, you can run `docker` commands. A good way to verify
|
||||||
access to the container's ports.
|
your setup succeeded is to run the `hello-world` container.
|
||||||
|
|
||||||
If you run a container with an exposed port,
|
$ docker hello-world
|
||||||
|
Unable to find image 'hello-world:latest' locally
|
||||||
|
511136ea3c5a: Pull complete
|
||||||
|
31cbccb51277: Pull complete
|
||||||
|
e45a5af57b00: Pull complete
|
||||||
|
hello-world:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security.
|
||||||
|
Status: Downloaded newer image for hello-world:latest
|
||||||
|
Hello from Docker.
|
||||||
|
This message shows that your installation appears to be working correctly.
|
||||||
|
|
||||||
$ docker run --rm -i -t -p 80:80 nginx
|
To generate this message, Docker took the following steps:
|
||||||
|
1. The Docker client contacted the Docker daemon.
|
||||||
|
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
|
||||||
|
(Assuming it was not already locally available.)
|
||||||
|
3. The Docker daemon created a new container from that image which runs the
|
||||||
|
executable that produces the output you are currently reading.
|
||||||
|
4. The Docker daemon streamed that output to the Docker client, which sent it
|
||||||
|
to your terminal.
|
||||||
|
|
||||||
then you should be able to access that Nginx server using the IP address reported by:
|
To try something more ambitious, you can run an Ubuntu container with:
|
||||||
|
$ docker run -it ubuntu bash
|
||||||
|
|
||||||
$ boot2docker ip
|
For more examples and ideas, visit:
|
||||||
|
http://docs.docker.com/userguide/
|
||||||
|
|
||||||
Typically, it is 192.168.59.103:2375, but VirtualBox's DHCP implementation might change
|
|
||||||
this address in the future.
|
A more typical way to start and stop `boot2docker` is using the command line.
|
||||||
|
|
||||||
# Further details
|
### From your command line
|
||||||
|
|
||||||
If you are curious, the username for the boot2docker default user is `docker` and the
|
Initialize and run `boot2docker` from the command line, do the following:
|
||||||
password is `tcuser`.
|
|
||||||
|
|
||||||
The Boot2Docker management tool provides several additional commands for working with the
|
1. Create a new Boot2Docker VM.
|
||||||
VM and Docker:
|
|
||||||
|
|
||||||
$ ./boot2docker
|
$ boo2docker init
|
||||||
Usage: ./boot2docker [<options>]
|
|
||||||
{help|init|up|ssh|save|down|poweroff|reset|restart|config|status|info|ip|delete|download|version} [<args>]
|
|
||||||
|
|
||||||
Continue with the [User Guide](/userguide/).
|
This creates a new virtual machine. You only need to run this command once.
|
||||||
|
|
||||||
|
2. Start the `boot2docker` VM.
|
||||||
|
|
||||||
|
$ boot2docker start
|
||||||
|
|
||||||
|
3. Display the environment variables for the Docker client.
|
||||||
|
|
||||||
|
$ boot2docker shellinit
|
||||||
|
Writing /Users/mary/.boot2docker/certs/boot2docker-vm/ca.pem
|
||||||
|
Writing /Users/mary/.boot2docker/certs/boot2docker-vm/cert.pem
|
||||||
|
Writing /Users/mary/.boot2docker/certs/boot2docker-vm/key.pem
|
||||||
|
export DOCKER_HOST=tcp://192.168.59.103:2376
|
||||||
|
export DOCKER_CERT_PATH=/Users/mary/.boot2docker/certs/boot2docker-vm
|
||||||
|
export DOCKER_TLS_VERIFY=1
|
||||||
|
|
||||||
|
The specific paths and address on your machine will be different.
|
||||||
|
|
||||||
|
4. To set the environment variables in your shell do the following:
|
||||||
|
|
||||||
|
$ $(boot2docker shellinit)
|
||||||
|
|
||||||
|
You can also set them manually by using the `export` commands `boot2docker`
|
||||||
|
returns.
|
||||||
|
|
||||||
|
5. Run the `hello-world` container to verify your setup.
|
||||||
|
|
||||||
|
$ docker hello-world
|
||||||
|
|
||||||
|
|
||||||
|
## Basic Boot2Docker Exercises
|
||||||
|
|
||||||
|
At this point, you should have `boot2docker` running and the `docker` client
|
||||||
|
environment initialized. To verify this, use the following commands:
|
||||||
|
|
||||||
|
$ boot2docker status
|
||||||
|
$ docker version
|
||||||
|
|
||||||
|
Work through this section to try some practical container tasks using `boot2docker` VM.
|
||||||
|
|
||||||
|
### Access container ports
|
||||||
|
|
||||||
|
1. Start an NGINX container on the DOCKER_HOST.
|
||||||
|
|
||||||
|
$ docker run -d -P --name web nginx
|
||||||
|
|
||||||
|
Normally, the `docker run` commands starts a container, runs it, and then
|
||||||
|
exits. The `-d` flag keeps the container running in the background
|
||||||
|
after the `docker` command exits. The `-P` flag publishes exposed ports from the
|
||||||
|
container to your local host; this lets you access them from your Mac.
|
||||||
|
|
||||||
|
2. Display your running container with `docker ps` command
|
||||||
|
|
||||||
|
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
|
||||||
|
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
|
||||||
|
|
||||||
|
At this point, you can see `nginx` is running as a daemon.
|
||||||
|
|
||||||
|
3. View just the container's ports.
|
||||||
|
|
||||||
|
$ docker port web
|
||||||
|
443/tcp -> 0.0.0.0:49156
|
||||||
|
80/tcp -> 0.0.0.0:49157
|
||||||
|
|
||||||
|
This tells you that the `web` container's port `80` is mapped to port
|
||||||
|
`49157` on your Docker host.
|
||||||
|
|
||||||
|
4. Enter the `https://localhost:49157` address (`localhost` is `0.0.0.0`) in your browser:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
This didn't work. The reason it doesn't work is your `DOCKER_HOST` address is
|
||||||
|
not the localhost address (0.0.0.0) but is instead the address of the
|
||||||
|
`boot2docker` VM.
|
||||||
|
|
||||||
|
5. Get the address of the `boot2docker` VM.
|
||||||
|
|
||||||
|
$ boot2docker ip
|
||||||
|
192.168.59.103
|
||||||
|
|
||||||
|
6. Enter the `https://192.168.59.103:49157` address in your browser:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Success!
|
||||||
|
|
||||||
|
7. To stop and then remove your running `nginx` container, do the following:
|
||||||
|
|
||||||
|
$ docker stop web
|
||||||
|
$ docker rm web
|
||||||
|
|
||||||
|
### Mount a volume on the container
|
||||||
|
|
||||||
|
When you start `boot2docker`, it automatically shares your `/Users` directory
|
||||||
|
with the VM. You can use this share to mount directories onto your container.
|
||||||
|
The next exercise demonstrates how to do this.
|
||||||
|
|
||||||
|
1. Change to your user `$HOME` directory.
|
||||||
|
|
||||||
|
$ cd $HOME
|
||||||
|
|
||||||
|
2. Make a new `site` directory.
|
||||||
|
|
||||||
|
$ mkdir site
|
||||||
|
|
||||||
|
3. Change into the `site` directory.
|
||||||
|
|
||||||
|
$ cd site
|
||||||
|
|
||||||
|
4. Create a new `index.html` file.
|
||||||
|
|
||||||
|
$ echo "my new site" > index.html
|
||||||
|
|
||||||
|
5. Start a new `nginx` container and replace the `html` folder with your `site` directory.
|
||||||
|
|
||||||
|
$ docker run -d -P -v /Users/mary/site:/usr/share/nginx/html --name mysite nginx
|
||||||
|
|
||||||
|
6. Get the `mysite` container's port.
|
||||||
|
|
||||||
|
$ docker port mysite
|
||||||
|
80/tcp -> 0.0.0.0:49166
|
||||||
|
443/tcp -> 0.0.0.0:49165
|
||||||
|
|
||||||
|
7. Open the site in a browser:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
8. Try adding a page to your `$HOME/site` in real time.
|
||||||
|
|
||||||
|
$ echo "This is cool" > cool.html
|
||||||
|
|
||||||
|
9. Open the new page in the browser.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
9. Stop and then remove your running `mysite` container.
|
||||||
|
|
||||||
|
$ docker stop mysite
|
||||||
|
$ docker rm mysite
|
||||||
|
|
||||||
|
## Upgrade Boot2Docker
|
||||||
|
|
||||||
|
If you running Boot2Docker 1.4.1 or greater, you can upgrade Boot2Docker from
|
||||||
|
the command line. If you are running an older version, you should use the
|
||||||
|
package provided by the `boot2docker` repository.
|
||||||
|
|
||||||
|
### From the command line
|
||||||
|
|
||||||
|
To upgrade from 1.4.1 or greater, you can do this:
|
||||||
|
|
||||||
|
1. Open a terminal on your local machine.
|
||||||
|
|
||||||
|
2. Stop the `boot2docker` application.
|
||||||
|
|
||||||
|
$ boot2docker stop
|
||||||
|
|
||||||
|
3. Run the upgrade command.
|
||||||
|
|
||||||
|
$ boot2docker upgrade
|
||||||
|
|
||||||
|
|
||||||
|
### Use the installer
|
||||||
|
|
||||||
|
To upgrade any version of Boot2Docker, do this:
|
||||||
|
|
||||||
|
1. Open a terminal on your local machine.
|
||||||
|
|
||||||
|
2. Stop the `boot2docker` application.
|
||||||
|
|
||||||
|
$ boot2docker stop
|
||||||
|
|
||||||
|
3. Go to the [boo2docker/osx-installer ](
|
||||||
|
https://github.com/boot2docker/osx-installer/releases/latest) release page.
|
||||||
|
|
||||||
|
4. Click the`Boot2Docker-x.x.x.pkg` link in the "Downloads" section.
|
||||||
|
|
||||||
|
Your browser downloads the package.
|
||||||
|
|
||||||
|
2. Install Boot2Docker by double-clicking the package.
|
||||||
|
|
||||||
|
The installer places a `Boot2Docker` app in your `Applications` folder.
|
||||||
|
|
||||||
|
|
||||||
|
## Learning more and Acknowledgement
|
||||||
|
|
||||||
|
|
||||||
|
Use `boot2docker help` to list the full command line reference. For more
|
||||||
|
information about using SSH or SCP to access the Boot2Docker VM, see the README
|
||||||
|
at [Boot2Docker repository](https://github.com/boot2docker/boot2docker).
|
||||||
|
|
||||||
|
Thanks to Chris Jones whose [blog](http://goo.gl/Be6cCk) inspired me to redo
|
||||||
|
this page.
|
||||||
|
|
||||||
|
Continue with the [Docker User Guide](/userguide/).
|
||||||
|
|
||||||
For further information or to report issues, please visit the [Boot2Docker site](http://boot2docker.io).
|
|
||||||
|
|
Loading…
Reference in New Issue