Docker实战001:简单的认识下docker

什么是DockerDocker是一个开源的轻量级虚拟化技术容器 , 它可以将应用程序的代码、运行环境、依赖库、配置文件等资源打包到一个容器中 。 Docker可以将硬件上的资源进行隔离 , 避免程序之间的冲突和干扰影响程序的稳定性 , 也可以降低硬件之间的资源竞争 。 Docker主要使用容器来承载应用程序而不使用操作系统 , 所以它的开销很少且性能要远高于虚拟机 。
Docker实战001:简单的认识下docker文章插图
Docker的优势Docker容器拥有不错的资源隔离与限制能力 , 可以将资源隔离形成独立的容器空间并可以精确地对应用分配CPU、内存等资源 , 不仅可以保证应用间不会相互影响 , 还可以与底层共享操作系统充分利用系统资源 。 Docker可以创建多个容器部署不同的服务并共享空闲的内存 , 提高资源的利用率并降低运营成本 。 可以在短时间内可以快速完成应用部署 , 缩短代码开发、测试、部署周期实现快速完成线上交付 。 docker可以将运行环境打包保存至容器 , 使用时直接启动容器即可快速运行 。 也可以将开发 , 测试 , 生产的应用运行环境进行标准化 , 避免因环境差异造成的各种问题 。
Docker实战001:简单的认识下docker文章插图
Docker的缺陷任何事物都有两面性 , 有优点自然也有缺陷 。 Docker是基于Linux 64bit的 , 所以无法在32bit的linux/Mac/Windows/unix环境下使用 。 因为Docker容器共享宿主机内核 , 所以各应用之间的隔离不如虚拟机彻底 。 虽然封装的容器运行起来相当的方便快捷 , 但是服务运行出问题来运维就难度增加了(查看日志、分析数据、异常检查等服务管理就没有宿主机方便) 。 每个Docker实例的运营生命周期有限 , 可以随着用户进程的停止而销毁 。 所以尽量不要让docker承载任何交互数据 , 所有数据应该保存在数据库服务器中 。
Docker实战001:简单的认识下docker文章插图
Docker核心:镜像(Images)Docker镜像是类似于虚拟机镜像的文件系统(一个镜像往往由多层文件系统组成) , 用来提供容器运行时所需的程序、库、资源、配置等资源 。 Docker镜像是基于Dockerfile文件构建的 , Dockerfile文件内包含了一条条构建镜像所需的指令和说明 。 Docker build会读取指定的Dockerfile并通过Docker服务器创建镜像 。 Docker镜像是一个只读的模板 , 镜像内不包含任何动态数据即使构建之后也不会被改变 。 用户可以从 Docker Hub 获取已有镜像 , 也可以利用本地文件系统创建镜像 。
Docker实战001:简单的认识下docker文章插图
Docker核心:容器(Container)镜像是Docker运行容器的前提 , 有了Docker镜像才可以创建Docker容器 , 一个镜像支持创建多个容器 。 多个容器也可以在同一台机器上运行并与其他容器共享操作系统内核 , 每个容器在用户空间中作为孤立进程运行 。 容器是由镜像创建的应用运行实例 , 容器内可以独立运行应用程序并配置相关的运行环境(包括文件系统、系统库类、shell环境、系统工具 , 设置等) 。 容器可以在共享操作系统内核的同时将应用程序与系统其它周围环境隔离(类似于沙箱) , 使其免受外在环境差异的影响从而减少软件运行时带来的冲突 。
Docker实战001:简单的认识下docker文章插图
Docker核心:仓库(Registry)docker仓库就是用来存储镜像的地方 , 我们可以将镜像上传至仓库 , 也可以从仓库下载镜像 。 Docker提供一个注册服务器(Registry)用来管理仓库的服务器 , 一个服务器上可以存在多个仓库 , 每个仓库下也可以存放多个具备不同tag的镜像 。 Docker官方维护了一个公共仓库:https:/hub.docker.com , 这里提供了可以满足大部分需求的镜像 , 用户无需登录即可通过docker search命令来查找镜像并利用docker pull命令来将它下载到本地 。 我们也可以在注册一个 Docker 账号免费使用docker仓库 , 通过docker push命令来将自己的镜像推送到 Docker Hub(操作跟git相似 , 很容易上手) 。
Docker实战001:简单的认识下docker文章插图
总结:【Docker实战001:简单的认识下docker】总体来说Docker利大于弊 , 不仅可以统一开发环境、简化开发配置并实现快速部署 , 还能隔离应用避免服务干扰 , 整合、回滚应用服务并充分利用服务器资源来降低运营成本 。 以上内容是小编给大家分享的【Docker实战001:简单的认识下docker】 。 希望对大家有所帮助 , 如果大家有任何疑问请给我留言 , 小编会及时回复大家的 。