skopeo 命令_skopeo: skopeo 是一个命令行工具,用于对容器镜像和镜像库执行各种操作,支持使用 OCI 镜像与原始的 Docker v2 镜像...

skopeo

skopeo is a command line utility that performs various operations on container images and image repositories.

skopeo does not require the user to be running as root to do most of its operations.

skopeo does not require a daemon to be running to perform its operations.

skopeo can work with OCI images as well as the original Docker v2 images.

Skopeo works with API V2 container image registries such as docker.io and quay.io registries, private registries, local directories and local OCI-layout directories. Skopeo can perform operations which consist of:

Copying an image from and to various storage mechanisms.

For example you can copy images from one registry to another, without requiring privilege.

Inspecting a remote image showing its properties including its layers, without requiring you to pull the image to the host.

Deleting an image from an image repository.

Syncing an external image repository to an internal registry for air-gapped deployments.

When required by the repository, skopeo can pass the appropriate credentials and certificates for authentication.

Skopeo operates on the following image and repository types:

containers-storage:docker-reference

An image located in a local containers/storage image store. Both the location and image store are specified in /etc/containers/storage.conf. (This is the backend for Podman, CRI-O, Buildah and friends)

dir:path

An existing local directory path storing the manifest, layer tarballs and signatures as individual files. This is a non-standardized format, primarily useful for debugging or noninvasive container inspection.

docker://docker-reference

An image in a registry implementing the "Docker Registry HTTP API V2". By default, uses the authorization state in $XDG_RUNTIME_DIR/containers/auth.json, which is set using skopeo login.

docker-archive:path[:docker-reference]

An image is stored in a docker save-formatted file. docker-reference is only used when creating such a file, and it must not contain a digest.

docker-daemon:docker-reference

An image docker-reference stored in the docker daemon internal storage. docker-reference must contain either a tag or a digest. Alternatively, when reading images, the format can also be docker-daemon:algo:digest (an image ID).

oci:path:tag

An image tag in a directory compliant with "Open Container Image Layout Specification" at path.

Inspecting a repository

skopeo is able to inspect a repository on a container registry and fetch images layers.

The inspect command fetches the repository's manifest and it is able to show you a docker inspect-like

json output about a whole repository or a tag. This tool, in contrast to docker inspect, helps you gather useful information about

a repository or a tag before pulling it (using disk space). The inspect command can show you which tags are available for the given

repository, the labels the image has, the creation date and operating system of the image and more.

Examples:

Show properties of fedora:latest

$skopeo inspect docker://registry.fedoraproject.org/fedora:latest

{

"Name": "registry.fedoraproject.org/fedora",

"Digest": "sha256:655721ff613ee766a4126cb5e0d5ae81598e1b0c3bcf7017c36c4d72cb092fe9",

"RepoTags": [

"24",

"25",

"26-modular",

...

],

"Created": "2020-04-29T06:48:16Z",

"DockerVersion": "1.10.1",

"Labels": {

"license": "MIT",

"name": "fedora",

"vendor": "Fedora Project",

"version": "32"

},

"Architecture": "amd64",

"Os": "linux",

"Layers": [

"sha256:3088721d7dbf674fc0be64cd3cf00c25aab921cacf35fa0e7b1578500a3e1653"

],

"Env": [

"DISTTAG=f32container",

"FGC=f32",

"container=oci"

]

}

Show container configuration from fedora:latest

$skopeo inspect --config docker://registry.fedoraproject.org/fedora:latest | jq

{

"created": "2020-04-29T06:48:16Z",

"architecture": "amd64",

"os": "linux",

"config": {

"Env": [

"DISTTAG=f32container",

"FGC=f32",

"container=oci"

],

"Cmd": [

"/bin/bash"

],

"Labels": {

"license": "MIT",

"name": "fedora",

"vendor": "Fedora Project",

"version": "32"

}

},

"rootfs": {

"type": "layers",

"diff_ids": [

"sha256:a4c0fa2b217d3fd63d51e55a6fd59432e543d499c0df2b1acd48fbe424f2ddd1"

]

},

"history": [

{

"created": "2020-04-29T06:48:16Z",

"comment": "Created by Image Factory"

}

]

}

Show unverified image's digest

$skopeo inspect docker://registry.fedoraproject.org/fedora:latest | jq '.Digest'

"sha256:655721ff613ee766a4126cb5e0d5ae81598e1b0c3bcf7017c36c4d72cb092fe9"

Copying images

skopeo can copy container images between various storage mechanisms, including:

Container registries

The Quay, Docker Hub, OpenShift, GCR, Artifactory ...

Container Storage backends

Docker daemon storage

Local directories

Local OCI-layout directories

$skopeo copy docker://quay.io/buildah/stable docker://registry.internal.company.com/buildah

$skopeo copy oci:busybox_ocilayout:latest dir:existingemptydirectory

Deleting images

$skopeo delete docker://localhost:5000/imagename:latest

Syncing registries

$skopeo sync --src docker --dest dirregistry.example.com/busybox /media/usb

Authenticating to a registry

Private registries with authentication

skopeo uses credentials from the --creds (for skopeo inspect|delete) or --src-creds|--dest-creds (for skopeo copy) flags, if set; otherwise it uses configuration set by skopeo login, podman login, buildah login, or docker login.

$skopeo login --username USER docker://myregistrydomain.com:5000

Password:

$skopeo inspect docker://myregistrydomain.com:5000/busybox

{"Tag":"latest","Digest":"sha256:473bb2189d7b913ed7187a33d11e743fdc2f88931122a44d91a301b64419f092","RepoTags":["latest"],"Comment":"","Created":"2016-01-15T18:06:41.282540103Z","ContainerConfig":{"Hostname":"aded96b43f48","Domainname":"","User":"","AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":null,"Cmd":["/bin/sh","-c","#(nop) CMD [\"sh\"]"],"Image":"9e77fef7a1c9f989988c06620dabc4020c607885b959a2cbd7c2283c91da3e33","Volumes":null,"WorkingDir":"","Entrypoint":null,"OnBuild":null,"Labels":null},"DockerVersion":"1.8.3","Author":"","Config":{"Hostname":"aded96b43f48","Domainname":"","User":"","AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":null,"Cmd":["sh"],"Image":"9e77fef7a1c9f989988c06620dabc4020c607885b959a2cbd7c2283c91da3e33","Volumes":null,"WorkingDir":"","Entrypoint":null,"OnBuild":null,"Labels":null},"Architecture":"amd64","Os":"linux"}

$skopeo logout docker://myregistrydomain.com:5000

Using --creds directly

$skopeo inspect --creds=testuser:testpassword docker://myregistrydomain.com:5000/busybox

{"Tag":"latest","Digest":"sha256:473bb2189d7b913ed7187a33d11e743fdc2f88931122a44d91a301b64419f092","RepoTags":["latest"],"Comment":"","Created":"2016-01-15T18:06:41.282540103Z","ContainerConfig":{"Hostname":"aded96b43f48","Domainname":"","User":"","AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":null,"Cmd":["/bin/sh","-c","#(nop) CMD [\"sh\"]"],"Image":"9e77fef7a1c9f989988c06620dabc4020c607885b959a2cbd7c2283c91da3e33","Volumes":null,"WorkingDir":"","Entrypoint":null,"OnBuild":null,"Labels":null},"DockerVersion":"1.8.3","Author":"","Config":{"Hostname":"aded96b43f48","Domainname":"","User":"","AttachStdin":false,"AttachStdout":false,"AttachStderr":false,"Tty":false,"OpenStdin":false,"StdinOnce":false,"Env":null,"Cmd":["sh"],"Image":"9e77fef7a1c9f989988c06620dabc4020c607885b959a2cbd7c2283c91da3e33","Volumes":null,"WorkingDir":"","Entrypoint":null,"OnBuild":null,"Labels":null},"Architecture":"amd64","Os":"linux"}

$skopeo copy --src-creds=testuser:testpassword docker://myregistrydomain.com:5000/private oci:local_oci_image

For a detailed description how to install or build skopeo, see

install.md.

Contributing

Please read the contribution guide if you want to collaborate in the project.

Commands

Command

Description

Copy an image (manifest, filesystem layers, signatures) from one location to another.

Mark the image-name for later deletion by the registry's garbage collector.

Return low-level information about image-name in a registry.

Return a list of tags for the transport-specific image repository.

Login to a container registry.

Logout of a container registry.

Compute a manifest digest for a manifest-file and write it to standard output.

Debugging tool - Publish and sign an image in one step.

Synchronize images between container registries and local directories.

License

skopeo is licensed under the Apache License, Version 2.0. See

LICENSE for the full license text.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值