虚拟机与docker使用

1、虚拟机VM介绍

  • 具有完整硬件系统功能的完整计算机系统
  • 常见虚拟机:Java虚拟机,Linux虚拟机,windows虚拟机
  • 流行的虚拟机软件有:VMware、Virtual Box、Virtual PC

2、环境准备及docker介绍

1)环境准备

  • 我的环境:win10
  • 软件:VirtualBox-5.1.26、SmarTTY
  • linux版本的虚拟机文件:centos7-atguigu.ova

2)docker介绍

  • 一个开源的应用容器引擎
  • Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。
  • Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker ,就不用担心环境问题。
  • Docker是基于原生多cpu系统开发出来的容器,多任务处理,多资源整合天生强项
  • 开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows 机器上
  • 一个完整的Docker有以下几个部分组成:
    DockerClient客户端
    Docker Daemon守护进程
    Docker Image镜像
    DockerContainer容器

3、Virtual Box

管理—》导入虚拟电脑—》将
在这里插入图片描述
所在位置载入—>启动

在这里插入图片描述
–》输入账号+密码–》ip addr查看ip(根据你的网络而选无线还是有线【在设备-》网络中修改】)
在这里插入图片描述

4、smartTTY

先连接:
在这里插入图片描述
1)uname -v查看版本(》=3.10)
2)安装docker:yum install docker,中途遇到操作选y(yes)
在这里插入图片描述
直到出现complete为完成
在这里插入图片描述
3)启动docker:systemctl start docker
若出现下图错误Job for docker.service failed because the control process exited with error code. See “syste
mctl status docker.service” and “journalctl -xe” for details.:
若没出现错误则跳到步骤4)。
在这里插入图片描述
输入systemctl status docker.service,出现下图:

在这里插入图片描述
解决方法:
1)vi /etc/sysconfig/docker
2) 修改(点击i为insert模式即可编辑,修改完成后esc:wq退出编辑)
在这里插入图片描述
3)systemctl start docker启动docker不再报错
在这里插入图片描述
4)docker -v
在这里插入图片描述
5)systemctl enable docker

5、docker操作命令

1)docker search xxx;
如:docker search mysql、docker search redis、tomcat…
搜索出下面镜像
或者去docker hub仓库直接搜索
在这里插入图片描述
2)docker pull xxx:tag
tag是可选的,多为软件的版本,默认是latest
如:docker pull mysql:5.5
3)docker images查看所有的本地镜像
4)docker rmi image-id删除指定本地镜像
在这里插入图片描述
5)docker run
6)docker ps
7) docker stop
8)docker start
9)docker rm

6、区分容器和虚拟机

  • 我们用的传统虚拟机如 VMware , VisualBox 的需要模拟整台机器包括硬件,每台虚拟机都需要有 自己的操作系统 ,虚拟机一旦被开启,预分配给它的资源将全部被占用。每一台虚拟机包括应用,必要的二进制和库,以及一个完整的用户操作系统。

    • 每个虚机中都有一个独立的Kernel 【连接操作系统(OS)和硬件(Hardware)的一个中间组件】,而容器只有一个操作系统,即只有一个独立的Kernel
    • VM是一个运行在宿主机之上的完整的操作系统,VM运行自身操作系统会占用较多的CPU、内存、硬盘资源。docker不同于VM,只包含应用程序以及依赖库
  • 而容器技术是和我们的宿主机 共享 硬件资源及操作系统,可以实现资源的动态分配。容器包含应用和其所有的依赖包,但是与其他容器共享内核。容器在宿主机操作系统中,在用户空间以分离的进程运行。

  • 容器可以理解为进程沙盒(sandbox)

  • 容器技术是实现 操作系统虚拟化 的一种途径,可以让您在资源受到隔离的进程中运行应用程序及其依赖关系。通过使用容器,我们可以:

    • 轻松打包应用程序的代码、配置和依赖关系,将其变成容易使用的构建块,
    • 从而实现环境一致性、运营效率、开发人员生产力和版本控制等诸多目标。
    • 容器可以帮助保证应用程序快速、可靠、一致地部署,其间不受部署环境的影响。
    • 容器还赋予我们对资源更多的精细化控制能力,让我们的基础设施效率更高。

容器优点:

  • 容器架构降低了硬件成本
  • 更快速的部署开发/测试/生产环境
  • 更简便的维护开发/测试/生产环境
  • 与微服务架构更为契合

7、镜像(Mirroring)

  • 是一种文件存储形式,是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像
  • 阿里巴巴
  • 清华

8、沙盒(sandbox)

  • 沙盒是一种安全机制,用于防止不同应用之间互相访问。
  • 沙盒的作用就是存储数据,每个沙盒就相当于每个每个应用的系统目录。
  • iOS系统下每个应用都有自己对应的沙盒,每个沙盒之间都是相互独立的,互不能访问(没有越狱的情况下)。

9、Kubernetes

  • 一套成熟的商用服务编排解决方案
  • Kubernetes 及其整个生态系统(工具、模块、插件等)均使用 Go 语言编写,从而构成一套面向 API、可高速运行的程序集合,这些程序文档精良、易于参与贡献或在其上构建应用程序。
  • Pod是Kubernetes最小的调度单元,所以组件介绍就从Pod【实例或者服务实例】开始。
  • Pod是一组容器的集合,这些容器共享IPC,Network和UTS,也就是这些容器相互之间可以共享进程信息,网络信息和主机信息。这一组容器相互之间可以通过Localhost互访。
发布了33 篇原创文章 · 获赞 2 · 访问量 6933

猜你喜欢

转载自blog.csdn.net/qq_42677329/article/details/104212210