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
完成步骤
- 考试的时候镜像仓库都是搭建好的
- 使用题中给的contsvc用户登录servera
ssh contsvc@servers
- 先创建容器存储的共享目录
mkdir -pv /home/contsvc/container_journal
- 用podman登录到注册服务器上面
podman login -u admin
- 考试的时候直接下载镜像可能下载不了,需要告诉podman从那里去下载
-
先搜索一下题目中要求的镜像nginx
podman search nginx
-
搜索到以后再去下载
podman pull nginx
-
创建镜像并挂载共享存储目录
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找到的镜像完整路径
-
查看运气运行的状态
podman ps
-
登录到容器中去生合成文件
podman exec -it sunserver /bin/bash
echo RHCSA > /var/log/journal/rhcsa.log
-
在用户加目录中创建服务二年加上你
mkdir -pv ~/.config/systemd/user
-
生成服务文件
cd .config/systemd/user ## 教您如进入岗刚创建的目录
podman generate systemd --help ## 先查看帮助生的写错
podman generate systemd --name sunserver --restart-policy always --files ## 这样会自动生成服务文件
-
基于题中给的普通用户去管理启动服务
systemctl --user daemon-reload
systemctl --user enable container-sunserver.service
-
重启服务器看看能不能容器正常运行
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. 安装并创建容器,设置开机自启的主要内容,如果未能解决你的问题,请参考以下文章