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

Podman 创建持久 MySQL 数据库容器

使用正确的 SELinux 上下文和权限创建目录/home/student/local/mysql

创建/home/student/local/mysql目录。

[student@workstation ~]$ mkdir -vp /home/student/local/mysql
mkdir: 创建的目录/home/student/local
mkdir: 创建的目录/home/student/local/mysql

/home/student/local/mysql为目录及其内容添加适当的 SELinux 上下文。

[student@workstation ~]$ sudo semanage fcontext -a  -t container_file_t '/home/student/local/mysql(/.*)?'

将 SELinux 策略应用于新创建的目录。

[student@workstation ~]$ sudo restorecon -R /home/student/local/mysql

验证该/home/student/local/mysql目录的 SELinux 上下文类型是否为container_file_t.

[student@workstation ~]$ ls -ldZ /home/student/local/mysql
drwxrwxr-x。2 名学生学生unconfined_u:object_r:container_file_t:s06 月 2614:33 /home/student/local/mysql

将目录的所有者更改/home/student/local/mysql为mysql用户和mysql组:

[student@workstation ~]$ podman unshare chown 27:27 /home/student/local/mysql

容器中运行进程的用户必须能够将文件写入目录。
权限应使用容器中的数字用户 ID (UID) 定义。Red Hat 提供的 MySQL 服务,UID 是 27。commandpodman
unshare提供了一个会话,可以在与容器内运行的进程相同的用户命名空间内执行命令。

创建具有持久存储的 MySQL 容器实例。

使用您的 Red Hat 帐户登录到 Red Hat Container Catalog。如果您需要注册 Red Hat,请参阅附录 D 中的说明,创建红帽帐户.

[student@workstation ~]$ podman login registry.redhat.io
用户名:your-username
密码:your-password
登录成功!

拉取 MySQL 容器镜像。

[student@workstation ~]$ podman pull registry.redhat.io/rhel8/mysql-80:1
试图拉 registry.redhat.io/rhel8/mysql-80:1...
获取图像源签名
检查图像目标是否支持签名
复制 blob 028bdc977650 完成
...输出省略...
将清单写入图像目标
存储签名
4ae3a3f4f409a8912cab9fbf71d3564d011ed2e68f926d50f88f2a3a72c809c5

创建一个新的容器指定挂载点来存储 MySQL 数据库数据:

[student@workstation ~]$ podman run --name persist-db \
> -d -v /home/student/local/mysql:/var/lib/mysql/data \
> -e MYSQL_USER=user1 -e MYSQL_PASSWORD=mypa55 \
> -e MYSQL_DATABASE=items -e MYSQL_ROOT_PASSWORD=r00tpa55 \
> registry.redhat.io/rhel8/mysql-80:1
6e0ef134315b510042ca757faf869f2ba19df27790c601f95ec2fd9d3c44b95d

此命令将/home/student/local/mysql目录从主机挂载到/var/lib/mysql/data容器中的目录。默认情况下,MySQL 数据库将数据存储在该/var/lib/mysql/data目录中。

验证容器是否正确启动。

[student@workstation ~]$ podman ps --format="{{.ID}} {{.Names}} {{.Status}}"
6e0ef134315b   persist-db 启动 3 分钟前

验证该/home/student/local/mysql目录是否包含该items目录。

[student@workstation ~]$ ls -ld /home/student/local/mysql/items
drwxr-x---。2 100026 100026 86 日 07:31 /home/student/local/mysql/items

该目录存储与此容器创建的数据库items相关的数据。items如果该items目录不存在,则表示在创建容器期间未正确定义挂载点。

或者,您可以运行相同的命令来podman unshare检查容器中的数字用户 ID (UID)。

[student@workstation ~]$ podman unshare ls -ld /home/student/local/mysql/items
drwxr-x---。2 27 27 6 Apr 8 07:31 /home/student/local/mysql/items
http://www.lryc.cn/news/16938.html

相关文章:

  • Java-反射
  • 构造agent类型的内存马(内存马系列篇十三)
  • JavaEE简单示例——<select>中的查询参数传递和结果集封装自动映射关系
  • 信息安全圈都在谈论CISP,CISSP,这两者有什么区别呢?
  • 浅谈Redisson实现分布式锁的原理
  • UVM实战(张强)-- UVM中的寄存器模型
  • 什么是 CSAT?这份客户满意度流程指南请查收
  • AD域备份和恢复工具
  • 老学长的浙大MPA现场复试经验分享
  • 制作证书链并进行验证
  • 基于python多光谱遥感数据处理、图像分类、定量评估及机器学习方法应用
  • 初识 git--本地仓库
  • Redis学习之持久化(六)
  • C++11 之 auto decltype
  • 论文笔记:How transferable are features in deep neural networks? 2014年NIP文章
  • python基于flask共享单车系统vue
  • C++11 之模板改进
  • Linux - POSIX信号量,基于环形队列的生产者消费者模型
  • 学习Flask之七、大型应用架构
  • CentOS9下编译FFMPEG源码
  • 炼石:八年饮冰难凉热血,初心如磐百炼成钢
  • Python基本数据类型
  • 【MySQL进阶】 锁
  • javascript高级程序设计第四版读书笔记-第五章 基本引用类型
  • 《爆肝整理》保姆级系列教程python接口自动化(二十一)--unittest简介(详解)
  • 【C++的OpenCV】第四课-OpenCV图像常用操作(一):Mat对象深化学习、灰度、ROI
  • Propargyl-PEG1-SS-PEG1-PFP ester,1817735-30-0,炔基应用于生物标记
  • 产品运营︱用户活跃度低的解决方法
  • 【华为OD机试模拟题】用 C++ 实现 - 求最大数字
  • 吉卜力风格水彩画怎么画?