标签:mac os x 虚拟机 docker linux内核 虚拟化
Docker是一个开源的容器引擎,能提供虚机化,从而达到隔离应用,可移植到任意安装有Docker的机器上运行,这对开发者来说是一个极大的福音。
由于工作上原因,最近准备开始使用Docker(公司装Docker的时候,linux server内核版本太低,需要重新编译)。
本文主要讲解如何在Mac OSX上安装Docker。
Tips:由于Docker引擎是使用了特定于Linux内核的特性,所以需要安装一个轻量级的虚拟机(如VirtualBox)来在OSX上运行。
所以需要下载官方提供的Boot2Docker来运行Docker守护进程。
双击下载后的PKG包,进入安装向导:
安装完毕后,会发现你的Application里面多了2个程序:
这就是刚才我们提到的Boot2Docker和VM:
至此,安装步骤完毕。
从日志可以看出,初始化的过程是下载一个boot2docer.iso,然后会用ssh生成用于docker的ssh的公钥和私钥对,用于远程。
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.. | +-----------------+
boot2docerk start命令来启动
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,这个就是以后要访问的虚拟机的地址。
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命令
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
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/
docker run --rm -i -t -p 80:80 nginx
shengli-mac$ docker run --rm -i -t -p 80:80 nginx Unable to find image ‘nginx‘ locally nginx:latest: The image you are pulling has been verified f10807909bc5: Pull complete f6fab3b798be: Pull complete d21beea329f5: Pull complete 04499cf33a0e: Pull complete 34806d38e48d: Pull complete 343c8475e349: Pull complete 92360dceda1a: Pull complete 9495a555677d: Pull complete 911e2df03930: Pull complete 88daddf047c6: Pull complete db8a64f62509: Pull complete e46b3488b010: Pull complete 511136ea3c5a: Already exists Status: Downloaded newer image for nginx:latest
192.168.59.3 - - [07/Dec/2014:02:24:06 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36" "-" 2014/12/07 02:24:06 [error] 7#0: *1 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 192.168.59.3, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "192.168.59.103" 192.168.59.3 - - [07/Dec/2014:02:24:06 +0000] "GET /favicon.ico HTTP/1.1" 404 570 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36" "-"
boot2docker ip
shengli-mac$ boot2docker ip The VM‘s Host only interface IP address is: 192.168.59.103
本文讲解了,如何在Mac OSX安装和部署Docker,没有特别难的步骤,VM启动也是后台进程,很轻量级。
/Applications/VirtualBox.app/Contents/MacOS/VBoxHeadless --comment boot2docker-vm --startvm 89b84e20-fd75-4ae6-a437-c3b2778aeed1 --vrde config
——EOF——
参考:https://docs.docker.com/installation/mac/
原创文章,转账请注明出自:http://blog.csdn.net/oopsoom/article/details/41785999
标签:mac os x 虚拟机 docker linux内核 虚拟化
原文地址:http://blog.csdn.net/oopsoom/article/details/41785999