目录
虚拟机基本使用
什么是虚拟机
什么是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也是一个计算机操作系统
相较于windows系统,Linux系统更加注重系统的权限,安全性和性能
但是windows易用性好,Linux易用性差
因为Linux系统原生状态下,基本没有任何软件,易用性差
因为Linux是开源的,所有很多个人或组织对原生Linux进行了增强,后放出各种Linux的增强版
这些增强版会默认安装好很多常用软件或驱动,让Linux系统变的易用
现在市面上比较多的常见的Linux增强版有
CentOS
Ubantu
RockyLinux
RedHat
....等
配置网络共享连接
如果共享中出现下拉框,一定要选择Virtualbox的网卡选项
给大家共享的镜像资源
600多M的资源,纯净版的LockyLinux(Virtualbox专用)
3.5多G的资源,VMware版包含全部软件的镜像
4.1多G的资源,Virtualbox版包含全部软件的镜像
解压RockyLinux_8.5_VBM.7z(600多M的)
获得1.78GB的文件夹
打开这个文件夹
会自动开启virtualbox虚拟机,并加载当前镜像
必须保证当前镜像文件所在全部路径都没有中文
建议启动Virtualbox时使用单击右键->管理员方式运行
选中镜像,点击设置
修改usb设置
修改网络设置
上面配置完成之后
可以启动虚拟机
启动虚拟机之后,等待出现登录页面
开机后会自动选择第一项,不用修改
开机后如果鼠标被虚拟机捕获,使用右侧Ctrl键解除
用户名密码默认都是rockylinux
密码输入时没有任何提示,但是可以正常识别
登录之后,我们的用户是rockylinux用户
我们尝试连接网络
ping www.baidu.com
如果有周期响应,证明网络畅通,虚拟机可以使用当前计算机的网络功能
Ctrl+C可以随时退出当前运行的程序 返回到命令符
如果没有响应,尝试重新调整网卡网络共享配置和虚拟机的网卡桥接配置
到此为止,我们成功登录了Linux系统,同时正在操作的用户是rockylinux
这个用户并不具备系统所有权限,所有后面的内容可能因为权限不足受阻
需要切换到root系统管理员权限
输入
sudo su -
就能切换到root用户
然后为root用户设置一个密码,有了密码才能登录root用户
passwd
可以进入设置密码的流程
建议不要使用数字做密码,推荐学习过程中就使用root做密码
当前虚拟机也是网络中的一台计算机,我们要想访问它,必须有一个可用的ip地址
ifconfig
或
ifconfig | more
逐行显示信息
通过上面的命令可以看到自己虚拟机的ip地址
这个ip地址可能是
192.168.56.101
记住这个IP
后面使用这个ip来访问它
下载Bitvise SSH Client软件
安装各种下一步即可
安装后桌面出现下面图标
这个软件是远程链接linux的客户端
双击这个图标进入虚拟机连接界面
我们使用这个软件连接成功后
就可以用这个软件提供的界面来操作Linux了
无论是虚拟机还是实际的物理服务器
我们想远程的控制这个机器的话,都需要使用专门的客户端连接服务器,并向服务器发送指令
这个软件就能完成这个功能
我们要学习在Linux(RockyLinux)中安装使用Docker来配置软件的功能
Docker是一个用来开发、运输和运行应用程序的开放平台。使用Docker可以将应用程序与基础结构分离,以便快速交付软件。使用Docker,您可以以管理应用程序的方式管理基础架构。通过利用Docker的方法快速传送、测试和部署代码,可以显著减少编写代码和在生产中运行代码之间的延迟。
传统的应用开发完成后,需要提供一堆安装程序和配置说明文档,安装部署后需根据配置文档进行繁杂的配置才能正常运行。Docker化之后只需要交付少量容器镜像文件,在正式生产环境加载镜像并运行即可,应用安装配置在镜像里已经内置好,大大节省部署配置和测试验证时间。
随着微服务架构和Docker的发展,大量的应用会通过微服务方式架构,应用的开发构建将变成搭乐高积木一样,每个Docker容器将变成一块“积木”,应用的升级将变得非常容易。当现有的容器不足以支撑业务处理时,可通过镜像运行新的容器进行快速扩容,使应用系统的扩容从原先的天级变成分钟级甚至秒级。
应用容器化运行后,生产环境运行的应用可与开发、测试环境的应用高度一致,容器会将应用程序相关的环境和状态完全封装起来,不会因为底层基础架构和操作系统的不一致性给应用带来影响,产生新的BUG。当出现程序异常时,也可以通过测试环境的相同容器进行快速定位和修复。
Docker是内核级虚拟化,其不像传统的虚拟化技术一样需要额外的Hypervisor [管理程序] 支持,所以在一台物理机上可以运行很多个容器实例,可大大提升物理服务器的CPU和内存的利用率。
Docker运行架构图
Docker官网:Home - Docker
Docker Hub官网(镜像仓库):Docker Hub
所有步骤,均参考官方文档:Install Docker Engine on CentOS | Docker Documentation
官方网站提供的3种安装方式
三种方式中第一种,从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 run hello-world
运行可能需要较短时间
运行结果中出现如下内容,表示一切正常
Hello from Docker! This message shows that your installation appears to be working correctly.
首先需要了解什么是容器,容器就是一个进程,内部是独立运行的一个或者是一组应用。它可以被启动、开始、停止、删除。每个容器都是相互隔离的,保证安全的平台。
镜像(Image)就是一个只读的模板文件。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。 就好似 Java 中的 类和对象,类就是镜像,对象就是容器!也可以把镜像看成是模具,而镜像创建出来的容器就是通过这个模具创建的一个一个的实际产品。
宿主机就是我们调用命令使用镜像创建容器的服务器(linux)。
一个用来容纳多个镜像的仓库,可以链接仓库获取你想要的内部镜像,一般一个镜像仓库中包含多个不同tag的镜像。
镜像仓库占用的服务器,这里注意一个镜像服务器未必只有一个仓库,可以有很多仓库,每个仓库又保管的是不同镜像。
调用docker命令,操作镜像,容器的进程。只要能链接宿主机,操作docker的进程都是docker-client。
Docker命令的语法结构
docker 子命令 [选项]
docker都有哪些子命令呢,我们可以使用docker的helper子命令查看
docker --help
如果想查询具体的子命令的使用方式
docker 子命令 --help
我们最常用的子命令之一:启动docker容器的run的相关帮助可以
docker run --help
当然也可以查询官方文档或百度了解更多内容
Reference documentation | Docker Documentation
docker images命令主要能够完成查看当前本地镜像仓库的功能
docker images
这个命令的返回结果显示:
docker images命令的常用选项如下
在拉取镜像之前,我们要先明确正确的镜像名称
我们可以输入查询关键字,对镜像仓库进行搜索
search命令,可以搜索当前系统绑定的远程镜像服务器中的内容
docker search mysql
这个命令的返回结果显示:
根据我们上面搜索得到的结果
确认关键字之后
我们就可以使用pull命令将我们查询出的软件拉取到本地仓库了
docker pull [镜像名称]
docker pull mysql
默认下载最新版本
如果要指定版本号可以在名称后指定
docker pull mysql:5.7.35
至于要指定的版本号有什么
可以在相关的官方网站查询
删除本地镜像的命令
一般当本地镜像较多,过多的占用空间时,可以删除一些不会再使用的镜像文件,节省空间
删除镜像需要明确镜像的id,所以一般都会配合docker images使用
docker rmi feb5d9fea6a5
如果当前要删除的镜像有实例正在运行,使用上面命令删除会有报错
意思就是正在使用的镜像无法删除
我们如果需要强制将当前镜像删除,并同时停止这个服务的话,就需要加-f选项
docker rmi feb5d9fea6a5 -f
rmi命令的选项:
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
启动之后,我们就可以使用数据库连接工具访问数据库了