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

在centos6.5上安装docker_docker

突然发现在不知不觉中已经创建了这么多容器,如果一个一个去删不知猴年马月才能删完了,用个简单的命令删掉

dp=`docker ps -a | awk {'print $1'} | tail -20` 
docker rm ${dp}

在centos6.5上安装docker_安装_02

2.删除镜像

###查看镜像
docker p_w_picpaths
docker rmi centos6.5_wget 或者IMAGE ID

出现以下错误,原来是有个容器还在这个镜像中创建的,要删除镜像,必须先把在这个镜像上创建的容器删掉才行

在centos6.5上安装docker_docker_03