RHCSA练习题21-22 :podman部署容器

二十一:配置容器以使其自动启动

按以下要求部署容器:

  1. 使用容器注册服务器上的 rsyslog 镜像, 创建一个名为 logserver 的容器
  2. 将容器配置为以 systemd 服务的形式运行,且仅面向现有用户 containers
  3. 该服务应命名为 container-logserver , 并在系统重新引导后自动启动,而无需任何干预
二十二:为容器配置持久存储

通过以下方式扩展上一个任务的服务:

  1. 配置主机系统日志以在系统更新引导后保留其数据,并重新启动日志记录服务
  2. 将主机 /var/log/journal 目录及任何子目录中的任何 *.journal 文件复制到目录 /home/containers/container_journal 中
  3. 将服务配置为在启动时自动将目录 /home/containers/container_ journal 挂载到容器的 /var/log/journal 下面

Answer:

因为这两个题彼此关联,所以放在一起来解答

流程:
    - containers用户则建立
    - 编辑/etc/systemd/journal.conf文件
    - 设置persisent永久存储
    - 重启systemd-journald服务
    - 建立文件夹,复制相关文件到相应路径
    - 安装podman
    - 登陆
    - 搜索和拉取相应容器
    - 设置容器目录,名字
    - 生成服务文件
    - 创建服务
    - 设置linger在启动时自动启动容器
相关命令:

添加用户,考试时候根据要求填写,

useradd containers
echo redhat|passwd –stdin containers //考试的时候按照实际要求操作

编辑配置文件,设置日志为永久存储

vim /etc/systemd/journal.conf
Storage=persistent
systemctl restart systemd-journald.service
su - containers
mkdir -p /home/containers/container_journal
exit
find /var/log/journal -name "*.journal" -exec cp -rf {} /home/containers/container_journal/ \;

使用用户containers登陆创建容器

ssh containers@serverb
podman login registry.network9.example.com
    > userxxxx
    > passxxxx
podman pull rsyslog
podman images
podman run -d –name=logserver -v /home/containers/container_journal:/var/log/journal:Z rsyslog
mkdir -p ~/.config/systemd/user
cd .config/systemd/user/
podman generate systemd –name logserver –files –new
systemctl –user daemon-reload
systemctl –user enable container-logserver –now
systemctl –user status container-logserver
loginctl enable-linger
loginctl show-user containers
验证:

reboot然后查看容器是否自动启动

podman ps