Docker入门 ------ 概念和安装

简述:什么是Docker?

简单来说就是Google公司使用Go语言进行开发实现的,基于Linux内核的cgourp,namespace,以及AUFS类的Union FS 等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。

Docker 的构想是要实现"Build,Ship and Run Any App,Anywhere",即一次封装,"到处运行"

使用Docker的优势

Docker能在任何时间,任何地点被获取,可以让开发者以一种新型的创建分布式应用程序的方式,快速分发和部署。

举个例子LAMP(Linux+Apache+Mysql+PHP)部署一个网站,你需要分别安装环境,再进行配置,经过大量的操作后还要进行功能测试,查看是否正常。更可怕的是如果进行服务器迁移,往往需要重头开始,这是一个没有意义的体力话。

Docker则提供了一种更加聪明的方式,通过容器来打包应用,解耦应用和运行平台。

总结来说:

  1. 更快速的交付和部署
  2. 更高效的资源利用
  3. 更轻松地迁移和扩展
  4. 更简单的更新管理

Docker和虚拟机比较

  1. Docker容器很快,基本是以秒为单位
  2. Docker容器对系统资源需求少
  3. Docker通过类似Git的设计理念方便用户获取
  4. Docker通过Dockerfile支持灵活的自动化创建和部署机器
  5. 除了运行其中应用外,基本不消耗额外的系统资源,保证应用性能的通知,尽量减少系统开销。虚拟机则需要单独分配若干资源(磁盘、内存等)
  6. 但是隔离性不如虚拟机,但是不意味Docker不安全(利用了Linux系统上的防护技术实现了严格的隔离可靠性)

关于虚拟化

Docker是属于操作系统级虚拟化,即通过创建多个虚拟的操作系统实例来隔离不同进程。

上图可以看出,传统的实在硬件层面完成虚拟化,有额外的虚拟机管理应用和虚拟机操作系统层,Docker则是直接在操作层面上实现虚拟化。

Docker核心概念

Docker的核心概念有镜像、容器和仓库,我来分别介绍一下。

镜像

Docker镜像类似于虚拟机镜像,可以将它理解为一个只读的模板。

容器

Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。

注意: 镜像自身是只读的。容器从镜像启动的时候,会在镜像的最上层创建一个可写层。

仓库

Docker仓库类似于代码仓库,它是集中Docker集中存放镜像文件的场所。主要有公开和私有仓库。

安装Docker

用户可以通过访问Docker官网的Get Docker页面,查看获取Docker的方式,以及Docker支持的平台类型

https://www.docker.com/products/overview

1.在Centos环境下安装Docker

接下来我们将要正式的在centos中操作Docker.

分别执行

安装需要的软件包: yum install -y yum-utils device-mapper-persistent-data lvm2

设置源: sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装: sudo yum install docker-ce

启动开机启动:

sudo systemctl start docker

sudo systemctl enable docker

输入docker version显示以下内容即为成功.

总结

本章主要讲解了Docker的背景、使用Docker的优势、和虚拟机的差别、核心概念是什么和如何在Centos中如何安装Docker。在下一章中我们将主要学习Docker中的命令。

相关推荐
测试人社区—667932 分钟前
破茧成蝶:DevOps流水线测试环节的效能跃迁之路
运维·人工智能·学习·flutter·ui·自动化·devops
秋刀鱼 ..2 小时前
第七届国际科技创新学术交流大会暨机械工程与自动化国际学术会议(MEA 2025)
运维·人工智能·python·科技·机器人·自动化
CheungChunChiu8 小时前
Linux 内核设备模型与驱动框架解析 ——以 rk-pcie 为例
linux·运维·ubuntu
姚不倒8 小时前
负载均衡的概念、策略以及两个核心组件 Nginx 和 Kube-proxy 的对比。
运维·nginx·云原生·kubernetes
列逍9 小时前
Linux进程(三)
linux·运维·服务器·环境变量·命令行参数
minji...13 小时前
Linux 基础IO(一) (C语言文件接口、系统调用文件调用接口open,write,close、文件fd)
linux·运维·服务器·网络·数据结构·c++
码龄3年 审核中13 小时前
Linux record 04
linux·运维·服务器
RisunJan13 小时前
Linux命令-ftptop命令(实时监控 ProFTPD 服务器连接状态)
linux·运维·服务器
虾..13 小时前
Linux 文件描述符,重定向及缓冲区理解
linux·运维·服务器
元气满满-樱13 小时前
SSH远程服务管理
运维·ssh