学习前需安装rockylinux 和 VirtualBox和 Bitvise SSH Client
1.双击rockylinux蓝色图标(路径不能有中文)
先设置 usb设置 usb1.1 -》网络
启动虚拟机
登录用户名密码 rockylinux rockylinux
测试网络 ping www.baidu.com
停止 ctrl + c
清空屏幕 clear
进入root用户 sudo su -
设置密码 passwd root 不要数字
查看自己的ip ifconfig 也可以是 ifconfig | more
2.Bitvise SSH Client
因为没法从Windows中复制粘贴,也没有帮助提示,容易敲错,所以需要ssh连接它,使用这个软件连接成功后,就可以用这个软件提供的界面来操作Linux,无论是虚拟机还是物理服务器,想远程控制机器的话,都需要使用专门的客户端连接服务器,并向服务器发送指令。
3.Docker
docker是一个用来开发、运输和运行应用程序的开放平台,是用来安装软件的软件。
使用服务器需要下载相应的软件,如数据库、es等,一台服务器当然没问题,如果有十台就很麻烦。使用docker可以把这些打包成镜像,多台部署,方便软件安装和管理。
图解:从网络中下载安装包到本地文件中(模板),安装包是ducker专用(镜像),为它们生成容器(实例),不同镜像生成不同容器。后期不需要启动任何服务,只需要启动ducker即可(一步到位)。
更快速的应用交付和部署:
传统的应用开发完成后,需要提供一堆安装程序和配置说明文档,安装部署后需根据配置文档进行繁杂的配置才能正常运行。Docker化之后只需要交付少量容器镜像文件,在正式生产环境加载镜像并运行即可,应用安装配置在镜像里已经内置好,大大节省部署配置和测试验证时间。
更便捷的升级和扩缩容:
随着微服务架构和Docker的发展,大量的应用会通过微服务方式架构,应用的开发构建将变成搭乐高积木-样,每个Docker容器将变成一块“积木",应用的升级将变得非常容易。当现有的容器不足以支撑业务处理时,可通过镜像运行新的容器进行快速扩容,使应用系统的扩容从原先的天级变成分钟级甚至秒级,
更简单的系统运维:
应用容器化运行后,生产环境运行的应用可与开发、测试环境的应用高度一致,容器会将应用程序相关的环境和状态完全封装起来,不会因为底层基础架构和操作系统的不一致性给应用带来影响,产生新的BUG。当出现程序异常时,也可以通过测试环境的相同容器进行快速定位和修复。
更高效的计算资源利用:
Docker是内核级虚拟化,其不像传统的虚拟化技术一样需要额外的Hypervisor[管理程序]支持,所以在一台物理机上可以运行很多个容器实例,可大大提升物理服务器的CPU和内存的利用率。
Docker相关资料
Docker官网:http://www.docker.com
Docker Hub官网(镜像仓库):https://hub.docker.com
所有步骤,均参考官方文档:https://docs.docker.com/engine/install/centos/
安装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
阿里仓库路径
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
下载docker
yum -y install docker-ce docker-ce-cli containerd.io
中途卡住 ctrl+c 停止重新下载即可
运行完成后,当前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)
镜像(lmage)就是一个只读的模板文件。镜像可以用来创建 Docker 容器,一个镜像可以创建很多容器。就好似Java 中的 类和对象,类就是镜像,对象就是容器!也可以把镜像看成是模具,而镜像创建出来的容器就是通过这个模具创建的一个一个的实际产品。
宿主机(host)
宿主机就是我们调用命令使用镜像创建容器的服务器(linux)。
镜像仓库(repository
一个用来容纳多个镜像的仓库,可以链接仓库获取你想要的内部镜像,一般一个镜像仓库中包含多个不同tag的镜像。
镜像服务器(registry)
镜像仓库占用的服务器,这里注意一个镜像服务器未必只有一个仓库,可以有很多仓库,每个仓库又保管的是不同镜像。
客户端(docker-client)
调用docker命令,操作镜像,容器的进程。只要能链接宿主机,操作docker的进程都是docker-client。
Docker命令的语法结构
docker 子命令[选项]
docker --help 查看docker有哪些子命令
docker 子命令--help 查询具体的子命令的使用方式
docker run --help 启动docker容器的run的相关帮助可以
当然也可以查询官方文档或百度了解更多内容
https://docs.docker.com/reference/
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 mysq1:5.7.35
至于要指定的版本号有什么可以在相关的官方网站查询
rmi命令
删除本地镜像的命令
一般当本地镜像较多,过多的占用空间时,可以删除一些不会再使用的镜像文件,节省空间删除镜像需要明确镜像的id,所以一般都会配合docker inages使用rmi: remove image
docker rmi feb5dgfea6a5
如果当前要删除的镜像有实例正在运行,使用上面命令删除会有报错
如果当前要删除的镜像有实例正在运行,使用上面命令删除会有报错意思就是正在使用的镜像无法删除我们如果需要强制将当前镜像删除,并同时停止这个服务的话,就需要加-f选项
docker rmi feb5d9fea6a5 -f
rmi命令的选项:
-f:强制删除这个镜像,无论是否正在使用。
运行mysql
docker run --name mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /root/data:/var/lib/mysql mysql:5.7.35
-d 不占用当前线程,后台运行
-p 端口号,一般都是一样的,一个是docker一个是mysql端口号
-e 配置参数 配置密码
-v 后保存数据的路径
然后就可以用客户端工具访问linux中mysql数据库了
redis
根据上述步骤,下载最新版本即可
拉取镜像参考之前的笔记
docker pull redis
自己搜docker启动Redis的命令
docker run -itd --name redis-test -p 6379:6379 redis
启动之后可以本地访问客户端
docker exec -it[容器名称]redis-cli
docker exec -it redis-test redis-cli
exit 退出 ctrl+c 也可以
ps命令
docker ps
可以查看当前docker中运行的所有容器的状态
ps命令中常见的选项如下:
。-a:显示所有容器,如果不加只显示正在启动运行的容器,停止的不会显示。
。-|:显示最近的启动创建的容器。
。-n=[数字]:显示最近h个容器。
。-9:只显示容器id。经常和-a一起使用,获得当前宿主机所有容器id参数集合。
ps命令显示的标题内容如下
·containerid:容器id,很多操作容器命令都需要用到的参数。
·image:容器创建使用的镜像。
·command:容器中在运行的进程或者命令。
·created:创建时间。
·status:容器状态,
·ports:容器的端口映射情况,这里没有用到端口。
·names:容器的名字,启动没有指定--name选项,会默认使用一个名字。
stop\rm命令
docker stop 可以停止正在运行的容器stop只是停止容器,并不会删除容器如果想删除容器需要使用rm命令
注意:这里rm删除的是容器,不是本地镜像,和rmi命令要区分首先使用docker ps命令查询所有正在运行的容器
docker stop[容器id]
docker rm[容器id]
docker rm[容器id] -f 可以强制删除正在运行的容器
关闭虚拟机可以选择 快速休眠 这样再次打开,还在运行的容器不会改变。正常关闭,会关闭正在运行的容器
如果想要启动已有的容器,执行docker start 对应的id进行对应启动
docker start [id]
命令总结:
rockylinux rockylinux 登录用户名密码
ping www.baidu.com 测试网络
ctrl + c 停止
clear 清空屏幕
sudo su - 进入root用户
passwd root 不要数字 设置密码
ifconfig 或者 ifconfig | more 查看自己的ip
yum install -y yum-utils 安装"应用商店"中提供的程序
指定docker仓库路径 国际仓库和阿里仓库二选
国际仓库路径
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
阿里仓库路径
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce docker-ce-cli containerd.io 下载docker
systemctl start docker 启动Docker
docker run hello-world 测试Docker功能的镜像
docker images 查看镜像仓库
docker search mysql 搜索当前系统绑定的远程镜像服务器中的内容
docker pull mysql 将我们查询出的软件拉取到本地仓库 默认下载最新版本
docker rmi id -f:强制删除这个镜像,无论是否正在使用。
systemctl stop firewalld 关闭防火墙
docker ps 查看当前docker中运行的所有容器的状态,-a:显示所有容器
docker stop[容器id] 停止容器
docker rm[容器id] 删除容器
docker rm[容器id] -f 可以强制删除正在运行的容器
docker start [id] 启动已有的容器
docker run -itd --name redis-test -p 6379:6379 redis 启动Redis的命令,并创建容器
docker run --name mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /root/data:/var/lib/mysql mysql:5.7.35 启动mysql的命令,并创建容器