Docker可以解决虚拟机能够解决的问题,同时也能够解决虚拟机由于资源要求过高而无法解决的问题。Docker能处理的事情包括:
隔离应用依赖
创建应用镜像并进行复制
创建容易分发的即启即用的应用
允许实例简单、快速地扩展
测试应用并随后销毁它们
Docker背后的想法是创建软件程序可移植的轻量容器,让其可以在任何安装了Docker的机器上运行,而不用关心底层操作系统,就像野心勃勃的造船者们成功创建了集装箱而不需要考虑装在哪种船舶上一样。
先用brew下载
brew install boot2docker
下载vm
boot2docker init
启动
boot2docker up
Waiting for VM and Docker daemon to start...
.......................oooooooooooo
Started.
Writing /Users/xiayuanyin/.boot2docker/certs/boot2docker-vm/ca.pem
Writing /Users/xiayuanyin/.boot2docker/certs/boot2docker-vm/cert.pem
Writing /Users/xiayuanyin/.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/xiayuanyin/.boot2docker/certs/boot2docker-vm
export DOCKER_TLS_VERIFY=1
Or run:eval "$(boot2docker shellinit)"
eval "$(boot2docker shellinit)"
跑一个测试容器
docker run hello-world
然后运行
docker info
可以看到一系列docker信息
docker images
|REPOSITORY | TAG | IMAGE ID | CREATED | VIRTUAL SIZE|
|hello-world | latest | 975b84d108f1 | 8 days ago | 960 B|
接下来准备安装一个ubuntu
docker pull ubuntu:14.04.2
14.04.2: Pulling from library/ubuntu
c0394f4c2a7a: Pull complete
455b60354507: Pull complete
ca9ac6269730: Pull complete
f65d74052b89: Pull complete
Digest: sha256:a1cec70421f71f00c8bdb0adf0226dc548ff5ba9699cbd5fa09acdb68df82a02
Status: Downloaded newer image for ubuntu:14.04.2
通过docker images
可以看到刚下载的ubuntu
创建一个目录然后在下面创建一个Dorckerfile的文件,输入
FROM ubuntu:14.04.2
RUN apt-get update
RUN apt-get install ruby2.1
RUN apt-get install gem
RUN gem install bundler
保存 然后执行
docker build -t dev:base .
注意后面有个.
等几个下载完成以后运行
bash
docker run --name shell -i -t dev:base /bin/bash
ruby irb
docker run -i -t --name ruby dev:base irb
运行成功则说明安装ok