一、Docker概述
Docker是go语言开发的一款开源的应用容器引擎,基于linux内核cgroup\namespace、union FS等技术,对应用进程进行封装隔离,而且独立与宿主机与其余进程,这种运行时封装的状态称为容器。
docker 早期版本实现是基于LXC,并进一步对其封装,包括文件系统、网络互连、镜像管理等方面,极大简化了容器管理,从0.7版本之后开始去除LXC,转为自主研发的libcontainer
docker 理念是将应用及依赖包打包到一个可移植的容器中,可发布到任意的linux 发现版docker引擎上,是用沙箱机制运行程序,程序之间互相隔离。
Docker是使用最普遍的开源容器引擎,一种操做系统级别的虚拟化技术,依赖linux内核特性,一个简单的引用程序打包工具。
二、Docker组成
Docker Client 客户端
Docker Daemon
Docker Images
Docker Container
Docker Registry
三、容器VS虚拟化linux
container | VM | |
---|---|---|
启动级别 | 秒级 | 分钟级 |
运行性能 | 接近原生系统 | 5%左右损耗 |
磁盘占用 | MB | GB |
数量 | 成百上千 | 几十台 |
隔离性 | 进程级 | 系统级,更完全 |
操做系统 | 主要支出linux | 几乎全部平台 |
封装承担 | 只打包项目代码和依赖关系,共享宿主机的内核 | 完整的操做系统 |
四、应用场景
(1)应用程序打包和发布
(2)应用程序隔离
(3)持续集成
(4)部署微服务
(5)快速搭建测试环境
(6)提供PaaS(平台即服务)
五、安装
官方文档:docs.docker.com
(1)卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
(2)使用存储库安装
在新主机上首次安装Docker Engine - Community以前,须要设置Docker存储库。以后,您能够从存储库安装和更新Docker。docker
设置存储库
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2json
使用如下命令设置稳定存储库。
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repocentos
(3)安装DOCKER ENGINE - 社区
yum install docker-ce docker-ce-cli containerd.io网络
(4)启动docker服务,并设置开机启动
systemctl start docker
systemctl enable dockerapp
若是有离线部署的需求,可用二进制包安装,
(1)下载二进制包:
https://download.docker.com/linux/static/stable/x86_64/ide
(2)使用该tar实用程序提取存档
$ tar xzvf /path/to/<FILE>.tar.gz微服务
(3)将二进制文件移动到可执行文件路径上的目录中,例如/usr/bin/。若是跳过此步骤,则必须在调用docker或dockerd命令时提供可执行文件的路径。工具
$ sudo cp docker/* /usr/bin/性能
(4)启动Docker守护程序
$ sudo dockerd &
若是须要使用其余选项启动守护程序,请相应地修改上述命令,或者建立并编辑该文件/etc/docker/daemon.json 以添加自定义配置选项。
(5)经过运行hello-world 映像验证Docker是否已正确安装。$ sudo docker run hello-world