docker介绍
Docker 这个单词英文原意是码头工人,搬运工的意思,这个搬运工搬运的是各种应用的容器。
官方的说法是,Docker是提供给开发者和系统管理员一个分布式应用的开放平台。在更多人的理解中,Docker是一种把你的应用或者服务打包后放在容器中运行的技术。
Docker 可以说有三个关键点:构建,运输,运行。这三个词可以对应我上述提到的那句话,构建即为打包,既然是打包了,那么就需要可以方便地搬运到各个地方,为什么要搬运呢?归根到底,我们是要运行打包了的应用和服务。
Docker存在的意图是让你把各种语言编写的程序应用以带有普适性的形式打包好,你只要拿到打包好的东西,可以忽略程序本身依赖的环境或者开发的语言,直接使用Docker便可以运行起来。在这个实际意义之上,最重要的是Docker提供了容器技术来隔离多个打包的应用或者服务之间的相互影响,同时由于打包的东西具有普适性,那么在应用规模的层面上也很便于扩展。
对于运维的管理人员,Docker提供了一种可移植的标准化部署流程,对于开发者,Docker 提供了一种开发环境的管理方法。
docker基础概念
镜像
按照Docker的规则,制作的应用。
镜像的大小不等于通过docker images 看到的每个镜像大小的合集,docker镜像采用了分层的机制。上层使用共同下层,各自不同部门构建各自的独立分层。
docker的镜像通过联合文件系统(union filesystem)将各层文件系统叠加在一起。
镜像的两个特性:
已有的分层镜像只能读不能改,上层镜像优先高于底层镜像。容器
利用镜像所启动的就是容器,容器会启动预定义的进程与用户交付,对外提供服务
分层
每一个镜像都是一层一层叠加的,最多有128层
aufs最多支持128层。(用户可以通过commit基于容器分层的概念,创建新的镜像,但是最多不能超过128层,Dockerfile中每一条run增加一层)
仓库
镜像的存储地
docker安装
centos7安装docker
# yum install docker
启动docker服务
# service docker start
Redirecting to /bin/systemctl start docker.service
设置docker开机启动
# chkconfig docker on
Note: Forwarding request to 'systemctl enable docker.service'.
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
docker file简单介绍
- 用法
描述工程所有文件的编译顺序,规则,控制docker的构建
- 语法
from
构建的基础
MAINTAINER
指定镜像的作者
ENV
设置环境变量
可以写多个
RUN
运行shell命令
多条用 && 连接,每个命令生成一层
COPY
将编译机本地文件拷贝到镜像文件系统中
ADD
文件复制
比copy命令多两个功能:add文件连接地址, 拷贝后可以自动解压
EXPOSE
指定监听的端口
ENTRYPOINT
在使用镜像创建容器,容器启动后才执行的命令
ONBUILD
配置当所创建的镜像作为其它新创建镜像的基础镜像时,所执行的操作指令。
VOLUME
挂载目录