安装docker
yum install docker-io -y


安装内核模块
yum install kernel-devel


如果启动报错  就安装以下模块
yum upgrade device-mapper-libs


修改kernel内核
vi /usr/src/kernels/2.6.32-642.3.1.el6.x86_64/.config
添加修改CONFIG_DM_THIN_PROVISIONING=y


安装febootstrap
yum -y install febootstrap


使用febootstrap制作centos镜像
febootstrap -u http://mirrors.163.com/centos/6.8/updates/x86_64/ -i centos-release -i yum -i iputils -i bash -i wget -i tar -i which centos68 /mydata/docker/ http://mirrors.163.com/centos/6.8/os/x86_64/
febootstrap -i centos-release -i bash -i wget -i yum -i iputils -i iproute -i man -i vim-minimal -i openssh-server -i openssh-clients centos65 centos6-p_w_picpath http://mirrors.aliyun.com/centos/6/os/x86_64/

打包成docker镜像centos68-bash是名字
cd  /mydata/docker/
tar -c .|docker import - centos68-bash
cd centos6-p_w_picpath && tar -c .|docker import - centos65-base



创建一个docker:    
docker run -i -h="test" --name one  -t centos /bin/bash
docker run -i -p 50080:80 -p 50022:22 --name one -v /mydata/python:/var -t centos68-bash /bin/bash


把容器和父镜像一起生成一个新的镜像
docker commit 5c437129b664 centos65-base:sshd


打包镜像
docker save centos65-base:sshd1 >/mydata/docker/save/centos65-base:sshd1.tar

导入镜像
docker load < centos65-base:sshd1.tar


后台启动 and 运行/root/run.sh
docker run -d -p 10080:80 -p 10022:22 -v /etc/yum.repos.d/:/etc/yum.repos.d/ --name three -t centos65-base:sshd /root/run.sh


进入容器:docker attach --sig-proxy=false one



停止所有的container,这样才能够删除其中的p_w_picpaths:
docker stop $(docker ps -a -q)


如果想要删除所有container的话再加一个指令:
docker rm $(docker ps -a -q)

删除单个容器
docker rm d39b4b73764d


查看当前有些什么p_w_picpaths
docker p_w_picpaths


删除p_w_picpaths,通过p_w_picpath的id来指定删除谁
docker rmi


想要删除untagged p_w_picpaths,也就是那些id为的p_w_picpath的话可以用
docker rmi $(docker p_w_picpaths | grep "^" | awk "{print $3}")


要删除全部p_w_picpath的话
docker rmi $(docker p_w_picpaths -q)



从container中拷贝文件,当container已经关闭后,在里面的文件还可以拷贝出来。  
docker cp 8bb0e258aefb:/etc/hosts /tmp
把容器中的/etc/hosts拷贝到/tmp目录下


Usage: docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...]  
Run a command in a new container  
-a=map[]: 附加标准输入、输出或者错误输出  
-c=0: 共享CPU格式(相对重要)  
-cidfile="": 将容器的ID标识写入文件  
-d=false: 在后台运行容器,并且打印出容器ID  
-e=[]:设置环境变量  
-h="": 容器的主机名称  
-i=false: 保持输入流开放即使没有附加输入流  
-privileged=false: 给容器扩展的权限  
-m="": 内存限制 (格式:, 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 pull <镜像名:tag> #从官网拉取镜像  
docker search <镜像名> #搜索在线可用镜像名
docker kill <容器名or ID> #杀掉某个容器