您的位置:首页 > 运维架构 > Docker

docker入门

2016-07-14 20:20 423 查看

Docker入门

docker设想是交付运行环境如同海运,OS如同一个货轮,每一个在OS基础上的软件都如同一个集装箱,用户可以通过标准化手段自由组装运行环境,同时集装箱的内容可以由用户自定义,也可以由专业人员制造。这样,交付一个软件,就是一系列标准化组件的集合的交付,如同乐高积木,用户只需要选择合适的积木组合,并且在最顶端署上自己的名字(最后个标准化组件是用户的app)。这也就是基于docker的PaaS产品的原型。(摘自百度百科)

自己的理解:为什么要用docker

业务分离,比如一个项目中有文件服务器,webUI,Nginx负载均衡和反向代理,其他服务。可以将各个业务分别部署到一个单独的docker容器中,镜像也是分别维护,各自独立。

横向扩展,比如文件服务器或者其他服务需要扩展,只需要多起几个相同的容器,进行相关配置,即可满足增加的需求。当负载变低时,又可以将多余的容器停止。

部署方便,使用k8s(kubernetes)对各个业务容器分别部署,各自有独立的配置文件,配置脚本。维护镜像也是独立的。

Docker安装

CentOS6

yum install http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm yum install docker-io


CentOS7(库中已带Docker)

yum install docker


启动Docker

service docker start
chkconfig docker on


Docker三个基本概念

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。

镜像

Docker镜像就是一个只读模板,一般是在一个操作系统的基础上,只安装了某一个应用。Docker镜像用来创建Docker容器。

容器

Docker容器是运行应用的环境,从镜像创建的实例。(就像根据类new一个对象一样,根据镜像run一个容器),容器实际上就是一个精简的Linux环境,只有少量的应用程序。

仓库

仓库是存放镜像文件的场所,可以使用公共的仓库,也可以使用本地自己建立的仓库。每个仓库中存放这多个镜像,每个镜像有id、tag等属性。和git一样上传使用push命令,获取使用pull命令。

Docker常用命令

功能命令
获取镜像docker pull 镜像地址
上传镜像docker push 镜像
创建容器docker run -it 镜像 命令(/bin/bash等)
显示镜像docker images
保存镜像到本地docker save -o 目标文件
往镜像中导入文件docker load –input 文件
在启动的容器中添加应用gem install 应用名,然后exit,然后docker commit提交新的镜像,可以跟-m描述信息,-a指定用户信息 后面跟上源镜像的id(需要预先记住)
移除docker镜像docker rmi 镜像(需要预先删除依赖于该镜像的容器docker rm 容器)
启动终止的容器docker start 容器
终止启动的容器docker stop 容器
查看容器中的进程docker ps
查看容器输出信息docker logs 容器
进入docker容器后就像操作一台linux一样,可以使用装好的应用。

利用dockerfile创建镜像

新建一个dockerfile,包含多条指令:

From指令告诉Docker基于哪个镜像来创建新的镜像

Maintainer Docker 指定维护者信息

Run 跟shell命令

编写完dockerFile之后,可以使用docker build来生成镜像

docker build -t=”tag信息” dockerfile的路径
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  docker 云计算