All Projects → google → Go Containerregistry

google / Go Containerregistry

Licence: apache-2.0
Go library and CLIs for working with container registries

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Go Containerregistry

nxt registry
A simple registry to implement the container pattern
Stars: ✭ 16 (-98.36%)
Mutual labels:  registry, container
Hub Tool
🧪 Docker Hub experimental CLI tool
Stars: ✭ 147 (-84.91%)
Mutual labels:  registry, container
inspr
Inspr is an agnostic application mesh for simpler, faster, and securer development of distributed applications (dApps).
Stars: ✭ 49 (-94.97%)
Mutual labels:  registry, container
Harbor
An open source trusted cloud native registry project that stores, signs, and scans content.
Stars: ✭ 16,320 (+1575.56%)
Mutual labels:  registry, container
singularityhub.github.io
Container tools for scientific computing! Docs at https://singularityhub.github.io/singularityhub-docs
Stars: ✭ 68 (-93.02%)
Mutual labels:  registry, container
Win Lock Screen
🔒 Enable / Disable the Lock Screen for Windows 8, 8.1 & 10.
Stars: ✭ 6 (-99.38%)
Mutual labels:  registry
Minecraft Forge
Docker images for Minecraft Forge
Stars: ✭ 11 (-98.87%)
Mutual labels:  container
Hidden
Windows driver with usermode interface which can hide objects of file-system and registry, protect processes and etc
Stars: ✭ 768 (-21.15%)
Mutual labels:  registry
Distribution
The toolkit to pack, ship, store, and deliver container content
Stars: ✭ 6,445 (+561.7%)
Mutual labels:  registry
Search Docker Registry V2 Script.1.0
view-private-registry is a simple bash script for listing images in a private registry v2, docker search registry-v2
Stars: ✭ 34 (-96.51%)
Mutual labels:  registry
Image Relocation
Docker/OCI image relocation
Stars: ✭ 21 (-97.84%)
Mutual labels:  registry
Appserver
A multithreaded application server for PHP, written in PHP.
Stars: ✭ 930 (-4.52%)
Mutual labels:  container
Sessiongopher
SessionGopher is a PowerShell tool that uses WMI to extract saved session information for remote access tools such as WinSCP, PuTTY, SuperPuTTY, FileZilla, and Microsoft Remote Desktop. It can be run remotely or locally.
Stars: ✭ 833 (-14.48%)
Mutual labels:  registry
Kubernetes Goat
Kubernetes Goat is "Vulnerable by Design" Kubernetes Cluster. Designed to be an intentionally vulnerable cluster environment to learn and practice Kubernetes security.
Stars: ✭ 868 (-10.88%)
Mutual labels:  container
React Native Full Example
第一个完整的react-native项目。包括服务端和移动端两部分。服务端使用express+bootstrap进行搭建,主要功能有登录、退出、模块选择、查看、修改、删除、分页等后台管理的基本功能;移动端主要用到组件View、Text、Image、ScrollView、ListView等常用的组件,也使用了第三方的地图服务(高德地图),作为初学者。是一个很好的学习案例。
Stars: ✭ 809 (-16.94%)
Mutual labels:  registry
Mydi
moved to https://github.com/cekta/di
Stars: ✭ 21 (-97.84%)
Mutual labels:  container
Docker Registry Ui
The simplest and most complete UI for your private registry
Stars: ✭ 756 (-22.38%)
Mutual labels:  registry
Mariadb Container
MariaDB container images based on Red Hat Software Collections and intended for OpenShift and general usage. Users can choose between Red Hat Enterprise Linux, Fedora, and CentOS based images.
Stars: ✭ 19 (-98.05%)
Mutual labels:  container
Dca
Docker Certified Associate Exam Preparation Guide
Stars: ✭ 883 (-9.34%)
Mutual labels:  registry
Initior
A command line application that let's you initialize your new projects the right way, replaces npm and yarn's init 🎆
Stars: ✭ 17 (-98.25%)
Mutual labels:  registry

go-containerregistry

GitHub Actions Build Status GoDoc Go Report Card Code Coverage

Introduction

This is a golang library for working with container registries. It's largely based on the Python library of the same name.

The following diagram shows the main types that this library handles. OCI image representation

Philosophy

The overarching design philosophy of this library is to define interfaces that present an immutable view of resources (e.g. Image, Layer, ImageIndex), which can be backed by a variety of medium (e.g. registry, tarball, daemon, ...).

To complement these immutable views, we support functional mutations that produce new immutable views of the resulting resource (e.g. mutate). The end goal is to provide a set of versatile primives that can compose to do extraordinarily powerful things efficiently and easily.

Both the resource views and mutations may be lazy, eager, memoizing, etc, and most are optimized for common paths based on the tooling we have seen in the wild (e.g. writing new images from disk to the registry as a compressed tarball).

Experiments

Over time, we will add new functionality under experimental environment variables listed here.

Env Var Value(s) What is does
GGCR_EXPERIMENT_ESTARGZ "1" When enabled this experiment will direct tarball.LayerFromOpener to emit estargz compatible layers, which enable them to be lazily loaded by an appropriately configured containerd.

v1.Image

Sources

Sinks

v1.ImageIndex

Sources

Sinks

v1.Layer

Sources

Sinks

Overview

mutate

The simplest use for these libraries is to read from one source and write to another.

For example,

  • crane pull is remote.Image -> tarball.Write,
  • crane push is tarball.Image -> remote.Write,
  • crane cp is remote.Image -> remote.Write.

However, often you actually want to change something about an image. This is the purpose of the mutate package, which exposes some commonly useful things to change about an image.

partial

If you're trying to use this library with a different source or sink than it already supports, it can be somewhat cumbersome. The Image and Layer interfaces are pretty wide, with a lot of redundant information. This is somewhat by design, because we want to expose this information as efficiently as possible where we can, but again it is a pain to implement yourself.

The purpose of the partial package is to make implementing a v1.Image much easier, by filling in all the derived accessors for you if you implement a minimal subset of v1.Image.

transport

You might think our abstractions are bad and you just want to authenticate and send requests to a registry.

This is the purpose of the transport and authn packages.

Tools

This repo hosts some tools built on top of the library.

crane

crane is a tool for interacting with remote images and registries.

gcrane

gcrane is a GCR-specific variant of crane that has richer output for the ls subcommand and some basic garbage collection support.

k8schain

k8schain implements the authentication semantics use by kubelets in a way that is easily consumable by this library.

k8schain is not a standalone tool, but it's linked here for visibility.

Emeritus: ko

This tool was originally developed in this repo but has since been moved to its own repo.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].