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

相关推荐
全栈工程师修炼指南几秒前
Nginx | stream 四层反向代理:SSL、PREREAD 阶段模块指令浅析与实践
运维·网络·网络协议·nginx·ssl
Zfox_29 分钟前
CANN Catlass 算子模板库深度解析:高性能 GEMM 融合计算、Cube Unit Tiling 机制与编程范式实践
docker·云原生·容器·eureka
威迪斯特1 小时前
CentOS图形化操作界面:理论解析与实践指南
linux·运维·centos·组件·图形化·桌面·xserver
一方热衷.1 小时前
在线安装对应版本NVIDIA驱动
linux·运维·服务器
独自归家的兔1 小时前
ubuntu系统安装dbswitch教程 - 备份本地数据到远程服务器
linux·运维·ubuntu
ONE_SIX_MIX1 小时前
ubuntu 24.04 用rdp连接,桌面黑屏问题,解决
linux·运维·ubuntu
龙飞051 小时前
Systemd -systemctl - journalctl 速查表:服务管理 + 日志排障
linux·运维·前端·chrome·systemctl·journalctl
春日见1 小时前
如何创建一个PR
运维·开发语言·windows·git·docker·容器
DARLING Zero two♡1 小时前
告别 Docker 命令行!Portainer+cpolar 让容器管理从局域网走向公网
运维·docker·容器
消失的旧时光-19431 小时前
Linux 编辑器入门:nano 与 vim 的区别与选择指南
linux·运维·服务器