moby

module
v17.10.0-ce+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 23, 2020 License: Apache-2.0

README

Docker users, see Moby and Docker to clarify the relationship between the projects

Docker maintainers and contributors, see Transitioning to Moby for more details

The Moby Project

Moby Project logo

Moby is an open-source project created by Docker to advance the software containerization movement. It provides a “Lego set” of dozens of components, the framework for assembling them into custom container-based systems, and a place for all container enthusiasts to experiment and exchange ideas.

Moby

Overview

At the core of Moby is a framework to assemble specialized container systems. It provides:

  • A library of containerized components for all vital aspects of a container system: OS, container runtime, orchestration, infrastructure management, networking, storage, security, build, image distribution, etc.
  • Tools to assemble the components into runnable artifacts for a variety of platforms and architectures: bare metal (both x86 and Arm); executables for Linux, Mac and Windows; VM images for popular cloud and virtualization providers.
  • A set of reference assemblies which can be used as-is, modified, or used as inspiration to create your own.

All Moby components are containers, so creating new components is as easy as building a new OCI-compatible container.

Principles

Moby is an open project guided by strong principles, but modular, flexible and without too strong an opinion on user experience, so it is open to the community to help set its direction. The guiding principles are:

  • Batteries included but swappable: Moby includes enough components to build fully featured container system, but its modular architecture ensures that most of the components can be swapped by different implementations.
  • Usable security: Moby will provide secure defaults without compromising usability.
  • Container centric: Moby is built with containers, for running containers.

With Moby, you should be able to describe all the components of your distributed application, from the high-level configuration files down to the kernel you would like to use and build and deploy it easily.

Moby uses containerd as the default container runtime.

Audience

Moby is recommended for anyone who wants to assemble a container-based system. This includes:

  • Hackers who want to customize or patch their Docker build
  • System engineers or integrators building a container system
  • Infrastructure providers looking to adapt existing container systems to their environment
  • Container enthusiasts who want to experiment with the latest container tech
  • Open-source developers looking to test their project in a variety of different systems
  • Anyone curious about Docker internals and how it’s built

Moby is NOT recommended for:

  • Application developers looking for an easy way to run their applications in containers. We recommend Docker CE instead.
  • Enterprise IT and development teams looking for a ready-to-use, commercially supported container platform. We recommend Docker EE instead.
  • Anyone curious about containers and looking for an easy way to learn. We recommend the docker.com website instead.

Transitioning to Moby

Docker is transitioning all of its open source collaborations to the Moby project going forward. During the transition, all open source activity should continue as usual.

We are proposing the following list of changes:

  • splitting up the engine into more open components
  • removing the docker UI, SDK etc to keep them in the Docker org
  • clarifying that the project is not limited to the engine, but to the assembly of all the individual components of the Docker platform
  • open-source new tools & components which we currently use to assemble the Docker product, but could benefit the community
  • defining an open, community-centric governance inspired by the Fedora project (a very successful example of balancing the needs of the community with the constraints of the primary corporate sponsor)

Legal

Brought to you courtesy of our legal counsel. For more context, please see the NOTICE document in this repo.

Use and transfer of Moby may be subject to certain restrictions by the United States and other governments.

It is your responsibility to ensure that your use and/or transfer does not violate applicable laws.

For more information, please see https://www.bis.doc.gov

Licensing

Moby is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

Directories

Path Synopsis
api
errdefs
Package errdefs defines a set of error interfaces that packages should use for communicating classes of errors.
Package errdefs defines a set of error interfaces that packages should use for communicating classes of errors.
types
Package types is used for API stability in the types and response to the consumers of the API stats endpoint.
Package types is used for API stability in the types and response to the consumers of the API stats endpoint.
types/backend
Package backend includes types to send information to server backends.
Package backend includes types to send information to server backends.
types/filters
Package filters provides tools for encoding a mapping of keys to a set of multiple values.
Package filters provides tools for encoding a mapping of keys to a set of multiple values.
types/plugins/logdriver
Package logdriver is a generated protocol buffer package.
Package logdriver is a generated protocol buffer package.
types/swarm/runtime
Package runtime is a generated protocol buffer package.
Package runtime is a generated protocol buffer package.
types/versions/v1p19
Package v1p19 provides specific API types for the API version 1, patch 19.
Package v1p19 provides specific API types for the API version 1, patch 19.
types/versions/v1p20
Package v1p20 provides specific API types for the API version 1, patch 20.
Package v1p20 provides specific API types for the API version 1, patch 20.
Package builder defines interfaces for any Docker builder to implement.
Package builder defines interfaces for any Docker builder to implement.
dockerfile
Package dockerfile is the evaluation step in the Dockerfile parse/evaluate pipeline.
Package dockerfile is the evaluation step in the Dockerfile parse/evaluate pipeline.
dockerfile/command
Package command contains the set of Dockerfile commands.
Package command contains the set of Dockerfile commands.
dockerfile/parser
Package parser implements a parser and parse tree dumper for Dockerfiles.
Package parser implements a parser and parse tree dumper for Dockerfiles.
remotecontext
Package remotecontext is a generated protocol buffer package.
Package remotecontext is a generated protocol buffer package.
cli
Package client is a Go client for the Docker Engine API.
Package client is a Go client for the Docker Engine API.
cmd
contrib
Package daemon exposes the functions that occur on the host server that the Docker daemon is running.
Package daemon exposes the functions that occur on the host server that the Docker daemon is running.
logger
Package logger defines interfaces that logger drivers implement to log messages.
Package logger defines interfaces that logger drivers implement to log messages.
logger/awslogs
Package awslogs provides the logdriver for forwarding container logs to Amazon CloudWatch Logs
Package awslogs provides the logdriver for forwarding container logs to Amazon CloudWatch Logs
logger/etwlogs
Package etwlogs provides a log driver for forwarding container logs as ETW events.(ETW stands for Event Tracing for Windows) A client can then create an ETW listener to listen for events that are sent by the ETW provider that we register, using the provider's GUID "a3693192-9ed6-46d2-a981-f8226c8363bd".
Package etwlogs provides a log driver for forwarding container logs as ETW events.(ETW stands for Event Tracing for Windows) A client can then create an ETW listener to listen for events that are sent by the ETW provider that we register, using the provider's GUID "a3693192-9ed6-46d2-a981-f8226c8363bd".
logger/fluentd
Package fluentd provides the log driver for forwarding server logs to fluentd endpoints.
Package fluentd provides the log driver for forwarding server logs to fluentd endpoints.
logger/gelf
Package gelf provides the log driver for forwarding server logs to endpoints that support the Graylog Extended Log Format.
Package gelf provides the log driver for forwarding server logs to endpoints that support the Graylog Extended Log Format.
logger/journald
Package journald provides the log driver for forwarding server logs to endpoints that receive the systemd format.
Package journald provides the log driver for forwarding server logs to endpoints that receive the systemd format.
logger/jsonfilelog
Package jsonfilelog provides the default Logger implementation for Docker logging.
Package jsonfilelog provides the default Logger implementation for Docker logging.
logger/logentries
Package logentries provides the log driver for forwarding server logs to logentries endpoints.
Package logentries provides the log driver for forwarding server logs to logentries endpoints.
logger/splunk
Package splunk provides the log driver for forwarding server logs to Splunk HTTP Event Collector endpoint.
Package splunk provides the log driver for forwarding server logs to Splunk HTTP Event Collector endpoint.
logger/syslog
Package syslog provides the logdriver for forwarding server logs to syslog endpoints.
Package syslog provides the logdriver for forwarding server logs to syslog endpoints.
Package dockerversion is auto-generated at build-time
Package dockerversion is auto-generated at build-time
hack
v1
Package integration provides integrations tests for Moby (API).
Package integration provides integrations tests for Moby (API).
integration-cli
checker
Package checker provides Docker specific implementations of the go-check.Checker interface.
Package checker provides Docker specific implementations of the go-check.Checker interface.
cli
internal
Package layer is package for managing read-only and read-write mounts on the union file system driver.
Package layer is package for managing read-only and read-write mounts on the union file system driver.
migrate
v1
pkg
aaparser
Package aaparser is a convenience package interacting with `apparmor_parser`.
Package aaparser is a convenience package interacting with `apparmor_parser`.
filenotify
Package filenotify provides a mechanism for watching file(s) for changes.
Package filenotify provides a mechanism for watching file(s) for changes.
locker
Package locker provides a mechanism for creating finer-grained locking to help free up more global locks to handle other tasks.
Package locker provides a mechanism for creating finer-grained locking to help free up more global locks to handle other tasks.
parsers
Package parsers provides helper functions to parse and validate different type of string.
Package parsers provides helper functions to parse and validate different type of string.
parsers/kernel
Package kernel provides helper function to get, parse and compare kernel versions for different platforms.
Package kernel provides helper function to get, parse and compare kernel versions for different platforms.
parsers/operatingsystem
Package operatingsystem provides helper function to get the operating system name for different platforms.
Package operatingsystem provides helper function to get the operating system name for different platforms.
pidfile
Package pidfile provides structure and helper functions to create and remove PID file.
Package pidfile provides structure and helper functions to create and remove PID file.
platform
Package platform provides helper function to get the runtime architecture for different platforms.
Package platform provides helper function to get the runtime architecture for different platforms.
plugins
Package plugins provides structures and helper functions to manage Docker plugins.
Package plugins provides structures and helper functions to manage Docker plugins.
pools
Package pools provides a collection of pools which provide various data types with buffers.
Package pools provides a collection of pools which provide various data types with buffers.
signal
Package signal provides helper functions for dealing with signals across various operating systems.
Package signal provides helper functions for dealing with signals across various operating systems.
streamformatter
Package streamformatter provides helper functions to format a stream.
Package streamformatter provides helper functions to format a stream.
stringid
Package stringid provides helper functions for dealing with string identifiers
Package stringid provides helper functions for dealing with string identifiers
stringutils
Package stringutils provides helper functions for dealing with strings.
Package stringutils provides helper functions for dealing with strings.
tailfile
Package tailfile provides helper functions to read the nth lines of any ReadSeeker.
Package tailfile provides helper functions to read the nth lines of any ReadSeeker.
tarsum
Package tarsum provides algorithms to perform checksum calculation on filesystem layers.
Package tarsum provides algorithms to perform checksum calculation on filesystem layers.
term
Package term provides structures and helper functions to work with terminal (state, sizes).
Package term provides structures and helper functions to work with terminal (state, sizes).
truncindex
Package truncindex provides a general 'index tree', used by Docker in order to be able to reference containers by only a few unambiguous characters of their id.
Package truncindex provides a general 'index tree', used by Docker in order to be able to reference containers by only a few unambiguous characters of their id.
urlutil
Package urlutil provides helper function to check urls kind.
Package urlutil provides helper function to check urls kind.
useragent
Package useragent provides helper functions to pack version information into a single User-Agent header.
Package useragent provides helper functions to pack version information into a single User-Agent header.
v2
profiles
Package registry contains client primitives to interact with a remote Docker registry.
Package registry contains client primitives to interact with a remote Docker registry.
local
Package local provides the default implementation for volumes.
Package local provides the default implementation for volumes.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL