RHCSA-A14. 安装并创建容器,设置开机自启

Posted 白-胖-子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RHCSA-A14. 安装并创建容器,设置开机自启相关的知识,希望对你有一定的参考价值。

红帽RHCE考试上午-RHCSA(RH134)

servera.example.com 任务

14. 创建容器,为容器配置永久存储并启动服务

  • 这是容器的两道新题,应该合在一起做

任务要求

  • 利用注册表服务器上的 nginx 镜像,创建名为 sunserver 的容器
• 将其配置为以 systemd 服务的形式运行,且仅面向现有用户 contsvc
• 该服务应命名为 container-sunserver.service,此服务在系统重启后将自动启动

注意:#注册表服务器账号: admin/redhat321

  • 将在上一项任务中创建的容器服务配置为使用永久存储,要求如下:
• 在容器主机的 /home/contsvc 下创建一个名为 container_journal 的目录
• 容器服务应将主机目录 /home/contsvc/container_journal 挂载到容器上的 /var/log/journal 下面
• 启动容器服务时,应自动挂载永久存储
• 在容器上执行命令 : echo RHCSA > /var/log/journal/rhcsa.log 时 ,
• 容器上的 /var/log/journal/rhcsa.log 和容器主机上的/home/contsvc/container_journal/rhcsa.log 均应显示:RHCSA

完成步骤

  • 考试的时候镜像仓库都是搭建好的
  1. 使用题中给的contsvc用户登录servera
    ssh contsvc@servers
  2. 先创建容器存储的共享目录
    mkdir -pv /home/contsvc/container_journal
  3. 用podman登录到注册服务器上面
    podman login -u admin
  • 考试的时候直接下载镜像可能下载不了,需要告诉podman从那里去下载
  1. 先搜索一下题目中要求的镜像nginx
    podman search nginx

  2. 搜索到以后再去下载
    podman pull nginx

  3. 创建镜像并挂载共享存储目录

podman run --name sunserver -it -d -v /home/contsvc/container_journal:/var/log/journal:Z registry.lab.example.com/library/nginx

podman run --name <题目中要求的容器名>
-it ## 给他一个终端
-d  ## 允许后台运行
-v /home/contsvc/container_journal:/var/log/journal:Z  ## 挂载本地存储映射关系,再给一个大Z权限
registry.lab.example.com/library/nginx ## 上面podman search找到的镜像完整路径
  1. 查看运气运行的状态
    podman ps

  2. 登录到容器中去生合成文件
    podman exec -it sunserver /bin/bash
    echo RHCSA > /var/log/journal/rhcsa.log

  3. 在用户加目录中创建服务二年加上你
    mkdir -pv ~/.config/systemd/user

  4. 生成服务文件

cd .config/systemd/user ## 教您如进入岗刚创建的目录
podman generate systemd --help ## 先查看帮助生的写错
podman generate systemd --name sunserver --restart-policy always --files ## 这样会自动生成服务文件
  1. 基于题中给的普通用户去管理启动服务
    systemctl --user daemon-reload
    systemctl --user enable container-sunserver.service

  2. 重启服务器看看能不能容器正常运行
    reboot
    podman ps

考察的知识点

Podman

  • Podman 是一个无守护进程的容器引擎,用于在 Linux 系统上进行开发、管理和运行 OCI Containers。
  • Podman 是一个开源的容器运行时项目,可在大多数 Linux 平台上使用。
  • RHEL 8/CentOS 8已经放弃了对Docker容器官方技术支持,podman已经是CentOS8的默认容器软件。
  • Podman 提供了一个与 Docker 兼容的命令行前端来管理镜像。

安装Podman

sudo dnf install -y podman

Podman帮助

  • 不会用还不会查帮助么?
$ podman --help
$ podman <subcommand> --help
$ man podman
$ man podman-<subcommand>

Podman常用命令

  • 查看podman版本信息
    podman info

  • 拉取镜像
    podman pull <镜像名>

  • 查看本地镜像
    podman images

  • 查看容器
    podman ps -a

  • 运行容器
    podman run -i -t <镜像名>
    $ podman run -dt -p 8080:80/tcp docker.io/library/httpd

  • 启动一个停止的容器或者停止一个启动的容器
    podman start/stop <容器名或者ID>

Podman挂载外部存储进行数据持久化

  • 在run容器的时候附加-v参数指定挂载的目录
    --volume, -v[=[[SOURCE-VOLUME|HOST-DIR:]CONTAINER-DIR[:OPTIONS]]]

  • 常用挂载参数

    rw|ro  # 读写还是只读

    z|Z    # 给文件打标签,小z共享标签,大Z独享标签

    [r]shared|[r]slave|[r]private[r]unbindable 

    [r]bind # 递归绑定

    [no]exec # 如果设定了noexec,则放在这个卷上的文件都不能被执行

    [no]dev # 默认选项nodev,卷上的dev不能用

    [no]suid # 默认没有特权选项,可以设

    [O] # 使用overlay file system.

    [U] #使用基于容器内 UID 和 GID 的正确主机 UID 和 GID,以递归源体积的所有者和组。
  • 如果共享存储是一个挂载点,则 dev, suid, and exec三个选项会被内核忽略。

将日志消息从容器暴露到主机日志

  • 如果您想要在容器中登录的消息显示在主机的 syslog/日志中,则应按以下内容绑定安装/dev/log 目录。
    $ podman run -v /dev/log:/dev/log -i -t fedora /bin/bash
  • 从容器内部,您可以通过向日志发送消息来测试此情况。
    (bash)# logger "Hello from my container"
  • 然后退出并检查日志。
(bash)# exit

$ journalctl -b | grep Hello

Podman生成服务文件

  • pod中的容器systemd管理脚本生成
    podman generate systemd <容器名>

以上是关于RHCSA-A14. 安装并创建容器,设置开机自启的主要内容,如果未能解决你的问题,请参考以下文章

windows下nacos的安装并设置开机自启

Centos 7.5 docker 容器怎么设置开机自启

linux部署redis及设置开机自启

MongoDB安装并随windows开机自启

CentOS8安装KSA服务端并设置开机自启

CentOS7创建nginx服务并配置开机自启