一、stratis
1.stratis可以实现动态的在线扩容,lvm虽然也可以实现在线扩容,但是是需要人为的手动扩容。
2.stratis不需要手动格式化,自动会创建文件系统(默认是xfs)
1. 安装stratis软件包
yum list | grep stratis (查看关于stratis的包)
yum install stratisd.x86_64 -y
yum install stratis-cli.noarch -y
2. 启动stratis服务
systemctl start stratisd.service
systemctl enable stratisd.service
systemctl status stratisd.service
3.添加一块硬盘大小为11G
添加完成后,stratis的使用方法。
man stratis ----》 /EXAMPLE查看例子
(1)创建存储池(就是将多个硬盘整合成一个存储池)
stratis pool create 存储池名 磁盘路径1 磁盘路径2
(2)从存储池中,创建文件系统
stratis filesystem create 存储池名 文件系统名
(3)查看stratis文件系统的路径
stratis filesystem list
/dev/stratis/存储池名/文件系统名
(4)对于stratis的文件系统的永久挂载
存储路径 挂载点 xfs defaults,x-systemd.requires=stratisd.service 0 0
Mount 存储路径 挂载点
二、容器(podman兼容docker)
1.容器简介
容器是一个虚拟化技术,它可以将软件运行所需的环境一起打包运行,从而减少运维是由于环境不兼容等带来的麻烦。
容器技术和传统的虚拟化技术有什么区别?
1.容器是针+对内核级别的虚拟化技术,而传统的一些虚拟化技术针对的是操作系统级别的虚拟化技术,所以容器的响应速度更快。
2.容器所处的系统环境是专门定制的,所以容器可以更加小巧。
小程序的集合
2.容器技术里的三个概念
1.镜像:由开发人员专门为某个服务定制的容器安装包。
通过镜像来安装产生不同的容器,可以理解为yum仓库中的rpm安装包,可以通过rpm包来安装不同软件
2.容器:由镜像运行产生的实例。
3.仓库:专门用来存放镜像的地方。
类似于yum仓库,里面是各种rpm包,那镜像仓库就是下载镜像的地方
注意:不要把容器想的太复杂,把容器类比成一个软件,那么我们今天主要就是讲如何下载软件,安装软件,运行软件,软件的开机自启。
三、实操:
一、 搭建容器仓库
(1)安装容器所需要的工具(当前环境不支持)
yum module list | grep tool
yum module install container-tools -y
查看podman版本 podman -v >1.9+
(2)配置镜像仓库
cp /etc/containers/registries.conf /etc/containers/backup (备份配置文件)
vim registries.conf (编辑配置文件)
unqualifed-search-registries = ['registry.access.redhat.com','registry.redhat.io','docker.io']
short-name-mode = 'permissive'(podman3.0+的写法)(Podman添加私有镜像源配置 registries.conf-CSDN博客 3.0一下写法)
清华大学:https://mirror.tuna.tsinghua.edu.cn/alpine/
阿里云:https://mirrors.aliyun.com/alpine/
网易:http://mirrors.163.com/
1.下载镜像
podman (image) pull 仓库地址/镜像名:版本
podman pull docker.io/httpd 拉取httpd有关镜像
示例:
podman image pull docker.io/library/ubuntu:latest 拉取ubuntu有关镜像
2.查看本地镜像
podman images
podman image list
3.删除镜像
podman image rm 本地镜像
4. 根据镜像来运行启动容器
podman run -it --name ubuntu1 ubuntu
-i 以交互的方式启动
-t 打开伪终端
--name 给容器起一个别名
-d 在后台运行(注意:不是所有的容器都支持后台运行。)
5. 查看运行中容器
podman ps
启动容器状态为Exited的容器
podman start 容器ID 或 容器名称
6. 查看所有的容器
podman ps -a
7. 删除容器podman rm 容器名0
注意:删除前,必须先把容器停止
podman stop 容器名 或 容器ID
8. 进入容器内部运行命令(此容器必须是在运行中)
podman exec -it 容器名 /bin/bash
exit 从容器内部退出
9.查看容器信息
podman inspect 容器名 (| grep IPAddress 例如获取ip地址)
10.本地主机和容器的端口映射
-p 本地端口:容器端口
podman run --name web -d -p 8888:80 httpd
通过本地的ip地址:8888即可访问容器ip:80的内容。
11.容器的外部存储
-v 本地存储路径:容器内的存储路径:z (容器的存储路径只是作为一个入口,真正的数据保存在本地主机的存储路径上,z的作用保证上下文一致。)容器存储地址:/usr/local/apache2/htdocs
podman run --name web -d -p 8888:80 -v /opt/html:/usr/local/apache2/htdocs:z httpd
podman inspect 容器名 | grep Source -A 1
12.给容器传入参数
podman run -d --name mysql_test -e MYSQL_ROOT_PASSWORD=123456 mysql
docker.io/library/mysql
13. 停止容器
podman stop 容器名
14. 运行已停止的容器
podman start 容器名
四、容器的开机自启
容器的开机自启,其实就是根据容器来生成对应的容器服务,然后对容器服务实现开机自启。
1.普通用户下开机自启
1.创建普通用户,并设置密码
useradd student01
passwd student01
2. 使用ssh方式登录到普通用户(注意:绝对不能使用su – 来登录,使用su – 的话它不会加载服务的配置环境)
(1)注销当前用户,从登录界面完成普通用户的登录
(2)使用ssh登录
ssh student01@localhost
servera root ssh root@servera
3. 首先设定容器随系统开机自启
Systemctl --user enable 服务名称 服务开机自启
loginctl enable-linger 允许普通用户服务驻留系统
loginctl show-user student01 查看设置允许普通用户服务驻留系统是否成功,看到linger=yes代表成功。
Linger=yes
4.创建容器服务所需目录(这个目录的创建需要记住对应路径)
mkdir -p ~/.config/systemd/user
5.创建容器
podman run -d --name web1 httpd
6. 进入~/.config/systemd/user,然后根据容器来创建对应的容器服务
cd ~/.config/systemd/user
podman generate systemd --name web1 --files 将web1容器注册成用户级别的服务
7. 根据服务来控制容器
systemctl --user daemon-reload 重新加载服务,读取到新创建的容器服务
systemctl --user start container-web1.service 开启
systemctl --user enable container-web1.service 开机自启
2.root用户下的开机自启
root用户的开启自启,流程和普通用户一致
不同点在于:
1.以root用户身份运行 loginctl enable-linger
2.在/etc/systemd/system/目录下直接创建服务即可。
3.使用systemctl命令不需要加上--user