(一)概念理解

  • 虚拟化:是一种资源管理技术,将计算机上的各种实体资源进行抽象,重新呈现出来,打破了实体结构之间不可切割的障碍,使用户以更加合理的组态使用资源
     
    比如:一个32G内存2T固态硬盘16G显卡的计算机,用来学习python基础,希望可 以同时提供4-5个人独立使用

沙箱
 沙盒,小的,独立的纯净环境。
  Anaconda 沙箱环境,可以创建独立的python环境
  VM虚拟机
 Docker 沙箱环境
  1、提供独立的开发环境,便于开发
  2、便于安全,沙箱环境可以随时关闭,所以不存在入侵和病毒感染,甚至可以使用沙箱进行病毒隔离。

Docker 是一种新的虚拟化技术。

    Docker的图标是

    

Docker虚拟化容器简单理解 docker 虚拟化技术_Docker


    Docker本意是码头工人,实际上采用的逻辑类似码头的集装箱。我们在开发的过程当中由于开发人员的背景,水平不一致。有的程序写在linux上,有的写在windows上,最后统一要部署到一台服务器,这台服务器有可能是Redhat,也有可能是centos,或者Ubuntu。于是就会出现一个兼容的问题。在本机没有任何问题的程序,到部署环节发生各种不兼容。这种情况很影响开发的效率。所有引入类似于集装箱的概念,在开发之初就将项目放到一个类似于集装箱的独立环境进行开发,到部署的时候只是部署集装箱环境,而集装箱环境已经被所有的系统指定了统一标准,不存在兼容问题。

     

Docker与vm 虚拟机区别:

  Docker可以完成虚拟机可以完成的所有功能。而且比虚拟机开启更快,更方便。

  

    

Docker虚拟化容器简单理解 docker 虚拟化技术_服务器_02

Docker虚拟化容器简单理解 docker 虚拟化技术_服务器_03


      Vm虚拟技术        docker虚拟技术

      

 Server 服务器

 HOST os 主机系统

 HYPErvisor 虚拟机管理程序

 DOCKER engine docker引擎

 GUEST os虚拟环境系统

 BINS/Libs 开发依赖包

 APP 应用功能

 

 Vm所有虚拟机在创建的时候回虚拟独立的系统内核,而docker所有的虚拟机共用主机的系统内核,节约了虚拟环境系统部署的资源,将更好的性能提供给了应用。

 

 Register:仓库,用来存放docker 镜像。

 Image:镜像,就是封装好的docker实例,包含要运行应用的依赖环境和程序,但是image镜像是只读的,无法进行直接操作。

Container:容器,用来打开,并且使用镜像

(二)Docker安装

Centos 7的yum源当中,本来就携带了docker的包,所以在centos当中进行docker安装,是所有安装当中最为简单的安装。

Docker虚拟化容器简单理解 docker 虚拟化技术_服务器_04


Docker安装完成

Docker虚拟化容器简单理解 docker 虚拟化技术_docker_05


查看安装的docker包

Docker虚拟化容器简单理解 docker 虚拟化技术_Docker虚拟化容器简单理解_06

(三)基本使用

Docker是一种服务,所有docker安装完成之后要启动

Docker虚拟化容器简单理解 docker 虚拟化技术_Docker虚拟化容器简单理解_07


查看开始

查看docker的版本

Docker虚拟化容器简单理解 docker 虚拟化技术_Docker_08


查看docker的详细信息

Docker虚拟化容器简单理解 docker 虚拟化技术_Docker虚拟化容器简单理解_09


Docker镜像查看

Docker虚拟化容器简单理解 docker 虚拟化技术_服务器_10


下载镜像

  Pull 拉取

  Push 推送

 

Docker虚拟化容器简单理解 docker 虚拟化技术_Docker虚拟化容器简单理解_11


 Docker默认请求dockerhub的源地址来下载镜像,dockerhub是外网地址,所以很慢,我们并不知道有多少docker镜像,以及镜像的名字。

修改docker源地址

Docker虚拟化容器简单理解 docker 虚拟化技术_docker_12


Docker虚拟化容器简单理解 docker 虚拟化技术_Docker虚拟化容器简单理解_13


重启docker服务

systemctl restart docker

Docker虚拟化容器简单理解 docker 虚拟化技术_docker_14


查询所有的docker镜像

Docker虚拟化容器简单理解 docker 虚拟化技术_Docker虚拟化容器简单理解_15


Docker虚拟化容器简单理解 docker 虚拟化技术_Docker虚拟化容器简单理解_16


Docker虚拟化容器简单理解 docker 虚拟化技术_服务器_17


Waiting 等待下载

Downloading 下载中

Download complete 下载完成

Pull complete 拉取完成

查看拉取成功的镜像

Docker虚拟化容器简单理解 docker 虚拟化技术_服务器_18


 Repository 仓库

 Tag 镜像标签

 Image id 镜像id

 创建的时间 2周之前

 Size 大小使用镜像,创建容器

Docker create -it --name mysql8.0 c7109f74d339 /bin/bash

  Docker 命令

  Create 创建

  -i 交互式命令行

  -t 将交互式命令行绑定到一个虚拟终端上

  --name 容器的名称

  mysql8.0 容器具体的名称

  c7109f74d339 镜像id

   /bin/bash 交互式采用shell虚拟终端

    

Docker虚拟化容器简单理解 docker 虚拟化技术_服务器_19


 进入docker容器

 Docker start -ai mysql8.0

 Docker 命令

 Start 开始,开启

 -a 将当前输入/输出连接到容器上

 -i 交互式命令行

 

Docker虚拟化容器简单理解 docker 虚拟化技术_Docker虚拟化容器简单理解_20


 退出镜像

 

Docker虚拟化容器简单理解 docker 虚拟化技术_Docker_21


 采用run命令创建容器,并且启动

 Docker 命令

 Run 启动

 -d 守护容器,容器当中的程序需要长期运行,创建一个守护容器

 

Docker虚拟化容器简单理解 docker 虚拟化技术_docker_22


 

Docker虚拟化容器简单理解 docker 虚拟化技术_docker_23


 进入容器

 Docker 命令

 Exec 切入

 

Docker虚拟化容器简单理解 docker 虚拟化技术_服务器_24


 分析docker container ls --all的参数

  Container id 容器id

  Image 镜像的id

 Command 镜像命令

 Created 容器的创建时间

 Status 状态

 Exited 退出

  Up 启动

  Ports 端口

 Names 容器的名称

 Docker container stop 102edb0e4a22容器id

 

Docker虚拟化容器简单理解 docker 虚拟化技术_Docker_25


 Kill 终端容器,启动状态

 Rm 删除容器,关闭状态

 

Docker虚拟化容器简单理解 docker 虚拟化技术_docker_26