참고:

Podman에 Project Quay를 설치하는 방법 알아보기

소개

Project Quay는 클라우드 네이티브 플랫폼에서 사용할 컨테이너와 같은 아티팩트를 저장하고 관리하는 데 사용되는 오픈 소스 저장소입니다. Project Quay는 다음과 같은 추가 기능도 제공합니다(특정 순서 없음).

Operator를 사용하여 Kubernetes 클러스터에 배치하거나 Podman의 독립형 컨테이너 또는 고가용성 클러스터로 배치할 수 있습니다.

목표

이 실습은 Podman에서 Project Quay를 설치하고 실행한 다음 작동 중인지 확인하는 방법을 보여줍니다. 설명된 주요 단계는 다음과 같습니다.

주: 제공된 단계에는 인증서를 사용하여 레지스트리를 구성하는 방법이 포함되지 않습니다. 따라서 비운용 목적이나 내부/공기적 환경에서 권장됩니다.

요구사항

Oracle Support 면책

Oracle은 Oracle에서 제공하지 않는 소프트웨어 프로그램 및 운영 체제를 참조하기 때문에 다음 지침에 제공된 일련의 단계에 대한 기술 지원을 제공하지 않습니다. 이 자습서는 편의상 선택적 지침을 제공합니다.

Podman 기반 서비스의 개발 및 사용에 대해 Oracle이 지원하는 방법에 대한 자세한 내용은 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 Works 확인

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 컨테이너에서 사용

호스트 파일 설정

Project Quay 컨테이너가 함께 통신할 수 있도록 네트워킹을 구성하는 몇 가지 방법이 있습니다. 자세한 내용은 Project Quay 설명서를 참조하십시오.

이러한 옵션 중 하나는 Oracle Linux 시스템의 호스트 이름을 분석할 수 있는지 확인하는 것입니다. 연관된 IP 주소와 함께 호스트 파일에 ol-server 짧은 호스트 이름 및 FQDN 호스트 이름을 추가하여 제공된 무료 실습 환경에서 이미 완료되었습니다.

  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
    

프로젝트 퀘이 데이터 저장소 설정

Project 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에서 작동할 수 있습니다. SELinux는 Oracle Linux에서 기본적으로 사용으로 설정됩니다.

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
    

프로젝트 퀘이 구성

Project Quay에는 PostgreSQL 데이터베이스를 설정하고 Quay 구성 파일을 생성하기 위한 세부 정보를 제공하는 도구가 포함되어 있습니다. 구성 도구 자체는 웹 기반이며 Quay 구성 파일은 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는 호스트의 포트 80에 대한 Luna 데스크탑에서 열린 포트입니다. 포트 80은 Project Quay 컨테이너에 대해 외부적으로 매핑된 포트입니다.

  4. Luna Desktop에서 새 브라우저 세션을 열고 Project Quay ConfigTool의 URL을 입력합니다.

    http://localhost:8080
    

    출력 예:

    pgadmin-로그인

  5. 제공된 값을 사용하여 Quay Configuration 편집기에 로그인합니다.

    • 사용자 이름 - quayconfig
    • Password(암호) - secret-pass(주: Quay 구성 컨테이너를 시작할 때 전달된 마지막 매개변수와 일치합니다.)

    출력 예:

    pgadmin-로그인

Quay 구성 정보 입력

다음 단계는 Postgres, Redis 등을 설정하는 동안 이전 단계에서 수집/고지된 정보 중 일부를 사용하는 동안 새로운 세부 정보를 입력하는 것입니다.

  1. 로그인한 후 아직 표시되지 않은 경우 '기본 구성' 섹션으로 스크롤합니다. 여러 개의 필드를 채울 수 있습니다.

    • 레지스트리 제목, Registry Title Short, Enterprise Logo URL연락처 정보

    이 실습/튜토리얼에서는 변경되지 않습니다.

    출력 예:

    pgadmin-로그인

  2. Server Configuration 섹션으로 이동하여 서버의 호스트 이름을 입력합니다(/etc/hosts 파일의 앞부분 참조).

    • 서버 호스트 이름: ol-server.pub.linuxvirt.oraclevcn.com

    출력 예:

    pgadmin-로그인

  3. 그런 다음 데이터베이스라는 섹션으로 스크롤합니다.

    출력 예:

    pgadmin-로그인

  4. 데이터베이스 유형 필드 옆에 있는 드롭다운 상자를 누릅니다. 두 가지 옵션(MySQLPostgres, Postgres)이 나열됩니다.

    주: Postgres를 선택하는 이유는 Clair 스캔 도구가 MySQL Quay 데이터베이스와 작동하지 않기 때문에 나중에 Clair 스캔 도구를 선택할 수 있도록 허용하는 것입니다.

    출력 예:

    pgadmin-로그인

  5. 이제 Postgres 특정 필드가 표시되고 Postgres에 액세스할 수 있도록 세부 정보를 입력합니다.

    • 데이터베이스 서버: a) /etc/hosts 파일에 입력된 대로 $HOSTNAME 또는 FQDN(DNS를 사용하여 분석해야 함)을 입력하거나 b) 이전 단계에서 기록된 컨테이너 IP 주소를 사용합니다(예: 10.88.0.2).
    • 사용자 이름: quayuser
    • 비밀번호: quay-test
    • 데이터베이스 이름: 회색

    **참고: 이러한 모든 값은 Postgres 컨테이너를 시작할 때 사용된 값과 일치해야 하지만(이전 참조) 그렇지 않으면 완전히 사용자가 구성할 수 있습니다.

    출력 예:

    pgadmin-로그인

  6. 계속해서 Redis 섹션 아래로 스크롤하여 Redis 컨테이너를 시작하는 동안 반환된 IP 주소를 입력합니다.

    • Redis Hostname - a) /etc/hosts 파일에 입력된 대로 $HOSTNAME 또는 FQDN(DNS를 사용하여 확인해야 함)을 입력하거나 b) 이전 단계에서 기록된 컨테이너 IP 주소를 사용합니다(예: 10.88.0.3).

    출력 예:

    pgadmin-로그인

  7. 브라우저 화면 하단에는 Validate Configuration Changes이라는 floating 대화 상자가 있습니다.

    출력 예:

    pgadmin-로그인

  8. Project Quay 서버가 작동할 최소 요구 사항이 충족되었는지 확인하려면 이 항목을 클릭합니다.

    출력 예:

    pgadmin-로그인

  9. 단추를 눌러 구성 파일을 다운로드합니다. 파일(quay-config.tar.gz)이 다운로드되었는지 확인합니다.

    참고: 실습 환경에서는 생성된 구성 파일이 Quay 저장소를 구성 중인 서버가 아닌 Luna Desktop의 ~/Downloads 디렉토리에 저장됩니다.

    출력 예:

    pgadmin-로그인

  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>:~
    

    중요: 위 명령 끝에 있는 :~를 제거하지 마십시오. 제거된 경우 nothing will be copiedol-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에 로그온되어 있는 원래 터미널 window로 전환하고 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
    

시작 준비 대기

프로젝트 할당량 /config/storage 디렉토리의 실제 위치는 올바른 권한이 적용되고 액세스 가능한 한 필요에 따라 변경할 수 있습니다.

  1. ol-server에 연결된 원래 터미널 창을 사용하여 Project Quay 구성을 보유할 위치를 만듭니다.

    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. Project Quay config 디렉토리에 root 'Read' 액세스 권한을 부여합니다.

    sudo setfacl -R -m u:1001:r ~/quay/config
    
  6. Project Quay storage 디렉토리에 root '읽기', '쓰기' 및 '실행' 액세스 권한을 부여합니다.

    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-로그인

    주: 브라우저 창이 오류 메시지(구성 로드 불능을 나타내는 경우가 많음)를 반환하는 경우 프로젝트 Quay 서버가 이 초기 시작에 대해 여전히 자체적으로 구성되고 있음을 의미합니다. 잠시 기다렸다가 다시 시도하십시오.

새 프로젝트 퀘이 사용자 및 로그인 생성

  1. 첫번째 작업은 새 유저를 생성하는 것입니다. Quay Login 화면에서 Create Account라는 링크(UsernamePassword 필드 아래)를 누릅니다.

    출력 예:

    pgadmin-로그인

  2. 새 계정 생성 페이지가 표시되면 다음 정보를 입력합니다.

    • Username(사용자 이름) - Quay Registry에 표시되는 사용자 이름입니다.
    • 전자 메일 주소 - 적합한 전자 메일 주소여야 합니다(검증을 위해 이 실습에서 사용되지 않음).
    • Password(암호) - 암호를 입력합니다(최소 8자여야 함).

    주: 빨간색 배경이 표시된 필드가 있을 경우 예상치 않거나 부적합한 값이 입력되었음을 의미합니다. 녹색 배경은 입력한 값이 유효함을 나타냅니다.

    출력 예:

    pgadmin-로그인

    중요: super user를 만드는 방법은 여기에 설명되어 있습니다. 수퍼 유저는 확장 권한이 부여된 일반 사용자로, 다음 작업을 수행할 수 있습니다.

    • 사용자 관리
    • 조직 관리
    • 질의 사용 로그
    • 변경 로그 보기
  3. 모든 입력 필드에 녹색 배경이 있으면(이전 스크린샷 참조) Create Account 버튼을 누릅니다. Project Quay는 새 계정을 생성하고 자동으로 로그인합니다.

    (선택 사항) 개인 선택 또는 회사 정책에 따라 usernamepassword 값을 저장할지 여부를 결정합니다.

    출력 예:

    pgadmin-로그인

  4. 프로젝트 퀘이가 실행 중이며 첫 번째 사용자가 로그인되었습니다.

    출력 예:

    pgadmin-로그인

새 프로젝트 퀘이 레지스트리 저장소 생성

Project Quay의 저장소 이름은 보통 설정 후 저장('푸시')할 컨테이너 이미지와 동일합니다. 이렇게 하면 나중에 로컬에서 호스트된 이 컨테이너 레지스트리에서 컨테이너 이미지를 찾는 것이 훨씬 더 명확해집니다. 하지만 실습 단계를 위해 이를 준수할 필요가 없으므로 스크린샷에 저장소 이름이 _test01으로 표시되는 이유가 있습니다.

  1. 새 저장소 생성 링크(화면의 오른쪽 상단)를 누르면 새 저장소 생성 화면이 표시됩니다.

    출력 예:

    pgadmin-로그인

  2. 필요한 값을 입력합니다. 아래와 같습니다.

    • 저장소 이름 - 저장소 이름은 [a-z0-9][.a-z0-9-]*(/[a-z0-9][.a-z0-9-])과 일치해야 합니다(참고: 대문자는 부적합합니다).
    • Repostory Description(저장소 설명) - 선택사항입니다.
    • 원하는 용도에 따라 저장소를 공용 또는 개인으로 설정하도록 선택합니다.

    주: 저장소 설명공용/개인 설정은 나중에 변경할 수 있습니다.

    출력 예:

    pgadmin-로그인

  3. 단추를 눌러 새 저장소를 생성합니다. 이전 단계에서 선택한 저장소 유형에 따라 Create Private Repository 또는 Create_Public_Repository가 표시됩니다.

    출력 예:

    pgadmin-로그인

  4. 새로 생성된 저장소가 표시됩니다.

    출력 예:

    pgadmin-로그인

    이때 Project Quay Registry가 시작되면 새 사용자가 생성되고 로그인됩니다. 마지막으로 컨테이너 레지스트리 내에 새 저장소가 생성되었습니다. 다음 단계는 명령행으로 돌아가서 새로 생성된 이 컨테이너 레지스트리에 컨테이너를 업로드하는 것입니다.

Project Quay 사용

이러한 단계는 외부 레지스트리에서 이미지를 가져온 다음 이미지를 태그 지정하여 새로 만든 test01 저장소에 마지막으로 이미지를 푸시하기 전에 새로 만든 Project Quay Registry에 로그온하는 방법을 보여줍니다.

주: 이 Project Quay 설치는 SSL 인증서를 사용하여 구성되지 않았으므로 로그인푸시 작업을 사용하려면 추가 플래그(--tls-verify=false)를 사용해야 합니다. 그렇지 않으면 실패합니다. 운용 환경에서는 --tls-verify=false 플래그를 사용하지 않아야 합니다.

  1. 터미널을 열고 아직 연결되지 않은 경우 ssh를 통해 ol-server 인스턴스에 연결합니다.

    ssh oracle@<ip_address_of_ol-server>
    
  2. 로컬에서 호스트된 Project Quay 레지스트리에 저장할 이미지를 가져옵니다.

    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. 다운로드한 이미지에 대상의 세부정보(새로 생성된 프로젝트 콰이 레지스트리)를 태그 지정합니다. 사용된 tag는 원하는 값일 수 있습니다. 이 예에서는 '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
    

    주: 이전 단계에서 Project Quay 사용자를 생성할 때 사용되는 사용자 이름비밀번호 값을 사용하십시오.

    출력 예:

    [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 저장소의 Repository Tags 섹션으로 이동하면 'tagged' 이미지가 나열됩니다.

    출력 예:

    pgadmin-로그인

  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에는 아래와 같이 이 실습의 범위를 벗어나는 많은 기능과 능력이 있습니다.

자세한 내용은 프로젝트 Quay 설명서에서 확인할 수 있습니다.

그 동안, 많은 시간을 할애하여이 실험실을 시도해 주셔서 감사합니다.

추가 학습 자원

docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하십시오. 또한 education.oracle.com/learning-explorer를 방문하여 Oracle Learning 탐색기가 됩니다.

제품 설명서는 Oracle Help Center를 참조하십시오.