Skip to content

antony@notes:~/container$ cat "Podman-Create-Project-Quay.md"

Podman Create Project Quay

2022-08-07· container ·Project QUAY

Podman Create Project Quay

:::warning

:::spoiler 目錄

[TOC]

:::


部署前置作業

$ sudo apk update; sudo apk add acl
$ wget https://web.flymks.com/podman/quay-podman.zip
$ unzip quay-podman.zip; cd quay-podman
$ ./keyman.sh

檢視目錄結構

$ tree
.
├── config
│   └── config.yaml
├── initdb.sql
├── keyman.sh
└── quay-pod.yaml

檢視 keyman.sh

envsubst < quay-pod.yaml | sudo podman play kube -
  • quay-pod.yaml ,丟給 qnvsuset 做變數的置換,再將置換的結果透過 - (stdin) ,輸入給 sudo podman play kube

部署 Quay

Quay 部署時需要初始化,需等待3~5分鐘

$ sed -i "s|192.168.1.197|${IP}|g" keyman.sh

$ ./keyman.sh start
wait quay ready...ok
create superuser [quay] successfully!

檢查是否符合預期

$ sudo podman pod list
POD ID        NAME        STATUS      CREATED        INFRA ID      # OF CONTAINERS
b13cc3380349  quay        Running     5 minutes ago  620e9810b091  4
$ sudo podman ps -a --pod
CONTAINER ID  IMAGE                                     COMMAND     CREATED        STATUS            PORTS                                                                 NAMES               POD ID        PODNAME
620e9810b091  localhost/podman-pause:4.1.0-1658428998               5 minutes ago  Up 4 minutes ago  0.0.0.0:80->8080/tcp, 0.0.0.0:5432->5432/tcp, 0.0.0.0:6379->6379/tcp  b13cc3380349-infra  b13cc3380349  quay
cdff0bf3375a  quay.io/flysangel/quay-rhel8:v3.6.6       registry    5 minutes ago  Up 4 minutes ago  0.0.0.0:80->8080/tcp, 0.0.0.0:5432->5432/tcp, 0.0.0.0:6379->6379/tcp  quay-quay-app       b13cc3380349  quay
56025da2482f  quay.io/flysangel/postgres:9.6.24-alpine  postgres    4 minutes ago  Up 4 minutes ago  0.0.0.0:80->8080/tcp, 0.0.0.0:5432->5432/tcp, 0.0.0.0:6379->6379/tcp  quay-postgresql     b13cc3380349  quay
7b9109217f3a  quay.io/flysangel/redis-5:1-169           run-redis   4 minutes ago  Up 4 minutes ago  0.0.0.0:80->8080/tcp, 0.0.0.0:5432->5432/tcp, 0.0.0.0:6379->6379/tcp  quay-redis          b13cc3380349  quay

登入 Quay

打開瀏覽器,網址 http://<vm ip>

建立 Quay User


更改 Quay User 密碼



Image 上傳落地 Quay

quay.io pull image

$ sudo podman run -it --rm quay.io/flysangel/busybox:1.35.0 echo 'Hello Quay'

output :

Trying to pull quay.io/flysangel/busybox:1.35.0...
Getting image source signatures
Copying blob fc0cda0e09ab done
Copying config d8c0f97fc6 done
Writing manifest to image destination
Storing signatures
Hello Quay

檢視 image 資訊

$ sudo podman images
REPOSITORY                    TAG               IMAGE ID      CREATED         SIZE
localhost/podman-pause        4.1.0-1658428998  bdb66cf48ae5  21 minutes ago  50.3 kB
quay.io/flysangel/busybox     1.35.0            d8c0f97fc6a6  6 weeks ago     1.47 MB

設定 image 新的 tag

$ sudo podman tag quay.io/flysangel/busybox:1.35.0 $IP/myquay/busybox:1.35.0

檢視 image 資訊

$ sudo podman images
REPOSITORY                         TAG               IMAGE ID      CREATED         SIZE
localhost/podman-pause             4.1.0-1658428998  bdb66cf48ae5  24 minutes ago  50.3 kB
quay.io/flysangel/busybox          1.35.0            d8c0f97fc6a6  6 weeks ago     1.47 MB
192.168.61.155/myquay2022/busybox  1.35.0            d8c0f97fc6a6  6 weeks ago     1.47 MB

登入落地 Quay

$ sudo podman login $IP
Username: myquay
Password: myquay2022
Error: authenticating creds for "192.168.61.4": pinging container registry 192.168.61.4: Get "https://192.168.61.4/v2/": dial tcp 192.168.61.4:443: connect: connection refused

$ sudo nano /etc/hosts
127.0.0.1 localhost alp
<VM IP> quay

$ sudo podman login --tls-verify=false $IP
Username: myquay
Password: myquay2022
Login Succeeded!

把 image 上傳至落地 Quay

$ sudo podman push --tls-verify=false $IP/myquay/busybox:1.35.0

使用 myquay 登入 落地 Quay, 打開瀏覽器,網址 http://<VM IP>

設定 image 公開下載

刪除原來的 images

$ sudo podman rmi 192.168.61.155/myquay/busybox:1.35.0

$ sudo podman rmi quay.io/flysangel/busybox:1.35.0

# 檢查是否符合預期
$ sudo podman images
REPOSITORY                    TAG               IMAGE ID      CREATED         SIZE

檢測是否可以透過落地 quay 的 image 來建立 Container

$ sudo podman run --rm --tls-verify=false -it 192.168.61.155/myquay/busybox:1.35.0
Trying to pull 192.168.61.155/myquay/busybox:1.35.0...
Getting image source signatures
Copying blob 2ef81dadf7f0 done
Copying config d8c0f97fc6 done
Writing manifest to image destination
Storing signatures
/ # exit

養成好習慣,不上傳 image 就要登出

$ sudo podman logout $IP
Removed login credentials for 192.168.61.155
tags: Project QUAY