安装要求
linux内核要求
uname -a
, uname -r
Centos要求kernel版本必须2.6.32-431或更高,也就是Centos 6.5或者更高版本。
device maper
检查device maper是否安装
root@ads ~]# grep device-mapper /proc/devices
253 device-mapper
安装
只支持64位CPU架构的计算机(X86_64, amd64)
linux:
Docker
Windows/OS X:
Boot2Docker
Ubuntu安装实例
前提条件:
Ubuntu 14.04
安装:
wget -qO- https://get.docker.com/ | sh
第一个docker
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
curl -s https://get.docker.io/ubuntu/ | sh
docker pull ubuntu
apt-key命令用于管理Debian Linux系统中的软件包密钥。每个发布的deb包,都是通过密钥认证的,apt-key用来管理密钥。
但是上面还是没下载成功,于是从其他docker镜像地址下了个镜像:
docker pull index.tenxcloud.com/tenxcloud/ubuntu
docker images
docker run -i -t index.tenxcloud.com/tenxcloud/ubuntu /bin/bash
docker run -i -t -d --dns=172.25.0.4 index.tenxcloud.com/tenxcloud/ubuntu /bin/bash
这样一个容器就启动了,进入容器的shell:
root@ba67850c3deb:/#
可以输入exit
来退出容器,退出后容器也停止了。可以通过docker ps -a
看到容器状态
如下操作,退出后,可以重新启动容器。attach
可以让多人同时进入容器,但是任一个人输入exit
后,所有人都会退出
root@ba67850c3deb:/# exit
exit
root@dt:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ba67850c3deb index.tenxcloud.com/tenxcloud/ubuntu "/bin/bash" 57 minutes ago Exited (0) 2 seconds ago reverent_babbage
root@dt:~# docker start ba67850c3deb
ba67850c3deb
root@dt:~# docker attach ba67850c3deb
root@ba67850c3deb:/#
容器
交互式容器 interactive container
守护式容器 daemonized container
进阶
容器启动
- 指定镜像启动容器
docker run -i -t index.tenxcloud.com/tenxcloud/ubuntu /bin/bash
docker images
后可以看到镜像index.tenxcloud.com/tenxcloud/ubuntu
,上面命令可以特定运行此镜像 - 配置dns服务器
docker run -i -t -d --dns=172.25.0.4 index.tenxcloud.com/tenxcloud/ubuntu /bin/bash
指定dns服务器为172.25.0.4
,当然,dns服务器可以设定为列表 - 删除container
docker rm ba67850c3deb
- 在容器中启动一个新任务
docker exec -t -i 93b820a4fa46 /bin/bash
上面命令,相当于在容器中又启动一个/bin/bash
的交互式任务。执行后,会弹出bash终端。
在这个终端上操作,不会影响该容器其他的交互式终端,及时在这里输入exit
退出,其他的也不影响。
这个要支持exec
命令,说是只有docker 1.3以后才支持
命令
docker search tutorial
搜索docker镜像
docker version
查看docker版本
service docker status
查看状态
docker images
列出镜像
docker search ubuntu
查找docker hub上公共的可用镜像
docker info
docker信息
docker ps -a
查看当前系统中容器的列表
docker run --help
docker rm --help
查看某一命令的参数
docker logs ba67850c3deb
可以把这个容器所有的操作都打出来,包括exit以前的等等
docker exec -t -i 93b820a4fa46 /bin/bash
在容器中启动一个新任务
docker load < test.tgz
加载一个本地镜像文件
docker rmi -f 93b820a4fa46
强制删除一个镜像容器
其他注意
非root用户要使用docker,需要将用户添加进docker群组
sudo usermod -a -G docker $USER
If you would like to use Docker as a non-root user, you should now consider
adding your user to the “docker” group with something like:
sudo usermod -aG docker your-user
问题
dns
宿主机可以ping通baidu
但是docker里只能ping通内网ip
Docker容器资源管理
http://www.open-open.com/lib/view/open1425565035056.html