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中的命令。

相关推荐
超级小忍27 分钟前
Spring Boot 与 Docker 的完美结合:容器化你的应用
spring boot·后端·docker
许白掰2 小时前
Linux入门篇学习——Linux 工具之 make 工具和 makefile 文件
linux·运维·服务器·前端·学习·编辑器
B1nna3 小时前
Docker学习
学习·docker·容器
缘友一世3 小时前
网安系列【15】之Docker未授权访问漏洞
docker·容器
AmosTian8 小时前
【系统与工具】Linux——Linux简介、安装、简单使用
linux·运维·服务器
YC运维10 小时前
RIP实验以及核心原理
运维·网络·智能路由器
慕木兮人可10 小时前
Docker部署MySQL镜像
spring boot·后端·mysql·docker·ecs服务器
leo__52011 小时前
自动化运维:使用Ansible简化日常任务
运维·自动化·ansible
霖0011 小时前
C++学习笔记三
运维·开发语言·c++·笔记·学习·fpga开发