要求

1.登录到指定的镜像仓库拉取镜像

2.以普通用户contsvc运行

3.配置 systemd-journald 服务,要求永久保留日志数据(物理机,创建文件mkdir /var/log/journal)

3.服务自启动(普通用户身份)

4.将 /var/log/journal(物理机用户为root) 目录及任何子目录中的任何 *.journal 文件复制到/home/contsvc/container_journal 中

6.容器服务启动时能自动将 /home/contsvc/container_ journal挂载到容器中的 /var/log/journal 上

将物理机的数据复制到contsvc的container_journal下,然后拉去镜像。将contaier_journal挂载进容器里的/var/log/contsvc。开机,容器以普通用户自启

实验步骤

lab containers-services start

创建镜像仓库

useradd contsvc
echo redhat | passwd --stdin contsvc

创建普通用户并设置密码

mkdir  /var/log/journal
systemctl restart systemd-journal

创建永久保留日志数据

ssh contsvc@servera

ssh登录contsvc用户

mkdir -p .config/containers/

创建容器配置文件

cp  -ar  /tmp/containers-service/   ./.config/containers/registries.conf

将tmp下的容器仓库拷贝到镜像文件

podman search httpserver

测试是否使用镜像仓库文件

mkdir  .config/container_journal

创建被挂载的数据

cp -a /var/log/journal/*/*.journal   ~/.config/container_journal

将物理机上的日志文件拷到container_journal

podman  login  registry.lab.example.com

登录镜像仓库

podman run -d  --name  httpserver -v  ~/.config/container_journal:/var/log/journal:Z -p 8080:8080 registry.lab.example.com/rhel8/httpd-24:1-105

拉起镜像生成容器

podman exec -it httpserver /bin/bash
cd /var/log/journal;ls

查看有没有挂载成功

exit
mkdir -p ~/.config/systemd/user
podman generate systemd --name httpserver --files --new
--new 容器停止时删除容器 --files 将输出的内容打印成文件
--name 会使容器名字更工整

登出容器并让容器停止后自动删除容器 (创建systemd单元文件)

podman rm -f  httpserver

停止并且删掉容器

systemctl  --user   daemon-reload

重载单元文件

systemctl   --user enable container-httpserver.service

自启动容器

设置contsvc的服务开机时启动

loginctl enable-linger contsvc

(根据contsvc家目录的单元文件)

loginctl  show-user  contsvc

查看是否成功

reboot
ssh contsvc@servera
podman ps

重启测试

podman exec -it  xxxx  /bin/bash
logger -p authpriv.info 'hello contsvc'

进入容器并测试一条命令

Linux podman容器实验的更多相关文章

  1. Podman容器基础(二)

    Podman容器技术基础(二) 目录 Podman容器技术基础(二) 容器的使用 用户操作 用户配置文件 容器卷 容器的使用 运行一个容器 [root@cent1 ~]# podman pull ht ...

  2. Podman容器技术基础

    Podman容器技术基础 目录 Podman容器技术基础 简介 安装 基础命令 简介 Podman 是一个开源的容器运行时项目,可在大多数 Linux 平台上使用.Podman 提供与 Docker ...

  3. Cgroup maintainer丽泽范:解剖Linux核心容器技术

    摘要:Cgroup和namespace等内核特性如何出现,在社区处于如何的开发状况?Docker如火如荼.内核社区是否会因此加紧完好容器技术的隔离性安全性?华为Linux内核高级project师李泽帆 ...

  4. Linux内核分析实验六

    Linux内核分析实验六 进程控制块PCB——task_struct(进程描述符) 为了管理进程,内核必须对每个进程进行清晰的描述,进程描述符提供了内核所需了解的进程信息. struct task_s ...

  5. Linux系统日志清除实验

    实验目的 1.了解Linux日志的作用. 2.掌握删除Linux日志的方法. 实验原理 所谓日志(Log)是指系统所指定对象的某些操作和其操作结果按时间有序的集合.每个日志文件由日志记录组成,每条日志 ...

  6. Docker 与 Podman 容器管理的比较

    翻译自 Paul Ferrill 2020年9月1日的文章<Compare Docker vs. Podman for container management> [1] Docker 和 ...

  7. Linux磁盘配额实验

    1.实现磁盘限额的条件 *需要Linux内核支持 *安装quota软件包2.Linux磁盘限额的特点 作用范围:针对指定 文件系统(分区) 限制对象:普通用户帐号.组帐号 限制类型:磁盘容量(默认单位 ...

  8. 【MOOC EXP】Linux内核分析实验八报告

    程涵  原创博客 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 进程的切换和系统的一般执行过程 知识点 ...

  9. 【MOOC EXP】Linux内核分析实验七报告

    程涵  原创博客 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 可执行程序的装载 知识点梳理 一.预处 ...

  10. 【MOOC EXP】Linux内核分析实验六报告

    程涵  原创博客 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 进程的描述和进程的创建 知识点梳理: ...

随机推荐

  1. test(爱测试) 开源接口测试,敏捷测试管理平台10.2.7发布

    一:itest work 简介 itest work 开源敏捷测试管理,包含极简的任务管理,测试管理,缺陷管理,测试环境管理,接口测试,接口Mock,还有压测 ,又有丰富的统计分析,8合1工作站.可按 ...

  2. js 求任意两数之间的和

    知识点:函数的传参,函数的返回值 函数的传参 函数的参数包括以下两种类型: 1.形参:在定义函数时,声明的参数变量仅在函数内部可见: 2.实参:在调用函数时,实际传入的值. 示例 我们在定义函数的时候 ...

  3. 面试官:说说Netty对象池的实现原理?

    Netty 作为一个高性能的网络通讯框架,它内置了很多恰夺天工的设计,目的都是为了将网络通讯的性能做到极致,其中「对象池技术」也是实现这一目标的重要技术. 1.什么是对象池技术? 对象池技术是一种重用 ...

  4. uni-app mpvue wepy websocket的介绍

    uni-app 网址:https://uniapp.dcloud.io/ uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS.Android.H5.以 ...

  5. React jsx中js表达式

    嵌入JS表达式 在jsx语法中,要把JS代码写到{ }中,所有标签必须要闭合. let num = 100 let bool = false; // JSX 语法 var myh1 = ( <d ...

  6. edge浏览器禁用搜索工具栏或七七八八的东西

    edge浏览器禁用搜索工具栏或七七八八的东西 在浏览器地址里输入: edge://flags/#edge-show-feature-recommendations 把"Show featur ...

  7. redis高可用哨兵篇

    https://redis.io/docs/manual/sentinel/#sentinels-and-replicas-auto-discovery 官网资料 在上文主从复制的基础上,如果注节点出 ...

  8. ISO pod 使用

    pod 安装 相关依赖包 新建podfile 文件 pod init 编辑podfile文件添加第三方库 // pod '第三方依赖库名', '版本号' pod 'SDWebImageSwiftUI' ...

  9. Json输出List集合对象和map对象 JSON格式

    Json输出List集合对象和map对象 JSON格式 //Json输出List集合对象 [{"属性1":["值1"],"属性2":&quo ...

  10. Java反射获取字段的属性值及对比两个对象的属性值null差异赋值,递归算法查找

    package com.example.demo; import java.lang.reflect.Field; /** * 需求描述:同一类的不同对象,如果某个字段的null则从另外的一个对象中赋 ...