Docker是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。利用Linux的LXC、AUFS、Go语言、cgroup实现了资源的独立,可以很轻松的实现文件、资源、网络等隔离,其最终的目标是实现类似PaaS平台的应用隔离。
Docker值得关注的特性:
-
-
文件系统隔离:每个进程容器运行在一个完全独立的根文件系统里。
-
资源隔离:系统资源,像CPU和内存等可以分配到不同的容器中,使用cgroup。
-
网络隔离:每个进程容器运行在自己的网络空间,虚拟接口和IP地址。
-
日志记录:Docker将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索。
-
变更管理:容器文件系统的变更可以提交到新的映像中,并可重复使用以创建更多的容器。无需使用模板或手动配置。
-
交互式shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上,例如运行一个一次***互shell。
-
Docker通常用于如下场景:
-
-
web应用的自动化打包和发布;
-
自动化测试和持续集成、发布;
-
在服务型环境中部署和调整数据库或其他的后台应用;
-
从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。
-
我这里用的是CentOS6.8。
注意:其他的源可能导致你的内核和docker的版本不一致,需要升级内核至3.x。
安装:
1 [root@localhost ~]# rpm -ivh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 2 Retrieving http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 3 warning: /var/tmp/rpm-tmp.JN76fI: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY 4 Preparing... ########################################### [100%] 5 1:epel-release ########################################### [100%] 6 [root@localhost ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 7 8 [root@localhost ~]# yum -y install docker-io 9 10 启动并设置开机自动启动 11 12 [root@localhost ~]# service docker start 13 Starting cgconfig service: [确定] 14 Starting docker: [确定] 15 [root@localhost ~]# chkconfig docker on
获取centos镜像
[root@localhost ~]# docker pull hub.c.163.com/public/centos:6.7
官方安装方式docker pull imagename从docker的索引中心下载,imagename是镜像名称,例如docker pull Ubuntu就是下载base ubuntu并且tag是latest。
由于国内访问直接访问Docker hub网速比较慢,拉取镜像的时间就会比较长。一般我们会使用镜像加速或者直接从国内的一些平台镜像仓库上拉取。
列出两个常用的:
网易镜像中心:https://c.163.com/hub#/m/home/
daocloud镜像市场:https://hub.daocloud.io/
查看docker镜像
运行docker运行shell
查看容器信息
停止容器
[root@localhost ~]# docker stop <CONTAINER ID>
删除容器(docker rm):
docker ps -a #获取容器name docker rm container_name
删除所有容器
docker rm $(docker ps -a -q)
刚接触。