微服务19-虚拟机基本使用/Docker概述

目录

虚拟机基本使用

什么是虚拟机

什么是Linux

虚拟机网络配置

Virtualbox加载虚拟机镜像

配置镜像参数

启动虚拟机

切换到root用户

客户端软件连接Linux

Docker概述

什么是Docker

为什么使用Docker

Docker相关资料

安装Docker

测试Docker

docker名词解释

Docker基础命令

Docker命令格式

images命令

search命令

pull命令

rmi命令

run命令


虚拟机基本使用

安装虚拟机

直接安装即可

只需要保证安装路径没有中文没有空格

win11的装不上的去下载VMware

然后需要去搜索下载一个CentOS 7.5以上或RockyLinux的镜像

不会操作的话找项目经理老师

mac系统同学,只需要掌握Homebrew即可

什么是虚拟机

所谓的虚拟机,就是在当前计算机系统中,又开启了一个虚拟系统

这个虚拟系统,我们要安装Linux系统

我们开发的java项目最终也都会运行在Linux系统上

开发使用windows是正常的

什么是Linux

linux也是一个计算机操作系统

相较于windows系统,Linux系统更加注重系统的权限,安全性和性能

但是windows易用性好,Linux易用性差

因为Linux系统原生状态下,基本没有任何软件,易用性差

因为Linux是开源的,所有很多个人或组织对原生Linux进行了增强,后放出各种Linux的增强版

这些增强版会默认安装好很多常用软件或驱动,让Linux系统变的易用

现在市面上比较多的常见的Linux增强版有

CentOS

Ubantu

RockyLinux

RedHat

....等

虚拟机网络配置

配置网络共享连接

微服务19-虚拟机基本使用/Docker概述_第1张图片

微服务19-虚拟机基本使用/Docker概述_第2张图片

微服务19-虚拟机基本使用/Docker概述_第3张图片如果共享中出现下拉框,一定要选择Virtualbox的网卡选项

给大家共享的镜像资源

600多M的资源,纯净版的LockyLinux(Virtualbox专用)

3.5多G的资源,VMware版包含全部软件的镜像

4.1多G的资源,Virtualbox版包含全部软件的镜像

Virtualbox加载虚拟机镜像

解压RockyLinux_8.5_VBM.7z(600多M的)

获得1.78GB的文件夹

打开这个文件夹

双击蓝色图标

会自动开启virtualbox虚拟机,并加载当前镜像

必须保证当前镜像文件所在全部路径都没有中文

建议启动Virtualbox时使用单击右键->管理员方式运行

配置镜像参数

选中镜像,点击设置

修改usb设置

微服务19-虚拟机基本使用/Docker概述_第4张图片

修改网络设置

微服务19-虚拟机基本使用/Docker概述_第5张图片

微服务19-虚拟机基本使用/Docker概述_第6张图片 桥接的网卡必须是具备网络连接的网卡

启动虚拟机

上面配置完成之后

可以启动虚拟机

启动虚拟机之后,等待出现登录页面

开机后会自动选择第一项,不用修改

开机后如果鼠标被虚拟机捕获,使用右侧Ctrl键解除

用户名密码默认都是rockylinux

密码输入时没有任何提示,但是可以正常识别

登录之后,我们的用户是rockylinux用户

我们尝试连接网络

ping www.baidu.com

如果有周期响应,证明网络畅通,虚拟机可以使用当前计算机的网络功能

Ctrl+C可以随时退出当前运行的程序 返回到命令符

如果没有响应,尝试重新调整网卡网络共享配置和虚拟机的网卡桥接配置

切换到root用户

到此为止,我们成功登录了Linux系统,同时正在操作的用户是rockylinux

这个用户并不具备系统所有权限,所有后面的内容可能因为权限不足受阻

需要切换到root系统管理员权限

输入

sudo su -

就能切换到root用户

然后为root用户设置一个密码,有了密码才能登录root用户

passwd

可以进入设置密码的流程

建议不要使用数字做密码,推荐学习过程中就使用root做密码

当前虚拟机也是网络中的一台计算机,我们要想访问它,必须有一个可用的ip地址

ifconfig

ifconfig | more 

逐行显示信息

通过上面的命令可以看到自己虚拟机的ip地址

这个ip地址可能是

192.168.56.101

记住这个IP

后面使用这个ip来访问它

客户端软件连接Linux

下载Bitvise SSH Client软件

安装各种下一步即可

安装后桌面出现下面图标

 这个软件是远程链接linux的客户端

双击这个图标进入虚拟机连接界面

 微服务19-虚拟机基本使用/Docker概述_第7张图片

我们使用这个软件连接成功后

就可以用这个软件提供的界面来操作Linux了

无论是虚拟机还是实际的物理服务器

我们想远程的控制这个机器的话,都需要使用专门的客户端连接服务器,并向服务器发送指令

这个软件就能完成这个功能

Docker概述

什么是Docker

我们要学习在Linux(RockyLinux)中安装使用Docker来配置软件的功能

Docker是一个用来开发、运输和运行应用程序的开放平台。使用Docker可以将应用程序与基础结构分离,以便快速交付软件。使用Docker,您可以以管理应用程序的方式管理基础架构。通过利用Docker的方法快速传送、测试和部署代码,可以显著减少编写代码和在生产中运行代码之间的延迟。

微服务19-虚拟机基本使用/Docker概述_第8张图片

为什么使用Docker

  • 更快速的应用交付和部署:

传统的应用开发完成后,需要提供一堆安装程序和配置说明文档,安装部署后需根据配置文档进行繁杂的配置才能正常运行。Docker化之后只需要交付少量容器镜像文件,在正式生产环境加载镜像并运行即可,应用安装配置在镜像里已经内置好,大大节省部署配置和测试验证时间。

  • 更便捷的升级和扩缩容:

随着微服务架构和Docker的发展,大量的应用会通过微服务方式架构,应用的开发构建将变成搭乐高积木一样,每个Docker容器将变成一块“积木”,应用的升级将变得非常容易。当现有的容器不足以支撑业务处理时,可通过镜像运行新的容器进行快速扩容,使应用系统的扩容从原先的天级变成分钟级甚至秒级。

  • 更简单的系统运维:

应用容器化运行后,生产环境运行的应用可与开发、测试环境的应用高度一致,容器会将应用程序相关的环境和状态完全封装起来,不会因为底层基础架构和操作系统的不一致性给应用带来影响,产生新的BUG。当出现程序异常时,也可以通过测试环境的相同容器进行快速定位和修复。

  • 更高效的计算资源利用:

Docker是内核级虚拟化,其不像传统的虚拟化技术一样需要额外的Hypervisor [管理程序] 支持,所以在一台物理机上可以运行很多个容器实例,可大大提升物理服务器的CPU和内存的利用率。

Docker运行架构图

微服务19-虚拟机基本使用/Docker概述_第9张图片

Docker相关资料

Docker官网:Home - Docker

Docker Hub官网(镜像仓库):Docker Hub

所有步骤,均参考官方文档:Install Docker Engine on CentOS | Docker Documentation

安装Docker

官方网站提供的3种安装方式

  • 设置docker仓库,并且从仓库安装所需内容。
  • 下载RPM安装包,手动更新安装。
  • 为测试和开发环境使用自定义脚本安装。

三种方式中第一种,从docker仓库中安装是比较简单的

这种方式需要当前虚拟机有网络环境

确定具备网络环境再运行下面命令

RockyLinux支持使用yum命令安装各种程序

yum命令安装程序类似手机中的应用商店一样

先安装yum-utils包,实现更方便的安装"应用商店"中提供的程序

yum install -y yum-utils

指定docker仓库路径

yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

阿里仓库路径

http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

执行安装Docker

也是使用yum命令

yum -y install docker-ce docker-ce-cli containerd.io

下载和安装需要一些时间,如果下载慢,配置上面的阿里Docker仓库地址

运行完成后,当前Linux系统就安装好的Docker

我们需要输入启动Docker的命令,真正让Docker运作起来

systemctl start docker

测试Docker

为了保证我们Docker运行的正常

Docker提供了一个专门测试Docker功能的镜像

docker run hello-world

运行可能需要较短时间

运行结果中出现如下内容,表示一切正常

Hello from Docker! This message shows that your installation appears to be working correctly.

docker名词解释

  • 容器(container)

首先需要了解什么是容器,容器就是一个进程,内部是独立运行的一个或者是一组应用。它可以被启动、开始、停止、删除。每个容器都是相互隔离的,保证安全的平台。

  • 镜像(image)

镜像(Image)就是一个只读的模板文件。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。 就好似 Java 中的 类和对象,类就是镜像,对象就是容器!也可以把镜像看成是模具,而镜像创建出来的容器就是通过这个模具创建的一个一个的实际产品。

  • 宿主机(host)

宿主机就是我们调用命令使用镜像创建容器的服务器(linux)。

  • 镜像仓库(repository)

一个用来容纳多个镜像的仓库,可以链接仓库获取你想要的内部镜像,一般一个镜像仓库中包含多个不同tag的镜像。

  • 镜像服务器(registry)

镜像仓库占用的服务器,这里注意一个镜像服务器未必只有一个仓库,可以有很多仓库,每个仓库又保管的是不同镜像。

  • 客户端(docker-client)

调用docker命令,操作镜像,容器的进程。只要能链接宿主机,操作docker的进程都是docker-client。

Docker基础命令

Docker命令格式

Docker命令的语法结构

docker 子命令 [选项]

docker都有哪些子命令呢,我们可以使用docker的helper子命令查看

docker --help

如果想查询具体的子命令的使用方式

docker 子命令 --help

我们最常用的子命令之一:启动docker容器的run的相关帮助可以

docker run --help

当然也可以查询官方文档或百度了解更多内容

Reference documentation | Docker Documentation

images命令

docker images命令主要能够完成查看当前本地镜像仓库的功能

docker images

这个命令的返回结果显示:

  • REPOSITORY:镜像仓库名,也叫作镜像名。
  • TAG:标签,常用版本号标识仓库,如果是latest就是最新版本。
  • IMAGE ID:镜像id。
  • CREATED:创建镜像时间。
  • SIZE:大小。

docker images命令的常用选项如下

  • -a: 显示所有信息
  • -q: 只显示镜像id,在镜像较多的时候比较常用

search命令

在拉取镜像之前,我们要先明确正确的镜像名称

我们可以输入查询关键字,对镜像仓库进行搜索

search命令,可以搜索当前系统绑定的远程镜像服务器中的内容

docker search mysql

这个命令的返回结果显示:

  • NAME:镜像名称。
  • DESCRIPTION:镜像描述。
  • STARS:镜像星级,越高表示越热,使用人越多。
  • OFFICIAL:是否官方镜像。
  • AUTOMATED:是否支持自动化部署。

pull命令

根据我们上面搜索得到的结果

确认关键字之后

我们就可以使用pull命令将我们查询出的软件拉取到本地仓库了

docker pull [镜像名称]
docker pull mysql

默认下载最新版本

如果要指定版本号可以在名称后指定

docker pull mysql:5.7.35

至于要指定的版本号有什么

可以在相关的官方网站查询

rmi命令

删除本地镜像的命令

一般当本地镜像较多,过多的占用空间时,可以删除一些不会再使用的镜像文件,节省空间

删除镜像需要明确镜像的id,所以一般都会配合docker images使用

docker rmi feb5d9fea6a5

如果当前要删除的镜像有实例正在运行,使用上面命令删除会有报错

意思就是正在使用的镜像无法删除

我们如果需要强制将当前镜像删除,并同时停止这个服务的话,就需要加-f选项

docker rmi feb5d9fea6a5 -f

rmi命令的选项:

  • -f:强制删除这个镜像,无论是否正在使用。

run命令

docker run命令,可以指定当前本地镜像文件启动,

启动镜像文件会在Docker中生成新的容器,容器中来运行镜像中包含的软件

docker run的命令,选项比较多,例如设置端口号,设置运行模式,调整运行参数,运行位置等

最后的mysql是镜像名称默认最新版,如果需要指定版本号可以编写下面代码

docker run --name mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /root/data:/var/lib/mysql mysql:5.7.35

1: --name mysql:该容器启动后的名字:(自定义命名)如果没有设置,系统会自动设置一个,毕竟如果开启太多的容器,记不住就很尴尬,建议加上见名知意。

2:-d 代表后台启动该服务

3:-p 3306(这是liunx的端口号,我习惯说成宿主机,如果我们想要远程服务的话,访问的端口就是这个端口):3306(docker容器的端口,每一个容器都是独立的,可理解成操作系统层面的系统),访问这个端口就是先通过远程访问宿主机的端口,再映射到docker容器的端口访问mysql。

4:-e MYSQL_ROOT_PASSWORD=123456 这是说mysql启动需要的开机密码,默认的账号是root ,密码就是上面设置的:123456

5:-v /root/data:/var/lib/mysql /root/data/:这是宿主机的数据存放路径(你也可以自定义), /var/lib/mysql:这是mysql容器存放数据的地方。也是为了同步数据,防止,容器被删除以后,数据就不存在了。

6:启动成功后就返回一个容器ID

启动之后,我们就可以使用数据库连接工具访问数据库了

你可能感兴趣的:(微服务,linux,网络,服务器)