Skip to content
Welcome to the release of containerd v1.0.0-beta.3!

*This is a pre-release of containerd*

After rounding out the feature set in beta.2, we have taken a number of stability fixes.

This release contains mostly bug fixes, code cleanup and improvements to useability of
the client and ctr tool.

Please try out the release binaries and report any issues at
https://github.com/containerd/containerd/issues.

`ctr` makeover

`ctr` is getting a makeover! The end goal is for commands to be consistent and scoped.
Most notably:
- `push`, `pull` are now `images` subcommands: `ctr images push`, `ctr images pull`
- `fetch`, `fetch-object`, and `push-object` are `content` subcommands
- `rootfs unpack` is now `snapshot unpack`
- `apply` no longer exists. RIP'

Garbage collector improvements

The garbage collector continues to improve with this release, including bug
fixes on the client causing races and a new lease feature for making retention
from the client easier.

The lease API was added to make it easier for clients to prevent content and
snapshots from being garbage collected while they are being actively worked on
(such as from pull, import, or checkpoint). The API includes functions for
creating, deleting, and listing leases. The lease gets attached to the context
and the backend metadata store sees it and associates newly created content
and snapshots with that lease.

Leases are currently acquired and released automatically through the client.
From the user perspective, fewer `gc.root` labels should be seen on client
during pull/import operations or left over after a failed operation.

Contributors

* Akihiro Suda
* Antonio Murdaca
* Brian Goff
* Daniel Nephin
* Daniel, Dao Quang Minh
* Derek McGowan
* Ian Campbell
* Jacob Wen
* Jess Valarezo
* Kenfe-Mickaël Laventure
* Lantao Liu
* Michael Crosby
* Phil Estes
* Sebastiaan van Stijn
* Stephen J Day
* Tao Qingyun
* Victor Vieux
* Zhang Wei
* bando-shintaro
* yanxuean

Changes

* 2b8ed96d2a Merge pull request #1705 from stevvooe/beta3
* cb3b9601a4 Add garbage collection release notes
* e5912e1c89 Merge pull request #1734 from vieux/update_images_ls_platforms
* 8866254ec3 update notes with ctr changes
* 3289ca2fca release: prepare 1.0.0-beta.3
* f8a536ed6a Add S to PLATFORM in images & plugins list
* 4701e122fe Merge pull request #1730 from dmcgowan/fix-usage-deadlock
* ad9eca1dc4 Fix deadlock in overlay snapshotter
* 59d1c16666 Merge pull request #1732 from dmcgowan/fix-userns-tests
* b3659d296d Fix not found caused by race to remove snapshot
* 27d450a01b Merge pull request #1690 from dmcgowan/metadata-transactions
* 844e957834 Merge pull request #1729 from crosbymichael/shim-size
* 07885f1364 Updates lease creation to respect existing leases
* dce27d8c62 Remove client use of gc root label
* e13894bb7a Add leases api
* d01fb047f4 Fix runtime root with no-shim
* fc08f019f3 Fix windows compile for dialer package
* bba473aeb1 Move shim client into subpackage
* 13c7c3ef10 Remove urfave cli dep from shim
* a70b95b202 Move events exchange into subpackage
* 526d15bd86 Move dial funcs to dialer pkg
* 01cdf330bb Merge pull request #1716 from crosbymichael/strip
* 2aad5ecdf6 Merge pull request #1725 from dmcgowan/diff-parent-permission
* 8889d459af Add directory permission tests
* 7e398dd591 Merge pull request #1717 from dnephin/use-gometalinter
* 46ac2befcc Merge pull request #1721 from bandoshintaro/master
* 8498de00bd Merge pull request #1719 from AkihiroSuda/proc-scsi
* 5128f034b8 Fix docs, log output in getting started
* db589884ee Add /proc/scsi to masked paths
* f9e969bac8 Use gometalinter for linting
* ab67fd50dc Merge pull request #1715 from thaJeztah/nit-fix-printf
* 65d5b8b937 Align version output and minor code cleanup
* a045575998 Strip binaries in Makefile
* 99595e0b84 Merge pull request #1714 from dnephin/remove-deadcode-from-release
* 393e8cc332 Remove deadcode from cmd/containerd-release
* 5acf187697 Merge pull request #1712 from stevvooe/defaults-package
* 0a1a13448b defaults: add package to contain server defaults
* 564600ee79 Merge pull request #1707 from dmcgowan/snapshot-storage-db
* 68d3c77eae Open snapshot database only once
* 7a91c66d25 Merge pull request #1710 from AkihiroSuda/print-revision
* dfdcd4decb containerd --version: print version.Revision
* c933088381 Merge pull request #1663 from dmcgowan/content-local-labels
* a7a869f14e Merge pull request #1703 from estesp/remove-copyright
* aa3516487c Merge pull request #1704 from jessvalarezo/ctr-move-tasks
* 7b08bcdb65 Add support for label storage in local content store
* 864b16a2cb ctr: alphabetize commands, rename signals
* f654b7b71e ctr: move pprof to commands package
* a827a17f1d ctr: move shim to commands
* c3b70f1d0b ctr: move tasks, run to commands package
* 7d6017a954 Update LICENSE.docs with proper CC-BY-4.0 text
* fe3d9a70fa Merge pull request #1702 from estesp/fix-cc-by-lic
* 474d4df2aa Merge pull request #1692 from dmcgowan/gc-fix-sweep-race
* ff904841f9 Merge pull request #1668 from jessvalarezo/image-unpack-check
* 015788f1d8 Fix CC-BY license reference in README.md
* 7fd20edf4e Merge pull request #1701 from stevvooe/backoff-v1-images
* 9f5b97c510 Merge pull request #1698 from crosbymichael/task-ls
* 8bbf8d892a Merge pull request #1693 from jessvalarezo/ctr-refactor-fourth-pass
* 1552ee23da client: Add helper function which checks if an image is unpacked
* 8eee47cf82 remotes/docker/schema1: back off on locked ref
* 7a1d709cc9 ctr: remove apply command
* 432670237c Fix race in gc sweep
* e4da49c44c ctr: move unpack to snapshot command
* 456d3f4475 ctr: move push and pull to images command
* b58e4fc2ed ctr: move fetch,fetch-object,push-object to content
* e2f9fbfe71 Merge pull request #1687 from crosbymichael/pie
* 91597bc6c3 Move task list to separate command
* 58835d2edc Merge pull request #1697 from crosbymichael/template
* adc502b790 Add template filepath for release tool
* 5fb3a0e0cf Merge pull request #1695 from runcom/abstract-release-tool
* fa678a0937 cmd: containerd-release: abstract it out to create a new project
* b93bd0cfec Merge pull request #1676 from AkihiroSuda/null-io-fix
* e0da28acc4 ctr: error if tty && nullIO
* e74c423f78 Fix races with concurrent GC
* 1f704e9862 Merge pull request #1688 from crosbymichael/cli
* 994c717d0d Merge pull request #1689 from jessvalarezo/ctr-refactor-third-pass
* 16855eedf7 ctr: move resolver to commands package
* ffd0d2ef58 ctr: move signals to commands package
* b8c4d85564 Add buildmode=pie to makefile
* 9d05197f96 Update cli to 7bc6a0acffa589f415f88aca16cc1de5ffd6
* 638f3a3380 Merge pull request #1685 from jessvalarezo/ctr-refactor
* 8540587b37 ctr: move events command
* fdb6859921 ctr: move namespaces command
* 750fd89b38 ctr: move snapshot command
* 0895dbe932 ctr: move content command
* f980cc197e ctr: move images command
* 47fae4dd17 ctr: move containers command
* 8c77d9ac72 Merge pull request #1683 from crosbymichael/ctr-moving
* 083b10bdaa Merge pull request #1684 from crosbymichael/lint-final
* 1d298c89a4 Fix windows lint issues and enable ci
* 1c533a2725 Enable go lint in CI
* b6e0c4f321 Fix go lint errors
* ae995bc7b3 Move plugins command
* 2dac1b6963 Move version command into package
* 4743f1fc4c Move NewClient and AppContext to commands pkg
* 8509569329 Merge pull request #1680 from crosbymichael/solaris
* 9956fa4b33 Remove solaris files
* 80de00069a Merge pull request #1679 from jessvalarezo/ctr-refactor-first-pass
* a19a20303a ctr: add commands package with shared utility functions
* 04659d9405 Merge pull request #1675 from crosbymichael/ctr-newclient
* 9f76083a8f Refactor newClient in ctr
* edf4114d55 Merge pull request #1673 from qingyunha/ctr
* 313bab3dd6 Merge pull request #1654 from crosbymichael/ctr-daemon
* 0813ee472c Merge pull request #1666 from estesp/add-test-stress-info
* 61121024c1 ctr use client's underlying service
* 5b6564d89d Merge pull request #1667 from crosbymichael/more-lint
* 230dc74a72 Merge pull request #1669 from crosbymichael/container-api-tests
* 43ec3df34b Add testing information to BUILDING.md
* b937d230ba Add additional container test for missing methods
* 5fd0415985 Add comments and fix common lint issues
* 9bd1dc78cb Unexport grpc service types
* 3679a55883 Merge pull request #1665 from crosbymichael/bump-runc
* 8feebb7513 Bump runc to 74a17296470088de3805e138d3d87c62e613d
* 91a33a0b47 Merge pull request #1664 from qingyunha/issue1607
* f325d51c5e move the fifo locations /run/containerd
* c7dc795455 [ctr] add --detach to run
* 2e004086cf [ctr] Add --null-io to ctr run/start
* 992280e8e2 Merge pull request #1662 from mlaventure/update-cgroups
* 7c9be56930 Update containerd/cgroups to f7dd103d3e4e696aa67152f6b4ddd1779a3455a9
* 1752bf590a Merge pull request #1660 from stevvooe/update-security-email
* 639d1bdd62 README, RELEASES: update security email
* f2ae8a020a Merge pull request #1658 from dmcgowan/gc-content-delete
* 923a5c873b Update content store garbage collection
* 87596ad708 Merge pull request #1657 from mlaventure/vendor-go-runc
* 90c535521a Vendor go-runc ed1cbe1fc31f5fb2359d3a54b6330d1a097858b7
* 84fa3967c5 Merge pull request #1656 from crosbymichael/rev-name
* 21c992a9c8 Reverse checkpoint url
* 5244d7b829 Merge pull request #1655 from dmcgowan/skip-user-ns-tests
* cbeb0a847c Merge pull request #1652 from crosbymichael/cr-image
* efcec3674a Skip user namespace tests in kernels which have it disabled
* ce57d6d619 Merge pull request #1634 from crosbymichael/release-build
* 5a386446e3 Merge pull request #1653 from dmcgowan/fix-pull-race
* ca63e6d10f Merge pull request #1645 from cpuguy83/limited_reader
* b798d87bd4 Ensure manifests are marked as root during pull
* e4c6bf3b5e Remove default filter from ctr
* e833da1356 Clear root labels during checkpoint
* e201be5196 Create checkpointed image in client
* a19fd6ed6e Add checkpoint media types to handler
* abbec62620 cmd/ctr: create an image for checkpoint
* 6eb56a2ec9 Use limited reader for some `ReadAll` cases.
* 70b5668351 Merge pull request #1631 from dmcgowan/cancel-unpack
* 3c89aafdc3 Merge pull request #1649 from mlaventure/win-procdetaisl-use-stdtime
* 6b9edd089a Merge pull request #1640 from Random-Liu/fix-image-pull-race
* 2cdb3951a4 Merge pull request #1643 from cpuguy83/close_wait_chan
* 205625473f Close wait chan after sending status
* e7ea7b5b50 windows: Use stdtime for hcsshimtypes.ProcessDetails.CreatedAt
* ef5fe56c24 Merge pull request #1641 from WeiZhang555/fix-progress-bar
* 79dad0ab02 Merge pull request #1650 from dmcgowan/fix-gc-race
* 295cce278f Use single instance of snapshot and content stores
* e378196505 Add snapshot label command to ctr
* d28b8cc80d Merge pull request #1648 from mlaventure/checkpoint-workdir
* 7562047f6a Merge pull request #1642 from mlaventure/arm-panic
* 71f0bb3e3c linux: Pass correct path to runc when doing a checkpoint
* d8e489443c linux: Ensure count is 64bits aligned for proper atomic use on 32bits machines
* a06abd7493 [progress] Fix wrong display of progress bar
* 103dd0e75e Merge pull request #1644 from cpuguy83/unmarshal_error_desc
* c1a0775136 Build release tar and include hash
* 7f4f4b5e68 Merge pull request #1646 from mlaventure/mlaventure-email
* 3c7645a89d Merge pull request #1647 from yanxuean/typo
* d8d1209e50 a typo in comment of Snapshotter.Update
* bdf801bd36 Update @mlaventure e-mail address
* 0847ae6cdf Improve error message for `WithContainerExtension`
* 09c2bfadd2 Reduce image pull race.
* c66fd83eae Merge pull request #1636 from crosbymichael/cgroups
* d805f77f50 Bump cgroups dep to 38a61430f7ceb01581fba6dd7ead48
* 91614a57dc Merge pull request #1633 from ijc/go1.9
* 71c4ee5cf8 Merge pull request #1629 from dmcgowan/remove-archive-umask
* 680bab8468 Update docs with go 1.9 requirement.
* dcf7ff5db5 Update apply diff to support context cancellation
* e20b371807 Remove umask, replace with explicit chmod after create

Dependency Changes

Previous release can be found at [v1.0.0-beta.2](https://github.com/containerd/containerd/releases/tag/v1.0.0-beta.2)

* 8ba6f23b6e36d03666a14bd9421f5e3efcb59aca -> 7bc6a0acffa589f415f88aca16cc1de5ffd66f9c **github.com/urfave/cli**
* 0351df1c5a66838d0c392b4ac4cf9450de844e2d -> 74a17296470088de3805e138d3d87c62e613dfc4 **github.com/opencontainers/runc**
* 9c238e632e80d94f71a067c3deb9b34b1886ef18 -> f7dd103d3e4e696aa67152f6b4ddd1779a3455a9 **github.com/containerd/cgroups**
* 633fd07c086ff591adaa2849278764771d791f6f -> ed1cbe1fc31f5fb2359d3a54b6330d1a097858b7 **github.com/containerd/go-runc**