共计 1832 个字符,预计需要花费 5 分钟才能阅读完成。
家喻户晓,podman 是一个开源的无守护过程工具,它提供了构建、运行和治理容器的环境。将容器作为 systemd service 运行意味着当零碎重新启动时,容器将主动启动。
在这篇文章中,咱们将学习如何在基于 RHEL 的发行版 (如 RHEL 8、CentOS 8 和 Rocky Linux 8) 上应用 podman 将容器作为零碎服务运行。
前提条件
- Minimal RHEL based OS Installation.
- Stable Internet Connection
- Sudo User with root privileges
(1) 装置 Podman
要在 RHEL 8 上装置 podman,请运行
$ sudo dnf install @container-tools -y
要在 CentOS 8 / Rocky Linux 8 上装置 podman,请运行
$ sudo dnf install -y podman
要查看 podman 是否装置胜利,请尝试应用 podman 上面的命令运行 hello-world 容器。
$ podman -v
podman version 3.3.1
$
$ podman run 'hello-world'
留神: 当咱们第一次运行 podman 时,它会提醒咱们抉择想要下载容器映像的托管仓库。
输入确认 podman 已胜利装置,让咱们进入下一步。
(2) 生成 systemd 服务
假如要给 rsyslog 容器生成 systemd 服务,首先应用以下 podman 命令启动 rsyslog 容器
$ podman run -d --name <Container-Name> <Image-Name>
留神: 如果您心愿从特定的仓库下载 rsyslog 容器映像,请应用以下语法
$ podman run -d --name container-name <registry-URL>/<image-name>
在这个演示中,我应用了 Red hat 仓库,首先登录仓库
$ podman login registry.access.redhat.com
Username: <Specify-User-Name>
Password: <Enter-Password>
Login Succeeded!
$
当初尝试应用以下 podman 命令运行容器
$ podman run -d --name rsyslog-server registry.access.redhat.com/rhel7/rsyslog
$ podman ps
当初,为 rsyslog-server 容器创立 systemd 服务,运行以下命令
$ mkdir -p .config/systemd/user
$ cd .config/systemd/user/
$ podman generate systemd --name rsyslog-server --files --new
/home/sysops/.config/systemd/user/container-rsyslog-server.service
$
无关 podman generate systemd 命令的详细信息,请参阅它的帮忙页面
$ podman generate systemd --help
(3) 启动和启用容器 Systemd 服务
运行以下命令启动并启用 rsyslog-server 容器的 systemd 服务
$ cd .config/systemd/user/
$ systemctl --user daemon-reload
$ systemctl --user enable container-rsyslog-server.service
$ systemctl --user restart container-rsyslog-server.service
验证 systemd 服务状态和容器状态
$ systemctl --user status container-rsyslog-server.service
$ podman ps
当零碎重新启动时,容器将通过它的 systemd 服务主动启动。咱们重启一次并验证容器服务。
$ sudo reboot
零碎重启后,而后登录零碎并验证容器服务
$ podman ps
$ cd .config/systemd/user/
$ systemctl --user status container-rsyslog-server.service
很好,这确认了 rsyslog-server 容器在重启后通过它的 systemd 服务胜利主动启动。
我的开源我的项目
- course-tencent-cloud(酷瓜云课堂 – gitee 仓库)
- course-tencent-cloud(酷瓜云课堂 – github 仓库)