紅帽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 <容器名>
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/304490.html
標籤:其他
上一篇:react + koa2 +mongodb專案 + 騰訊云服務器 windows系統打包部署上線完整(圖文)攻略
