docker基础(一)

目录:

  1. 虚拟化技术概念和原理
  2. 主流的虚拟化方案
  3. Docker虚拟化技术概念和原理
  4. 容器、镜像、仓库
虚拟化技术概念和原理
  • 虚拟化技术是目前比较火爆的IT主流技术之一,跟云计算、大数据被称为IT技术三甲,虚拟化技术主要是为了解决IT设备资源而产生的;
  • 虚拟化将物理的资源转变为逻辑上可以管理的资源,以打破物理结构之间壁垒,让计算元件运行在虚拟的基础上,而不是真实物理设备上;
  • 虚拟化的底层是硬件服务器,通过虚拟化技术可以将硬件资源虚拟生成N台虚拟机,应用程序、软件服务(Apache、MYSQL、PHP、Nginx、Tomcat)运行在虚拟机上,而不是直接运行在物理机设备上;
  • 虚拟化技术核心目标,为了最大化的利用高配物理机的资源,提高物理设备资源的利用率,淘汰老、旧的服务器,对老、旧的服务器资源进行重组重用;
  • 通常来讲的,硬件服务器(硬件设备)不能直接进行虚拟化的,需要借助虚拟化的软件(VMM-Virtual Machine Monitor)去实现,虚拟化技术分层结构如下:’
    在这里插入图片描述
  • 从上图得知,完整的虚拟化平台,包括以下几个组件:
    1. 底层硬件服务器;
    2. 宿主机操作系统(OS);
    3. Virtual Machine Monitor(VMM);
    4. 虚拟机操作系统(OS);
    5. 应用程序、软件服务(Nginx);

回到目录



主流的虚拟化方案
  • XEN
  • Hyper-V
  • VMware ESXI(比较多,部署简单、管理方便)
  • KVM (相对比较多,前几年比较火爆)
  • Docker(目前使用最多虚拟化技术)


Docker虚拟化技术概念和原理
  • Docker虚拟化是虚拟化技术解决方案中的一种,轻量级、高性能的虚拟化技术,是目前互联网使用最广泛的虚拟化技术;

  • 最早码头上,有很多的工人搬运货物,将散落货物搬到货轮上,自从集装箱出现以后,码头上工人看不见了,货物放哪里去了呢?货物统一打包到集装箱里面了,集装箱跟集装箱相互隔离的,互不影响;

  • Docker虚拟化技术的产物Docker容器(虚拟机|服务程序),容器技术类似集装箱机制,容器中存放了开发编写的各种软件、程序、依赖包、库文件等,容器和容器之间相互隔离的,互不影响,可以基于Docker容器技术实现虚拟化;

  • 传统虚拟化和Docker虚拟化分层结构图如下:
    在这里插入图片描述
    在这里插入图片描述

  • 传统虚拟化和Docker虚拟化如图对比特点如下:

    1. 传统虚拟化-Server-Host OS-VMM(虚拟化软件)-Guest OS-Nginx服务;
    2. Docker虚拟化-Server-Host OS-VMM(虚拟化软件)-Nginx服务(Nginx容器);
  • Docker虚拟化采用集装箱机制,Docker虚拟化技术跟货轮信息举例类比:
    Docker容器(软件、库文件、服务)-集装箱(货物、物品)

    • Docker容器-集装箱;
    • Docker Engine-大货轮(船);
    • HOST OS(硬件设备)-大海;

回到目录



容器、镜像、仓库
  • Docker镜像
    Docker镜像类似Linux ISO镜像文件,底层模板,镜像中存储的各种软件、程序、LIB库、依赖环境等,Docker镜像结构分层(层次)的结构,每一层存储不同的软件和功能,镜像是只读的,不能被修改;
  • Docker容器
    Docker容器基于Docker镜像运行之后实体,Docker容器的底层是镜像,Docker容器所需文件、软件可以从镜像层中读取,没有镜像,就没有Docker容器,镜像是静止的,容器是活动的(进程和程序的关系);
  • Docker仓库
    Docker仓库是用于存储Docker镜像文件的地方,仓库分为公共和私有仓库,企业生产环境推荐自建私有仓库(安全、稳定、速度快)

如果通过Docker引擎运行Docker容器,首先从公共仓库下载Docker镜像,基于Docker镜像再启动容器(默认Docker引擎从Docker国外官网下载镜像文件);

#查看本地服务器的镜像列表;(从远程仓库下载的)
docker images

#从docker官网仓库搜索tomcat|nginx|redis镜像;
docker search tomcat
docker search nginx
docker search redis

#从公共仓库下载tomcat镜像;
docker pull docker.io/tomcat
docker pull docker.io/nginx
docker pull docker.io/redis

#基于Docker镜像启动Tomcat容器(-i interactive交互、-t tty终端、-d daemon后台运行);
docker run -itd  docker.io/tomcat:latest

#查看Docker tomcat容器的运行状态;
docker ps

#查看Docker tomcat容器的IP地址;
docker inspect 容器id |grep -i ipaddr

#将宿主机系统的8080端口映射到容器的8080端口;(第一个端口宿主机监听的,第二个端口是容器内部服务端口)
docker run -p 8080:8080 -itd docker.io/tomcat:latest

#进入容器
docker exec -it 容器id /bin/bash

结果图:
在这里插入图片描述
回到目录

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值