注意:

了解在 Podman 上安裝專案碼頭

簡介

Project Quay 是一種開放原始碼儲存區域,可用來儲存及管理用於雲端原生平台的使用者自建物件,例如容器。Project Quay 也提供其他功能,例如 (沒有特定順序):

它可以使用操作員在 Kubernetes 叢集上部署,也可以作為 Podman 上的獨立容器或高可用性叢集。

目標

這個實驗室說明如何在 Podman 上安裝並執行 Project Quay,然後確認它是否正常運作。以下為主要步驟:

注意:提供的步驟不包括如何使用憑證設定登錄。因此,建議用於非生產目的或內部 / 公平對應的環境。

需求

Oracle Support 免責聲明

Oracle 不會針對下列指示所提供的步驟順序提供技術支援,因為這些步驟是指並非由 Oracle 提供的軟體程式和作業系統。本教學課程提供選擇性指示,僅供參考。

如需 Oracle 支援開發及使用 Podman 型服務的方法的詳細資訊,請參閱 https://docs.oracle.com/en/operating-systems/oracle-linux/podman/。

設定實驗室環境

注意:使用免費實驗室環境時,請參閱 Oracle Linux Lab Basics 以瞭解連線和其他用途指示。

  1. 開啟終端機,如果尚未連線,則透過 ssh 連線到 ol-server 執行處理。

    ssh oracle@<ip_address_of_instance>
    

(選擇性) 確認 Podman 工作

Oracle Linux 中的容器工具套件提供最新的 Podman、Buildah、Skopeo 及相關相依性版本。

  1. 檢查 Podman 的版本。

    podman -v
    
  2. 確認 Podman CLI 正在運作中。

    podman run quay.io/podman/hello
    

    範例輸出:

    [oracle@ol-server ~]$ podman run quay.io/podman/hello
    Trying to pull quay.io/podman/hello:latest...
    Getting image source signatures
    Copying blob f82b04e85914 done  
    Copying config dbd85e09a1 done  
    Writing manifest to image destination
    Storing signatures
    !... Hello Podman World ...!
    
             .--"--.           
           / -     - \         
          / (O)   (O) \        
       ~~~| -=(,Y,)=- |         
        .---. /`  \   |~~      
     ~/  o  o \~~~~.----. ~~   
      | =(X)= |~  / (O (O) \   
       ~~~~~~~  ~| =(Y_)=-  |   
      ~~~~    ~~~|   U      |~~ 
    
    Project:   https://github.com/containers/podman
    Website:   https://podman.io
    Documents: https://docs.podman.io
    Twitter:   @Podman_io
    

設定網路

設定防火牆規則

編輯系統的防火牆規則,以開啟 Project Quay 所需的連接埠。

  1. 更新防火牆規則

    sudo firewall-cmd --permanent --add-port=80/tcp
    sudo firewall-cmd --permanent --add-port=443/tcp
    sudo firewall-cmd --permanent --add-port=5432/tcp
    sudo firewall-cmd --permanent --add-port=6379/tcp
    sudo firewall-cmd --reload
    
    

    範例輸出:

    [oracle@ol-server ~]$ sudo firewall-cmd --permanent --add-port=80/tcp
    success
    [oracle@ol-server ~]$ sudo firewall-cmd --permanent --add-port=443/tcp
    success
    [oracle@ol-server ~]$ sudo firewall-cmd --permanent --add-port=5432/tcp
    success
    [oracle@ol-server ~]$ sudo firewall-cmd --permanent --add-port=6379/tcp
    success
    [oracle@ol-server ~]$ sudo firewall-cmd --reload
    success
    

    以下是每個連接埠的使用方式清單:

    • 連接埠 80 與 443:由 Quay 容器使用
    • 連接埠 5432:由 PostgreSQL 容器使用
    • 連接埠 6379:由 Redis 容器使用

設定主機檔案

有數種方法可以設定「專案查詢」容器使用的網路,以確保它們能夠共同通訊,如需詳細資訊,請參閱專案查詢文件

這些選項之一是確保可解析 Oracle Linux 系統的主機名稱。此功能已在提供的免費實驗室環境中完成,方式是在主機檔案中新增 ol-server 簡短的主機名稱和 FQDN 主機名稱,以及關聯的 IP 位址。

  1. 檢查 /etc/hosts 檔案目前的內容。

    cat /etc/hosts
    

    範例輸出:

    [oracle@ol-server ~]$ cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    10.0.0.150 ol-server.pub.linuxvirt.oraclevcn.com ol-server
    

(可選擇) 安裝 PostgreSQL 用戶端

此步驟允許從容器外部的命令行存取 PostgreSQL 資料庫。設定並設定容器不需要此步驟。

  1. 安裝 PostgreSQL 用戶端。

    sudo dnf -y install postgresql
    

設定專案 Quay 資料存放區

「專案查詢」使用資料庫來儲存描述資料。「使用 Postgres」為預設選項,用於此教學課程。使用者也可以使用 MySQL 作為替代選項,但是在此實驗室範圍之外。

  1. 建立資料庫容器資料儲存的目錄。

    sudo mkdir -p /var/lib/pgsql/data
    
  2. 在資料儲存設定正確的權限。

    sudo chmod 0755 /var/lib/pgsql/data
    
    sudo setfacl -m u:26:-wx /var/lib/pgsql/data
    
  3. 定義環境變數。

    這些定義用來啟動 Postgres 容器的 Postgres 變數 。

    export POSTGRESQL_CONTAINER_NAME=postgres
    export POSTGRESQL_DB=quay
    export POSTGRESQL_USER=quayuser
    export POSTGRESQL_PASSWORD=quay-test
    
    

    注意:這些變數可用來定義下列項目

    • POSTGRESQL_CONTAINER_NAME 是指 Postgres 容器使用的名稱。

    • POSTGRESSQL_DB、POSTGRES_USER 和 POSTGRES_PASSWORD 是指 Postgres 規格值。

  4. 啟動 Postgres 容器,指定資料庫資料存放區的「使用者名稱」、「密碼」、「資料庫名稱」、「連接埠號碼」和「磁碟區」掛載點等詳細資訊。

    sudo podman run --detach --name ${POSTGRESQL_CONTAINER_NAME} \
       --env POSTGRES_USER=${POSTGRESQL_USER} \
       --env POSTGRES_PASSWORD=${POSTGRESQL_PASSWORD} \
       --env POSTGRES_DB=${POSTGRESQL_DB} \
       --publish 5432:5432 \
       --volume /var/lib/pgsql/data:/var/lib/postgresql/data:Z \
       docker.io/library/postgres:latest
    

    附註:-volume 設定結尾的 :Z 可讓此儲存磁碟區與啟用 SELinux 搭配使用。Oracle Linux 上預設會啟用 SELinux。

將 Trigram 模組新增至 PostgreSQL

(可選擇) 使用 PostgreSQL 用戶端

只有在上述選擇性步驟中安裝 Postgres 用戶端套裝軟體時,才能夠執行這些步驟。如果未安裝這些套裝軟體,請略過此可選步驟。

  1. 連線到資料庫。

    psql -h $(hostname -i) quay quayuser
    

    Password for user quayuser:quay-test,如上述匯出與容器建立中所定義。

  2. 建立 trigram 模組。

    CREATE EXTENSION IF NOT EXISTS pg_trgm;
    

    範例輸出:

    quay=# CREATE EXTENSION IF NOT EXISTS pg_trgm;
    CREATE EXTENSION
    
  3. 鍵入 \q,然後鍵入 RETURN 鍵來結束 PostgreSQL 用戶端。

    \q
    

    範例輸出:

    quay=# \q                                     
    [oracle@ol-server ~]$
    

直接在容器中執行

  1. 建立 trigram 模組。

    sudo podman exec -it postgres /bin/bash -c 'echo "CREATE EXTENSION IF NOT EXISTS pg_trgm" | psql -d quay -U quayuser'
    

    範例輸出:

    [oracle@ol-server ~]$ sudo podman exec -it postgres /bin/bash -c 'echo "CREATE EXTENSION IF NOT EXISTS pg_trgm" | psql -d quay -U quayuser'
    CREATE EXTENSION
    

驗證 PostgreSQL 容器狀態

  1. 確認資料庫已啟動。

    sudo podman ps
    

    範例輸出:

    [oracle@ol-server ~]$ sudo podman ps
    CONTAINER ID  IMAGE                             COMMAND               CREATED         STATUS             PORTS                   NAMES
    1ec4a57b792d  docker.io/library/postgres:10.12  postgres              27 minutes ago  Up 26 minutes ago  0.0.0.0:5432->5432/tcp  postgresql
    
  2. 查看容器日誌。

    sudo podman logs -f postgres
    

    注意:使用 CTRL+C 返回命令提示字元。

    範例輸出:

    PostgreSQL init process complete; ready for start up.
    
    2023-02-01 16:11:49.512 UTC [1] LOG:  listening on IPv4 address "0.0.0.0", port 5432
    2023-02-01 16:11:49.512 UTC [1] LOG:  listening on IPv6 address "::", port 5432
    2023-02-01 16:11:49.514 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
    2023-02-01 16:11:49.524 UTC [64] LOG:  database system was shut down at 2023-02-01 16:11:49 UTC
    2023-02-01 16:11:49.528 UTC [1] LOG:  database system is ready to accept connections
    
  3. 確認 Postgres 容器的 IP 位址。請記下,因為稍後需要。

    sudo podman inspect -f "" postgres
    

    範例輸出:

    [oracle@ol-server ~]$ sudo podman inspect -f "" postgres
    10.88.0.2
    

    以下顯示達成此目標的替代方式。

    sudo podman inspect postgres | grep IPAddress
    

    範例輸出:

    [oracle@ol-server ~]$ sudo podman inspect postgres | grep IPAddress
                "IPAddress": "10.88.0.2",
                             "IPAddress": "10.88.0.2",
    

    注意:此處使用的名稱 postgres 與前一個 Podman 命令所使用的 --name 變數名稱相符,以建立 PostgreSQL 容器。

設定 Redis

Project Quay 需要 Redis 來儲存臨時資訊。

  1. 為 Redis 容器資料儲存建立目錄。

    sudo mkdir -p /var/lib/redis
    
  2. 設定權限。

    sudo chmod 0755 /var/lib/redis
    
  3. 啟動 Redis 容器。

    sudo podman run --detach --name redis \
                    --restart=always \
                    --publish 6379:6379 \
                    --privileged=true \
                    --volume /var/lib/redis:/var/lib/redis:Z \
                    docker.io/library/redis:latest
    
    
  4. 確認 Redis 容器正在執行中。

    sudo podman ps
    
  5. 查看 Redis 容器的日誌。

    sudo podman logs -f redis
    

    注意:使用 CTRL+C 返回命令提示字元。

  6. 確認 Redis 容器的 IP 位址。請記下,因為稍後需要。

    sudo podman inspect -f "" redis
    

設定專案 Quay

Project Quay 包含提供詳細資訊的工具,可設定 PostgreSQL 資料庫並產生 Quay 組態檔。組態工具本身是以 Web 為基礎,且「四射線」組態檔會產生為 tar/ 壓縮的 YAML 檔案,在移動位置後必須加以展開。

  1. 啟動 Project Quay ConfigTool。

    sudo podman run -d --name quay-config -p 80:8080 -p 443:8443 quay.io/projectquay/quay config secret-pass
    

    範例輸出:

    [oracle@ol-server ~]$ sudo podman run -d --name quay-config -p 80:8080 -p 443:8443 quay.io/projectquay/quay config secret-pass
    Trying to pull quay.io/projectquay/quay:latest...
    Getting image source signatures
    Copying blob ec924a250552 done  
    Copying blob fd07da1562ac done  
    Copying blob 3550ee360766 done  
    Copying blob b68865894b50 done  
    Copying blob ff46f0c54d73 done  
    Copying blob 88956768f1ec done  
    Copying blob 644b12ae1636 done  
    Copying blob 9661ced91a5f done  
    Copying config c1a4397f6e done  
    Writing manifest to image destination
    Storing signatures
    cc84cafcc5bdc41dacc86c22ba7d0d52d2bf02c0b1fca9aa59879942c7669f13
    
  2. 在 Luna Desktop 上按一下滑鼠右鍵,然後選取 Open Terminal Here

  3. 在新開啟的終端機中,設定 SSH 通道。

    ssh -L 8080:localhost:80 oracle@<ip_address_of_ol-server>
    

    範例輸出:

    [luna.user@lunabox ~]$ ssh -L 8080:localhost:80 oracle@129.159.195.234
    Activate the web console with: systemctl enable --now cockpit.socket
    
    Last login: Tue Feb  7 18:56:30 2023 from 138.1.16.50
    

    其中 8080 是在 Luna Desktop 上開啟的連接埠,以在主機上連接埠 80。連接埠 80 是 Project Quay 容器的外部對應連接埠。

  4. 從 Luna Desktop 開啟新的瀏覽器階段作業,並輸入 Project Quay ConfigTool 的 URL。

    http://localhost:8080
    

    範例輸出:

    pgadmin-login

  5. 使用提供的值登入「Quay 組態」編輯器。

    • 使用者名稱 - quayconfig
    • 密碼 - secret-pass ( 注意:這與啟動 Quay 組態容器時傳送的最後一個參數相符)。

    範例輸出:

    pgadmin-login

輸入 Quay 組態資訊

以下步驟涉及輸入新詳細資料,而其他步驟則使用較早步驟所收集 / 記載的一些資訊,同時設定 Postgres、Redis 等。

  1. 如果登入後沒有顯示,請向下捲動至基本組態區段。請注意,有數個可植入的欄位。

    • 登錄標題登錄標題簡稱企業標誌 URL聯絡資訊

    在此實驗室 / 教學課程中,將不會進行任何變更。

    範例輸出:

    pgadmin-login

  2. 向下捲動至 [ 伺服器配置 ] 區段,輸入伺服器的主機名稱 (如 /etc/hosts 檔案中所示)。

    • 伺服器主機名稱:olt-server.pub.linuxvirt.oraclevcn.com

    範例輸出:

    pgadmin-login

  3. 接著,向下捲動至名為 Database 的區段。

    範例輸出:

    pgadmin-login

  4. 按一下資料庫類型 (Database Type) 欄位旁邊的下拉式方塊。列出兩個選項:MySQLPostgres ,選取 Postgres

    注意:選取 Postgres 的理由是允許日後選取 Clair 掃描工具,因為 Clair 掃描工具無法與 MySQL Quay 資料庫搭配使用。

    範例輸出:

    pgadmin-login

  5. 現在會顯示「張貼」特定欄位,輸入詳細資料以便存取「張貼」。

    • 資料庫伺服器:選擇 - a) 輸入在 /etc/hosts 檔案中輸入的 $HOSTNAME 或 FQDN (必須使用 DNS 解析) 或 b) 使用先前步驟中記下的容器 IP 位址 (例如 - 10.88.0.2)
    • 使用者名稱:quayuser
    • 密碼:quay-test
    • 資料庫名稱:quay

    ** 注意:所有這些值都必須與啟動 Postgres 容器時使用的值相符 (請參閱先前版本),否則完全可供使用者設定。

    範例輸出:

    pgadmin-login

  6. 繼續向下捲動至 [Redis] (紅色) 區段,輸入稍早啟動 Redis 容器時所傳回的 IP 位址。

    • Redis 主機名稱 - 請選擇 - a) 輸入在 /etc/hosts 檔案中輸入的 $HOSTNAME 或 FQDN (必須使用 DNS 解析) 或 b) 使用先前步驟中記下的容器 IP 位址 (例如 - 10.88.0.3)

    範例輸出:

    pgadmin-login

  7. 請注意,在瀏覽器畫面底部有一個稱為驗證配置變更浮動對話方塊。

    範例輸出:

    pgadmin-login

  8. 點選以確認專案系統的最低需求符合 。

    範例輸出:

    pgadmin-login

  9. 按一下按鈕即可下載組態檔。確認已下載檔案 (quay-config.tar.gz)。

    附註:在實驗室環境中,產生的組態檔會儲存至 Luna Desktop 的 ~/Downloads 目錄,而不會儲存在設定 Quay 儲存區域的伺服器上。

    範例輸出:

    pgadmin-login

  10. 在 Luna Desktop 上按一下滑鼠右鍵,然後選取 Open Terminal Here。在新開啟的終端機中,確認設定檔已經下載 。

    ls -lsa ~/Downloads
    

    範例輸出:

    [luna.user@lunabox Desktop]$ ls -lsa ~/Downloads
    total 12
    0 drwx------. 2 luna.user luna.user   32 Feb  8 11:59 .
    8 drwx------. 1 luna.user luna.user 4096 Feb  8 11:59 ..
    4 -rw-rw-r--. 1 luna.user luna.user 1214 Feb  8 11:59 quay-config.tar.gz
    
  11. 將檔案從 Luna Desktop 機器移至設定並安裝 Project Quay 的 ol-server 機器上。

    scp ~/Downloads/quay-config.tar.gz oracle@<ip_address_of_ol-server>:~
    

    重要事項:請小心不要在上述指令的結尾移除 :~。如果將其不會複製ol-server 執行處理,

    範例輸出:

    [luna.user@lunabox Downloads]$ scp quay-config.tar.gz oracle@129.159.195.234:~
    quay-config.tar.gz                            100% 1214    64.1KB/s   00:00
    
  12. 輸入 exit,關閉用來複製 quay-config.tar.gz 檔案的作用中終端機視窗。

  13. 切換至用來開啟 SSH 通道的終端機視窗。

  14. 輸入 CTRL-C 以關閉 SSH 通道。SSH 通道階段作業應終止。保持終端機視窗本身開啟 - 即將到來的步驟需要再次開啟。

    附註:必須關閉 SSH 通道階段作業,因為連線的容器階段作業已經關閉。

  15. 切換至仍然登入 ol-server 的原始終端機視窗,然後檢查 oracle 使用者本位目錄中的 quay-config.tar.gz 檔案。

    ls ~
    

    範例輸出:

    [oracle@ol-server ~]$ ls ~
    quay-config.tar.gz
    
  16. 停止 Project Quay 組態容器處理作業。

    sudo podman stop quay-config
    

    範例輸出:

    [oracle@ol-server config]$ sudo podman stop quay-config
    WARN[0010] StopSignal SIGTERM failed to stop container quay-config in 10 seconds, resorting to SIGKILL 
    quay-config
    
  17. 確認 quay-config 容器已停止。

    sudo podman ps
    

準備啟動 Quay

只要套用了正確的權限並可供存取,即可視需要更改專案 Quay /config/storage 目錄的實際位置。

  1. 使用連線到 ol-server 的原始終端機視窗,建立一個存放「專案系統閘」組態的位置。

    mkdir -p ~/quay/config
    
  2. 建立一個位置,讓 Project Quay 能夠儲存其工藝品。

    mkdir -p ~/quay/storage
    
  3. 將 Gzipped Tar 檔案展開至 Quay 組態目錄中。

    tar -xzvf quay-config.tar.gz -C ~/quay/config/
    
  4. 確認 YAML 組態檔存在。

    cat ~/quay/config/config.yaml
    
  5. 授予 root 'Read' 存取 Project Quay config 目錄。

    sudo setfacl -R -m u:1001:r ~/quay/config
    
  6. 授予 root 'Read'、'Write' 及 'Execute' 存取 Project Quay storage 目錄。

    sudo setfacl -R -m u:1001:rwx ~/quay/storage
    

開始專案查詢

  1. 啟動 Project Quay 伺服器。

    sudo podman run --name quay --restart=always --publish 443:8443 --publish 80:8080 --privileged=true --volume ~/quay/config:/conf/stack:Z --volume ~/quay/storage:/datastorage:Z --detach quay.io/projectquay/quay:latest
    
  2. 確認已啟動。

    sudo podman ps
    
  3. 檢查「專案查詢」日誌 - 最多可能需要 15-20 分鐘才能完成第一次「專案查詢」啟動。

    sudo podman logs -f quay
    
  4. 切換至先前用來設定 SSH 通道的終端機視窗,然後再次開啟 SSH 通道。

    ssh -L 8080:localhost:80 oracle@<ip_address_of_ol-server>
    

    範例輸出:

    [luna.user@lunabox ~]$ ssh -L 8080:localhost:80 oracle@129.159.195.234
    Activate the web console with: systemctl enable --now cockpit.socket
    
    Last login: Tue Feb  7 18:56:30 2023 from 138.1.16.50
    
  5. 在 Luna Desktop 上開啟新的瀏覽器視窗,並連線至 Project Quay Registry 登入畫面。

    http://localhost:8080
    

    範例輸出:

    pgadmin-login

    注意:如果瀏覽器視窗傳回錯誤訊息 (通常表示無法載入組態),表示「專案查詢」伺服器仍在為此初始啟動設定本身。請稍候,並在幾分鐘後重試。

建立新專案提示使用者並登入

  1. 要做的第一件事就是建立新的使用者。在「Quay 登入」畫面中,按一下名為 Create Account 的連結 (在使用者名稱密碼欄位下方)。

    範例輸出:

    pgadmin-login

  2. 此時會顯示建立新帳戶頁面,並輸入下列資訊。

    • 使用者名稱 - 這是「Quay 登錄」中顯示的使用者名稱。
    • 電子郵件地址 - 這是有效的電子郵件地址 (不會用於此實驗室以進行驗證)
    • 密碼 - 輸入密碼 (長度至少必須為 8 個字元)

    備註:如果有任何欄位顯示紅色背景,表示輸入的值為非預期或無效。綠色背景表示輸入的值有效。

    範例輸出:

    pgadmin-login

    重要事項:如何建立超級使用者記載於此處超級使用者是具備擴充權限的一般使用者,其中包括執行下列動作的能力。

    • 管理使用者
    • 管理組織
    • 查詢用途日誌
    • 檢視變更日誌
  3. 一旦所有項目欄位都有綠色背景 (請參閱先前的螢幕擷取畫面),請按一下 Create Account 按鈕。Project Quay 會建立新的帳戶並自動登入。

    (選擇性) 決定是否要根據個人選擇或公司政策儲存 usernamepassword 值。

    範例輸出:

    pgadmin-login

  4. Project Quay 正在執行,且第一個使用者已登入。

    範例輸出:

    pgadmin-login

建立新專案查詢登錄儲存庫

Project Quay 中的儲存庫通常會命名為容器映像檔,而容器映像檔會在設定後儲存 ('push')。這使得之後從此本機代管的容器登錄檔尋找容器映像檔變得更加清晰。不過就實驗室步驟而言,不需遵守此規定,因此螢幕擷取畫面顯示儲存庫名稱為 _test01 的原因。

  1. 按一下建立新儲存區域連結 (畫面右上方),就會顯示建立新儲存區域畫面。

    範例輸出:

    pgadmin-login

  2. 完成必要的值。如下所示。

    • 儲存庫名稱 - 儲存庫名稱必須符合 [a-z0-9][。a-z0-9-]* (/[a-z0-9][。a-z0-9-]) ( 注意:大寫字母無效)
    • 轉售說明 - 這是選擇性的。
    • 選擇讓儲存區域變成公用專用 (視預期用途而定)。

    備註: 儲存庫描述公用 / 專用設定值可於稍後變更

    範例輸出:

    pgadmin-login

  3. 按一下此按鈕即可建立新儲存區域。這會顯示 Create Private RepositoryCreate_Public_Repository ,視上一個步驟中選取的儲存區域類型而定。

    範例輸出:

    pgadmin-login

  4. 將會顯示新建立的儲存區域。

    範例輸出:

    pgadmin-login

    此時「專案查詢登錄」已啟動,新使用者已建立並登入。最後已在容器登錄內建立新的儲存區域。下一步是返回命令行,然後將容器上傳至此新建立的容器登錄。

使用專案提示

這些步驟示範從外部登錄擷取影像,然後標記影像、登入新建立的 Project Quay Registry,最後才將影像植入新建立的 test01 儲存區域。

注意:由於尚未使用 SSL 憑證設定此「專案查詢」安裝,因此登入推播作業需要使用額外的旗標 (--tls-verify=false),否則它們將會失敗。在生產環境中,應該不要使用 --tls-verify=false 旗標。

  1. 開啟終端機,如果尚未連線,則透過 ssh 連線到 ol-server 執行處理。

    ssh oracle@<ip_address_of_ol-server>
    
  2. 提取要儲存在本機代管「專案查詢登錄」中的影像。

    podman pull quay.io/operator-framework/operatorhubio:v4
    

    範例輸出:

    podman pull quay.io/operator-framework/operatorhubio:v4
    Trying to pull quay.io/operator-framework/operatorhubio:v4...
    Getting image source signatures
    Copying blob de07aeb713d7 done  
    Copying blob ef32bf2cb8c7 done  
    Copying blob bf5952930446 done  
    Copying blob 84807cd1a858 done  
    Copying blob 1e60e070fb81 done  
    Copying blob a42b61b64a1a done  
    Copying blob 4002c47008f9 done  
    Copying blob 44e6bcd92ca9 done  
    Copying blob f8baa3854da1 done  
    Copying blob c0ea348411ae done  
    Copying config 11fa238eb3 done  
    Writing manifest to image destination
    Storing signatures
    11fa238eb3e3aa3262cafd975a9ca787e4f0832cd369ce3d1cb1c9c70573f4be
    
  3. 將下載的影像標記為目的地的詳細資訊 (新建立的「專案查詢登錄」)。使用的標記可以是任何偏好值 - 在此範例中為 'latest"

    podman tag quay.io/operator-framework/operatorhubio:v4 ol-server.pub.linuxvirt.oraclevcn.com/user01/test01:latest
    

    其中 user01 是您在登錄中使用者名稱的名稱,而 test01 是登錄的名稱。

  4. 登入新建立的 Project Quay Registry 與剛建立的儲存庫。

    podman login --tls-verify=false ol-server.pub.linuxvirt.oraclevcn.com/user01/test01
    

    備註:在先前步驟中建立「專案查詢」使用者時,請使用使用者名稱密碼值。

    範例輸出:

    [oracle@ol-server ~]$ podman login --tls-verify=false ol-server.pub.linuxvirt.oraclevcn.com/user01/test01
    Username: user01
    Password: 
    Login Succeeded!
    
  5. 將影像推送至新建立的 Project Quay Registry。

    podman push --tls-verify=false quay.io/operator-framework/operatorhubio:v4 ol-server.pub.linuxvirt.oraclevcn.com/user01/test01:latest
    

    範例輸出:

    podman push --tls-verify=false quay.io/operator-framework/operatorhubio:v4 ol-server.pub.linuxvirt.oraclevcn.com/user01/test01:latest
    Getting image source signatures
    Copying blob 8d46fa734840 done  
    Copying blob c5350d986805 done  
    Copying blob 274132c050df done  
    Copying blob d0f104dc0a1f done  
    Copying blob 9d51489878a0 done  
    Copying blob ed6469d35467 done  
    Copying blob fa152f521d35 done  
    Copying blob b277d564135b done  
    Copying blob 5764184699a3 done  
    Copying blob 15d6d3b2e9e6 done  
    Copying config 76a6ea4d80 done  
    Writing manifest to image destination
    Storing signatures
    
  6. 返回瀏覽器視窗,然後瀏覽至先前建立之 user-1/test01 儲存區域的儲存庫標記區段,就會列出 'tagged' 映像檔。

    範例輸出:

    pgadmin-login

  7. 在能夠測試是否可以從本機 Project Quay Registry 擷取影像之前,必須先刪除本機複本。

    podman rmi ol-server.pub.linuxvirt.oraclevcn.com/user01/test01:latest
    

    範例輸出:

    [oracle@ol-server config]$ podman rmi ol-server.pub.linuxvirt.oraclevcn.com/user01/test01:latest
    Untagged: ol-server.pub.linuxvirt.oraclevcn.com/user01/test01:latest
    
  8. 下一步將映像檔提取,但這次是來自本機代管的 Project Quay Registry。

    podman pull --tls-verify=false ol-server.pub.linuxvirt.oraclevcn.com/user01/test01:latest
    

    範例輸出:

    [oracle@ol-server config]$ podman pull --tls-verify=false ol-server.pub.linuxvirt.oraclevcn.com/user01/test01:latest
    Trying to pull ol-server.pub.linuxvirt.oraclevcn.com/user01/test01:latest...
    Getting image source signatures
    Copying blob eacf9093f015 done  
    Copying blob d204dcb236ad done 
    Copying blob fcbc1d0b6248 done  
    Copying blob 5dd584b7c36d done  
    Copying blob 7940dd7814b2 done  
    Copying blob a06d838fcfaf done  
    Copying blob a783f1b4704a done  
    Copying blob 8875926a3ee5 done  
    Copying blob 622c87e26f84 done  
    Copying blob 2ec61b0ec8cf done  
    Copying config 76a6ea4d80 done  
    Writing manifest to image destination
    Storing signatures
    76a6ea4d8064c26288fd07db817a683ca476b8ca64de07a2568e7acf53c78ded
    

    這可確認本機 Project Quay Registry 可以儲存並供其本身儲存區域內儲存的容器映像檔使用。

接下來的步驟

這完成了這個實驗室,示範如何在 Podman 上安裝和執行 Project Quay Registry。然而 Project Quay 已有許多超出此實驗室範圍的功能和能力,如下所示。

如需詳細資訊,請參閱專案報價文件

同時,感謝花時間試用這個實驗室。

其他學習資源

探索 docs.oracle.com/learn 的其他實驗室,或者存取更多 Oracle Learning YouTube 頻道上的免費學習內容。此外,請瀏覽 education.oracle.com/learning-explorer 以成為 Oracle Learning 檔案總管。

如需產品文件,請造訪 Oracle Help Center