antony@notes:~/container$ cat "Podman-Create-Project-Quay.md"
Podman Create Project Quay
Podman Create Project Quay
- Project Quay 官網
- Project Quay,open source distribution of Red Hat 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
