Linux podman容器实验

要求
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'

进入容器并测试一条命令

posted @ 2022-03-26 08:40  supermao12  阅读(384)  评论(0编辑  收藏  举报