RedHat - chanandrew96/MyLearning GitHub Wiki

安裝套件

RedHat使用yum來安裝套件

sudo yum install <Package-Name>
yum install git
yum install python3
yum install python3-pip

Podman

命令 Commands

  • 列出所有Images
    podman image ls
    
  • 列出所有Container
    podman ps -a
    
  • 停止正在運行的Container
    podman stop <Container-ID/Container-Name>
    
  • 刪除Container
    podman rm <Container-Name>
    
  • 列出所有Pod (Pod類近Stack,可包含多個Container)
    podman pod list
    
  • 刪除Pod
    podman pod rm <Pod-Name>
    
  • 使用已知的Image來建立和啟動Container
    podman run <Image-Name> -e <Parameter-Name>='<Parameter-Value>' -e <Parameter-Name>='<Parameter-Value>'
    

在Podman中使用-v (Mounting Volume)

使用-v的時候有可能在運行Pod的時候出現Access Denied的問題,可用以下其中一個解決方式

  1. podman runpodman create中加上--security-opt label=disable
    例子
podman run -it --rm -v /var/data:/sqm  --security-opt label=disable  docker.io/library/alpine sh 
  1. -v後加上:Z
    例子
podman run -it --rm -v /var/data:/sqm:Z docker.io/library/alpine sh

使用YAML檔案同時建立多個Container

使用YAML可以同時建立多個Container,會把這些Container放到同一個Pod中

apiVersion: v1
kind: Pod
metadata:
  name: Form-Recognzier
spec:
  containers:
  - name: container-1
    image: container-image-1
    ports:
      - containerPort: 5000
        hostPort: 5000
        protocol: TCP
    env:
    - name: Parameter-1
      value: Value-1

使用命令podman play kube <YAML-File-Name>執行預先寫好的YAML檔案
使用podman kube down <YAML-File-Name>來停止及刪除由yml檔建立的Container 當你刪除由這個檔案建立的Pod時,其相關的Container也會用時刪除

Podman-Compose

安裝pippodman-compose

yum install python3-pip
pip install podman-compose

安裝podman-plugins & dnsmasq

根據這網站的教學,我們在直接使用Podman-compose來執行Docker-compose的yml檔案前我們需要安裝podman-plugins & dnsmasq

yum install podman-plugins

使用podman-compose執行docker-compose yml檔案

podman-compose -f <yml-file> up -d

防火牆設定

設定Port Forwarding

sudo firewall-cmd --add-forward-port=port=<Port-Number>:proto=<Protocol>:toport=<To-Port-Number>
sudo firewall-cmd --add-forward-port=port=8080:proto=tcp:toport=8080

轉換Docker Compose的yml檔為Podman可用的kubernetes yml

更新yml檔使用.env中的數值

如果在yml檔中使用了${}的方法來取得.env檔中的數值,我們可以以下面的命令更新並取得帶有數值的yml檔用於轉換

記得需要把.env檔放於yml檔的相同路徑

docker compose -f <original-yml-file> config > <output-yml-file>

使用kompose

kompose convert -f <Docker-Compose-yml-file>

加添CA Certificate

  1. 將CA Cert放到/etc/pki/ca-trust/source/anchors
  2. 執行update-ca-trust extract更新CA Trust列表
  3. 查看現有CA Trust trust list | grep <Cert>
  4. 如果未能成功使用SSL連線,可以嘗試update-ca-trust extract --anchor <.crt>

Verify CA Certificate (Openssl)

openssl verify <.crt>

測試連接

openssl s_client -connect <cert.page:port> -CAfile <.crt>
curl -v --cacert <.crt> <https://link:port>

修改Host/IP Mapping

  1. 修改/etc/hosts檔案
  2. 加上新的Mapping
192.168.0.101 new-device
⚠️ **GitHub.com Fallback** ⚠️