- 这是容器的两道新题,应该合在一起做
- 利用注册表服务器上的 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 是一个无守护进程的容器引擎,用于在 Linux 系统上进行开发、管理和运行 OCI Containers。
- Podman 是一个开源的容器运行时项目,可在大多数 Linux 平台上使用。
- RHEL 8/CentOS 8已经放弃了对Docker容器官方技术支持,podman已经是CentOS8的默认容器软件。
- Podman 提供了一个与 Docker 兼容的命令行前端来管理镜像。
sudo dnf install -y podman
Podman帮助- 不会用还不会查帮助么?
$ podman --help $ podmanPodman常用命令--help $ man podman $ man 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>
-
在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 HelloPodman生成服务文件
- pod中的容器systemd管理脚本生成
podman generate systemd <容器名>



