skopeo 정리

김학현·2023년 3월 4일
0

skopeo container image

container image url

docker pull quay.io/skopeo/stable:v1.11

사용법

inspect

docker run --rm quay.io/skopeo/stable:v1.11 inspect \
docker://registry.com/path/image:tag

copy

Using username/password

docker run --rm quay.io/skopeo/stable:v1.11 copy \
--src-username $SRC_REPO_USERNAME \
--src-password $SRC_REPO_PASSWORD \
--src-tls-verify=false \ 
--dest-username $DEST_REPO_USERNAME \
--dest-password $DEST_REPO_PASSWORD \
--dest-tls-verify=false \
docker://src.registry.com/image:tag \
docker://dest.registry.com/image:tag
docker run --rm quay.io/skopeo/stable:v1.11 copy \
--src-creds $SRC_REPO_USERNAME:$SRC_REPO_PASSWORD \
--src-tls-verify=false \ 
--dest-creds $DEST_REPO_USERNAME:$DEST_REPO_PASSWORD \
--dest-tls-verify=false \
docker://src.registry.com/image:tag \
docker://dest.registry.com/image:tag

Using authfile

docker run --rm -v $AUTHFILE:/auth.json \
quay.io/skopeo/stable:v1.11 copy \
--authfile /auth.json \
--src-tls-verify=false \ 
--dest-tls-verify=false \
docker://src.registry.com/image:tag \
docker://dest.registry.com/image:tag
  • src(dest)-username: source(destination) 레포지토리 id
  • src(dest)-password: source(destination) 레포지토리 password

Run by kubernetes Job

apiVersion: batch/v1
kind: Job
metadata:
  name: skopeo-copy
spec:
  template:
    spec:
      containers:
      - name: skopeo-copy
        image: quay.io/skopeo/stable:v1.11
        command: ["copy"]
        args:
        - --src-username $SRC_REPO_USERNAME 
		- --src-password $SRC_REPO_PASSWORD 
		- --src-tls-verify=false 
		- --dest-username $DEST_REPO_USERNAME 
		- --dest-password $DEST_REPO_PASSWORD 
		- --dest-tls-verify=false 
		- docker://src.registry.com/image:tag 
		- docker://dest.registry.com/image:tag
      restartPolicy: Never
  backoffLimit: 4

활용방안

Conatiner image build(CI) pipeline for Multi-Cloud

  1. Source code copy(from git or sftp)
  2. Container image build to local registry(docker, buildah, podman etc.)
  3. Skopeo copy local.registry.com/image:tag prod.registry.com/image:tag

Reference

https://www.redhat.com/ko/topics/containers/what-is-skopeo
https://github.com/containers/skopeo
https://www.redhat.com/sysadmin/how-run-skopeo-container

profile
DevOps(MLOps)

0개의 댓글