Docker简介
Docker是一个用于开发、发布和运行应用程序的开放平台。Docker使您能够将应用程序从基础设施中分离出来,从而可以快速交付软件。使用Docker,您可以像管理应用程序一样管理基础设施。通过利用Docker的方法来快速发布、测试和部署代码,可以显著减少编写代码和在生产环境中运行代码之间的延迟。
Docker的官网图标是一个抽象化的鲸鱼驮着一堆的集装箱。在容器中运行的应用就像集装箱一样,不需要关注底层运行的环境,总能够通过任意平台达成应用运行的目的。虽然Docker不是唯一的容器引擎,但在目前任然是最流行的,且市场占有率最大容器引擎。但随着K8s的最近一次更新,不在原生支持Docker,其霸主地位是否会被撼动,任不得知。
2. 容器与虚拟机
如简介所说的,Docker只是众多容器引擎中的一款,却不是唯一,所以不要认为Docker就是容器。Docker作为容器引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。而应用则可以在容器中运行。可以将容器认为是一个轻量级的虚拟机,而容器引擎是创建容器的应用。其他常见容器引擎有:Rocket、podman、container。
容器优点
容器化越来越受欢迎,因为容器具有以下特点:
灵活:即使是最复杂的应用也可以集装箱化。
轻量级:容器利用并共享主机内核。
可互换:可以即时部署更新和升级。
便携式:可以在本地构建,部署到云,并在任何地方运行。
可扩展:可以增加并自动分发容器副本。
可堆叠:可以垂直和即时堆叠服务。
容器与虚拟机的区别
容器 虚拟机
启动速度 秒级 分钟级
计算损耗 几乎没有 损耗30%-50%
性能 接近原生 弱于
系统支撑量 上千 几十个
隔离性 资源隔离 完全隔离
容器实现的3种重要技术
docker本质就是宿主机的一个进程,docker是通过namespace实现资源隔离,通过cgroup实现资源限制,通过写时复制技术(copy-on-write)实现了高效的文件操作(类似虚拟机的磁盘比如分配500g并不是实际占用物理磁盘500g)。
其中namespace实现完成了容器化所需要的六项隔离:
Dcoker的核心概念
镜像
Docker的镜像是创建容器的基础,类似虚拟机的快照,可以理解为一个面向Docker容器引擎的只读模板。通过镜像启动一个容器,一个镜像是一个可执行的包,其中包括运行应用程序所需要的所有内容包含代码,运行时间,库、环境变量、和配置文件。Docker镜像也是一 个压缩包,只是这个压缩包不只是可执行文件,环境部署脚本,它还包含了完整的操作系统。因为大部分的镜像都是基于某个操作系统来构建。
所以很轻松的就可以构建本地和远端一样的环境,这也是Docker镜像的精髓。
容器
容器是镜像的可运行实例。您可以使用Docker API或CLI创建、启动、停止、移动或删除容器。您可以将一个容器连接到一个或多个网络,将存储附加到它,甚至根据它的当前状态创建一个新的镜像。
可以把容器看做是要给简易版的linux环境(包括root用户权限、镜像空间、用户空间和网络空间等)和运行在其中的应用程序。
仓库
存放镜像的地方
Docker的安装
systemctl stop firewalld.service
setenforce 0
#安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
device mapper存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
#设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安装 Docker-CE并设置为开机自动启动
yum install -y docker-ce
systemctl start docker.service
systemctl enable docker.service
#查看 docker 版本信息
docker version
Docker 常见命令
镜像相关
搜索镜像(search)
[root@local ~]# docker search nginx #默认显示前25个镜像
[root@local ~]# docker search --limit 5 nginx #显示前5个镜像
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 16985 [OK]
bitnami/nginx Bitnami nginx Docker Image 131 [OK]
ubuntu/nginx Nginx, a high-performance reverse proxy &