Docker简介
Docker组成:
1. Docker 服务器守护程序(server daemon),用于管理所有的容器。
2. Docker 命令行客户端,用于控制服务器守护程序。
3. Docker 镜像:查找和浏览 docker 容器镜像。它也访问这里得到:https://index.docker.io/
特性:
文件系统隔离:每个进程容器运行在一个完全独立的根文件系统里。
资源隔离:系统资源,像CPU和内存等可以分配到不同的容器中,使用cgroup。
网络隔离:每个进程容器运行在自己的网络空间,虚拟接口和IP地址。
日志记录:Docker将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索。
变更管理:容器文件系统的变更可以提交到新的映像中,并可重复使用以创建更多的容器。无需使用模板或手动配置。
交互式shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上,例如运行一个一次***互shell。
安装:
epel源,CentOS6 .5或以上版本,内核2.6.32-431或以上版
一、docker安装
安装环境:虚拟机+Centos6.5
在安装好centos6.5以后,可以使用这个脚本来使用国内的阿里云镜像源
#!/bin/bash mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo yum makecache
1.1 取消selinux,因为它会干扰lxc的正常功能
sudo vim /etc/selinux/config SELINUX=disabled SELINUXTYPE=targeted
1.2 安装 Fedora EPEL
sudo yum install http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
1.3 添加 hop5 repo地址
cd /etc/yum.repos.d sudo wget http://www.hop5.in/yum/el6/hop5.repo
1.4 安装docker
yum install docker-io service docker start chkconfig docker on
1.5下载官方制作的CentOS6.4镜像
docker pull centos:latest
1.6 查看已经安装好的虚拟机
docker p_w_picpaths
1.7 测试执行一个top命令
ID=$( docker run -d centos /usr/bin/top -b) docker attach $ID
1.8 kill掉容器或停止容器
docker ps -a docker stop $ID ############### docker stop <CONTAINER ID>
1.9 进入虚拟机终端
docker run -i -t centos /bin/bash
1.10 docker也提供了在线搜索镜像模板功能,类似与puppet在线安装模板
docker search ubuntu docker search centos docker search debian
1.11 查看容器日志
docker logs -f <CONTAINER ID>
1.12 删除所有容器
docker rm $(docker ps -a -q)
1.13 删除镜像
docker rmi <p_w_picpath id/name>
二、 docker保存方式
有两种保存docker的container的方式
一是通过commit和push,将对centos这个p_w_picpath的修改提交,在本地的repository中形成一个新的镜像,然后可以将这个镜像提交到Docker的官方Index库中,以后如果要使用这个镜像的话,直接从官方的index下载即可。
二是通过save方法在本地保存一个tar压缩文件,这个.tar文件可以拷贝到其它装有Docker的机器,然后通过导入import,来恢复这个container。
第一种方式
第一步:commit
docker commit -author="your name <your email>" -m="your message" <Container ID> p_w_picpathname:tag
Container ID就是刚才操作的那个container ID,另外p_w_picpathname必须全部是小写,数字,下划线以及”.“的集合,不能大写或其实符号。tag就是这个p_w_picpath的标志,方便自己以后对这个p_w_picpath的改动做一个认知。
第二步:push
docker push p_w_picpathname:tag
在pull之前Docker会要求你登录Docker的网站,所以在pull之前,你必须先到Docker注册你的用户名,然后就可以把你本地的p_w_picpath上传到官方的Index上面去了。
第二种方式
第一步:save
docker save container:tag > yourname.tar
第二步:import
docker import - yourname.tar
三、 docker删除方式
1.删除容器
###查看现在存在的docker容器 docker ps -a
突然发现在不知不觉中已经创建了这么多容器,如果一个一个去删不知猴年马月才能删完了,用个简单的命令删掉
dp=`docker ps -a | awk {'print $1'} | tail -20` docker rm ${dp}
2.删除镜像
###查看镜像 docker p_w_picpaths docker rmi centos6.5_wget 或者IMAGE ID
出现以下错误,原来是有个容器还在这个镜像中创建的,要删除镜像,必须先把在这个镜像上创建的容器删掉才行