查找镜像
$>docker search ${imagename}
拉取镜像
$>docker pull <镜像名:tag>
//例如
$>docker pull asdc/centos6.7
查看所有镜像
$>docker images
删除镜像
$>docker rmi <镜像名称>
$>docker rmi $(docker rmi $(docker images | awk '{print $3}' | awk '{a[NR]=$0}END{for(i=2;i<NR;i++)print a[i]}'))
启动容器
$>docker run -d -v /opt/nginx/tengine.conf:/usr/local/nginx/conf/nginx.conf -p 80:80 --name=nginx nginx
$>docker run -i -t ubuntu /bin/bash <镜像名称>
-a=map[]:附加标准输入、输出或者错误输出
-c=0:共享CPU格式(相对重要)
-cidfile="":将容器的ID标识写入
-d=false:分离模式,在后台运行容器,并且打印出容器ID
-e=[]:设置环境变量
-h="":容器的主机名称
-i=false: 保持输入流开放即使没有附加输入流
-privileged=false: 给容器扩展的权限
-m="": 内存限制 (格式:<number><optional unit>, unit单位 = b, k, m or g
-n=true: 允许镜像使用网络
-p=[]: 匹配镜像内的网络端口号
-rm=false:当容器退出时自动删除容器 (不能跟 -d一起使用)
-t=false: 分配一个伪造的终端输入
-u="": 用户名或者ID
-dns=[]: 自定义容器的DNS服务器
-v=[]: 创建一个挂载绑定:[host-dir]:[container-dir]:[rw|ro].如果容器目录丢失,docker会创建一个新的卷
-volumes-from="": 挂载容器所有的卷
-entrypoint="": 覆盖镜像设置默认的入口点
-w="": 工作目录内的容器
-lxc-conf=[]: 添加自定义-lxc-conf="lxc.cgroup.cpuset.cpus = 0,1"
-sig-proxy=true: 代理接收所有进程信号(even in non-tty mode)
-expose=[]: 让你主机没有开放的端口
-link="": 连接到另一个容器(name:alias)
-name="": 分配容器的名称,如果没有指定就会随机生成一个
-P=false: Publish all exposed ports to thehost interfaces 公布所有显示的端口主机接口
停止、启动、杀死一个容器
$>docker stop <容器名orID>
$>docker start<容器名orID>
$>docker kill <容器名orID>
修改提交镜像
$>docker run -i -t training/sinatra /bin/bash
$>gem install json
$>docker commit -m "Add json gem" -a "Docker Author" <容器ID> <新镜像名称>
一个容器连接到另一个容器(父子链接)
$>docker run -i -t --name <容器名> -d -link mongodb:db <镜像名>
迁移镜像
$>docker save busybox-1 > /home/save.tar
docker load < /home/save.tar