当前位置: 首页 > news >正文

stratis,容器podman

一、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

相关文章:

  • 基于3DMax与Vray引擎的轻量级室内场景渲染实践
  • 校园自习室预约小程序(源码+部署教程)
  • 企业磁盘管理实战:常见问题与高效解决方案
  • Spring6: 2 入门
  • Node.js系列(4)--微服务架构实践
  • next.js 组件路由钩子
  • Linux上位机开发实战(能用的开发板计算资源)
  • 3.9 Spring Boot国际化:动态语言切换与数据库存储方案
  • LabVIEW 与 PLC 通讯的常见方式
  • 大数据学习栈记——HBase安装
  • HashMap学习总结——JDK17
  • PHP 应用TP 框架路由访问对象操作内置过滤绕过核心漏洞
  • STM32-ARM
  • 深入理解 Spring 框架中的 IOC 容器
  • 智能AI优化SEO关键词实战
  • LLM(6):理解词嵌入
  • 大白话详细解读React框架的纯函数和高阶函数
  • 京准电钟:NTP网络时间服务器让城市更智慧更精准
  • 快速入手-基于Django的Form和ModelForm操作(七)
  • C++ 介绍STL底层一些数据结构
  • 上海第四批土拍成交额97亿元:杨浦宅地成交楼板单价半年涨近7000元
  • 上汽享道出行完成13亿元C轮融资,已启动港股IPO计划
  • 新村回响:一周城市生活
  • 全国人大常委会启动食品安全法执法检查
  • 上海启动万兆光网试点建设,助力“模速空间”跑出发展加速度
  • 商务部再回应中美经贸高层会谈:美方要拿出诚意、拿出行动