Mac上安装Docker
原创文章,转账请注明出自:http://blog.csdn.net/oopsoom/article/details/41785999一、简介Docker是一个开源的容器引擎,能提供虚机化,从而达到隔离应用,可移植到任意安装有Docker的机器上运行,这对开发者来说是一个极大的福音。
由于工作上原因,最近准备开始使用Docker(公司装Docker的时候,linux server内核版本太低,需要重新编译)。
本文主要讲解如何在Mac OSX上安装Docker。
Tips:由于Docker引擎是使用了特定于Linux内核的特性,所以需要安装一个轻量级的虚拟机(如VirtualBox)来在OSX上运行。
所以需要下载官方提供的Boot2Docker来运行Docker守护进程。
二、Docker安装
1. 安装 boot2docker/osx-installer
找到最新的Release版本点击下载,直接安装.
双击下载后的PKG包,进入安装向导:
安装完毕后,会发现你的Application里面多了2个程序:
这就是刚才我们提到的Boot2Docker和VM:
至此,安装步骤完毕。
三、配置启动Docker
在安装完毕后boot2docker后,就可以直接使用boot2docerk这个client command来操作vm中Images了。
1、boot2docker init 命令进行初始化
从日志可以看出,初始化的过程是下载一个boot2docer.iso,然后会用ssh生成用于docker的ssh的公钥和私钥对,用于远程。
view plain copy
[*] shengli-mac$ boot2docker init
[*] Latest release for boot2docker/boot2docker is v1.3.2
[*] Downloading boot2docker ISO image...
[*] Success: downloaded https://github.com/boot2docker/boot2docker/releases/download/v1.3.2/boot2docker.iso
[*] to /Users/shengli/.boot2docker/boot2docker.iso
[*] Generating public/private rsa key pair.
[*] Your identification has been saved in /Users/shengli/.ssh/id_boot2docker.
[*] Your public key has been saved in /Users/shengli/.ssh/id_boot2docker.pub.
[*] The key fingerprint is:
[*] ff:7a:53:95:e6:44:27:70:e1:ac:0a:b5:02:35:72:29 shengli@192.168.2.101
[*] The key's randomart image is:
[*] +--[ RSA 2048]----+
[*]
[*] | . +...o. |
[*]
[*] | E+.. +...|
[*]
[*] | ... +.o|
[*]
[*] | . . . . +.|
[*]
[*] | S . . +. |
[*]
[*] | + ... |
[*]
[*] | o. |
[*]
[*] | .o |
[*]
[*] | .o.. |
[*]
[*] +-----------------+
2、启动
boot2docerk start命令来启动
view plain copy
[*] shengli-mac$ boot2docker start
[*] Waiting for VM and Docker daemon to start...
[*] .......................ooooooooooooooooooo
[*] Started.
[*] Writing /Users/shengli/.boot2docker/certs/boot2docker-vm/ca.pem
[*] Writing /Users/shengli/.boot2docker/certs/boot2docker-vm/cert.pem
[*] Writing /Users/shengli/.boot2docker/certs/boot2docker-vm/key.pem
[*]
[*] To connect the Docker client to the Docker daemon, please set:
[*] export DOCKER_HOST=tcp://192.168.59.103:2376
[*] export DOCKER_CERT_PATH=/Users/shengli/.boot2docker/certs/boot2docker-vm
[*] export DOCKER_TLS_VERIFY=1
Ps:这里HOST为192.168.59.103,这个就是以后要访问的虚拟机的地址。
view plain copy
[*] shengli-mac$ $(/usr/local/bin/boot2docker shellinit)
[*] Writing /Users/shengli/.boot2docker/certs/boot2docker-vm/ca.pem
[*] Writing /Users/shengli/.boot2docker/certs/boot2docker-vm/cert.pem
[*] Writing /Users/shengli/.boot2docker/certs/boot2docker-vm/key.pem
[*] shengli-mac$ docker version
[*] Client version: 1.3.2
[*] Client API version: 1.15
[*] Go version (client): go1.3.3
[*] Git commit (client): 39fa2fa
[*] OS/Arch (client): darwin/amd64
[*] Server version: 1.3.2
[*] Server API version: 1.15
[*] Go version (server): go1.3.3
[*] Git commit (server): 39fa2fa
至此,配置完毕。
如果想进入到虚拟机的控制台,可以使用boot2docker ssh命令
view plain copy
[*] shengli-mac$ boot2docker ssh
[*] ## .
[*] ## ## ## ==
[*] ## ## ## ## ===
[*] /""""""""""""""""\___/ ===
[*] ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /===- ~~~
[*] \______ o __/
[*] \ \ __/
[*] \____\______/
[*] _ _ ____ _ _
[*] | |__ ___ ___ | |_|___ \ __| | ___ ___| | _____ _ __
[*] | '_ \ / _ \ / _ \| __| __) / _` |/ _ \ / __| |/ / _ \ '__|
[*] | |_) | (_) | (_) | |_ / __/ (_| | (_) | (__| <__/ |
[*] |_.__/ \___/ \___/ \__|_____\__,_|\___/ \___|_|\_\___|_|
[*] Boot2Docker version 1.3.2, build master : 495c19a - Mon Nov 24 20:40:58 UTC 2014
[*] Docker version 1.3.2, build 39fa2fa
四、第一个和第二个Docker程序
对于第一个,相信大家都很了解,Docker版的HelloWorld。这个正好来验证是否安装成功。
1. Docker HelloWorld
运行 docker run hello-world,docker会在本地查找镜像是否存在(肯定不存在了,刚装的= =), 然后docker会去远程Docker registry server去下载这个镜像。
下载后运行这个镜像。
这个镜像程序,会输出一句 Hello from Docker.
如果看到这句话,说明你的Docker已经正确安装了。
view plain copy
[*] shengli-mac$ docker run hello-world
[*] Unable to find image 'hello-world' locally
[*] hello-world:latest: The image you are pulling has been verified
[*] 511136ea3c5a: Pull complete
[*] 7fa0dcdc88de: Pull complete
[*] ef872312fe1b: Pull complete
[*] Status: Downloaded newer image for hello-world:latest
[*] Hello from Docker.
[*] This message shows that your installation appears to be working correctly.
[*]
[*] 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.
[*]
[*] To try something more ambitious, you can run an Ubuntu container with:
[*] $ docker run -it ubuntu bash
[*]
[*] For more examples and ideas, visit:
[*] http://docs.docker.com/userguide/
运行后,该命令会listen监听访问,如果成功访问,则会看到nginx的log:
——EOF——
个人安装(version:1.8)遇到的问题:
>>>Please shutdown all running VirtualBox machines and exit VirtualBox then restart the installation.
解决方法:
ps aux | grep ‘VBoxHeadless'
然后杀死其对应的进程id
页:
[1]