docker原理与部署
docker基本介绍
docker是一种容器,基于go语言实现的开源项目,通过对应用进行封装==>分发==>部署==>运行的一系列操作,达到“一次封装,到处运行”的效果。实际上就是将所有涉及的应用统一封装到一个运行环境中,这个运行环境可进行移植,传统上,不同的应用需要部署到不同的服务器上,而docker只需建立不同隔绝的容器,把应用部署到各个容器中就行了
支持linux版本:redhat,centos,ubnutu
容器概念
将单个操作的系统的资源划分到一个个的运行环境中,可以平衡各个环境之间有冲突的资源使用需求,容器可以在核心cpu本地运行指令,无需任何专业的解释机制
docker特点
快速的交付部署:开发或运维人员使用镜像快速构建应用的开发及运行环境
高效的资源利用:对系统资源配置的要求较低,一台主机最多可以运行上千个docker容器
轻松的迁移及扩展:docker支持在物理机,虚拟机,服务器,个人电脑等平台上运行,可以实现在不同平台间的快速迁移
简单的更新管理:通过dockerfile,使得大量的更新工作更加迅速
启停迅速:docker的启停都是秒级的
操作简单:通过docker命令来控制容器及容器内应用的操作
docker组件
docker Daemon:负责管理 Docker 容器的生命周期和容器运行时环境,docker镜像,docker网络
docker client:docker客户端程序,将用户的服务请求发给Docker Daemon
Docker Compose:Docker Compose 定义容器的配置,可以将多个docker容器组合在一起
docker 仓库:用来存放docker镜像的场所,一个docker应用内包含多个仓库,一个仓库内包含多个docker镜像,镜像创建成功后可以上传到仓库,分为docker hub及私有仓库
docker 镜像:一个只读的docker容器模板,包含docker容器所需的文件系统结构,比如,系统镜像:redhat;应用镜像:nginx
docker 容器:容器是镜像的一个运行实例,用来运行,隔离应用,其中包含运行的应用程序以及系统环境配置等,可以看作是一个linux系统环境,相当于一个虚拟主机
docker部署
卸载旧的docker应用
]# yum -y remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
配置docker有关的yum源
使用阿里docker源
]# yum install -y yum-utils device-mapper-persistent-data lvm2 ]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo ]# sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
下载docker
]# yum makecache fast ]# yum -y install docker-ce
开启docker
]# systemctl start docker ]# systemctl enable docker