Commit Graph

1057 Commits

Author SHA1 Message Date
Vincent Batts
55bf3c10f0 containerd: compile tags to exclude btrfs
Leave in btrfs by default, but add go build tags to exclude it.
`go build -tags containerd_no_btrfs` will leave that driver out.
As the current containerd/btrfs code needs link to libbtrfs*.so, but not
all distros provide it.

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2017-05-04 17:30:23 -04:00
Justin Cormack
1d27259777 Partial port to Darwin and FreeBSD
This mainly fixes Linux vs generic Unix differences, with some
differences between Darwin and Freebsd (which are close bit not
identical). Should make fixing for other Unix platforms easier.

Note there are not yet `runc` equivalents for these platforms;
my current use case is image manipulation for the `moby` tool.
However there is interest in OCI runtime ports for both platforms.

Current status is that MacOS can build and run `ctr`, `dist`
and `containerd` and some operations are supported. FreeBSD 11
still needs some more fixes to continuity for extended attributes.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-05-04 18:11:53 +01:00
Phil Estes
c3efbc37bc Merge pull request #798 from sak0/dev
ctr exec: container id must be provided
2017-05-04 12:21:18 -04:00
CuiHaozhi
c88d5b1dc9 ctr exec: container id must be provided
Signed-off-by: CuiHaozhi <cuihz@wise2c.com>
2017-05-04 10:40:33 -04:00
Krasi Georgiev
0a24b100e3 ctr couldn't exit when the grpc containerd server is not running
Signed-off-by: Krasi Georgiev <krasi.root@gmail.com>
2017-05-04 12:27:01 +03:00
Derek McGowan
9d3f452371 Add support for registry authentication
Updates the docker resolver to support authenticating
with registries.

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
2017-05-02 22:01:52 -07:00
Stephen J Day
cec8578ff0 cmd/dist: add ability to edit content
This allows one to edit content in the content store with their favorite
editor. It is as simple as this:

```console
$ dist content edit sha256:58e1a1bb75db1b5a24a462dd5e2915277ea06438c3f105138f97eb53149673c4
```

The above will pop up your $EDITOR, where you can make changes to the content.
When you are done, save and the new version will be added to the content store.
The digest of the new content will be printed to stdout:

```console
sha256:247f30ac320db65f3314b63b908a3aeaac5813eade6cabc9198b5883b22807bc
```

We can then retrieve the content quite easily:

```console
$ dist content get sha256:247f30ac320db65f3314b63b908a3aeaac5813eade6cabc9198b5883b22807bc
{
   "schemaVersion": 2,
   "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
   "config": {
      "mediaType": "application/vnd.docker.container.image.v1+json",
      "size": 1278,
      "digest": "sha256:4a415e3663882fbc554ee830889c68a33b3585503892cc718a4698e91ef2a526"
   },
   "annotations": {},
   "layers": [
      {
         "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
         "size": 1905270,
         "digest": "sha256:627beaf3eaaff1c0bc3311d60fb933c17ad04fe377e1043d9593646d8ae3bfe1"
      }
   ]
}

```

In this case, an annotations field was added to the original manifest.

While this implementation is very simple, we can add all sorts of validation
and tooling to allow one to edit images inline. Coupled with declaring the
mediatype, we could return specific errors that can allow a user to craft
valid, working modifications to images for testing and profit.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-05-02 11:05:14 -07:00
Lei Jitang
75b889dd2e Use consistent errors package
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2017-05-02 08:26:06 -04:00
Phil Estes
f3c5811c35 Merge pull request #765 from dmcgowan/grpc-socket-permissions
Ensure grpc socket is group writable
2017-04-27 10:00:50 -04:00
Derek McGowan
4cb0839e41 Ensure grpc socket is group writable
Updates the filemode on the grpc socket to have group write
permission which is needed to perform GRPC. Additionally, ensure
the run directory has the specified group ownership and has group
read and enter permission.

Signed-off-by: Derek McGowan <derek@mcgstyle.net>
2017-04-26 14:40:36 -07:00
Yanqiang Miao
bcc4d12706 Add an alias for ctr list
Signed-off-by: Yanqiang Miao <miao.yanqiang@zte.com.cn>
2017-04-25 11:49:56 +08:00
Stephen Day
8f524ad42c Merge pull request #733 from kunalkushwaha/dist-cli-restructure
dist cli reorganized into sub-commands
2017-04-24 13:56:13 -05:00
Stephen Day
ce72a829c7 Merge pull request #752 from stevvooe/ctr-list-quiet
cmd/ctr: add quiet mode to `ctr list`
2017-04-24 13:46:58 -05:00
Stephen J Day
0377bfda5d cmd/ctr: add quiet mode to ctr list
This is so I can delete all the containers I keep creating.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-04-24 12:19:47 -05:00
Krasi Georgiev
e03485acda forward all signals to the container
Signed-off-by: Krasi Georgiev <krasi.root@gmail.com>
2017-04-22 01:46:57 +03:00
Qiang Huang
a9601d1df9 Merge pull request #746 from sak0/dev
Correct the usage of containerd --config
2017-04-20 16:56:46 -05:00
Stephen J Day
6eac7c159e cmd/dist: correct dist apply help
Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-04-19 12:57:28 -05:00
CuiHaozhi
d51976b60a Correct the usage of containerd --config
Signed-off-by: CuiHaozhi <cuihz@wise2c.com>
2017-04-17 06:44:18 -04:00
Kunal Kushwaha
18bcec512e dist subcommands reorganized.
few dist commands reorganized into subcommands "image" and "content".
Fix for #689

Signed-off-by: Kunal Kushwaha <kushwaha_kunal_v7@lab.ntt.co.jp>
2017-04-17 13:58:37 +09:00
Phil Estes
b369a6bff3 Merge pull request #721 from kunalkushwaha/bugfix-664
Correct the description of `dist get`.
2017-04-13 13:30:18 -04:00
Phil Estes
2565202183 Merge pull request #724 from crosbymichael/oom-score
Set oom score for containerd and shims
2017-04-12 15:41:23 -04:00
Michael Crosby
caa1de319e Merge pull request #713 from mlaventure/windows-runtime
Windows Pty and CloseStdin
2017-04-12 11:36:54 -07:00
Michael Crosby
634f0c0c83 Set oom score for containerd and shims
This adds a config option to set the oom score for the containerd daemon
as well as automatically setting the oom score for the shim's lauched so
that they are not killed until the very end of an out of memory
condition.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-04-12 11:34:32 -07:00
Kunal Kushwaha
57e190907f Correct the discription of dist get.
BugFix #664

Signed-off-by: Kunal Kushwaha <kushwaha_kunal_v7@lab.ntt.co.jp>
2017-04-12 10:47:54 +09:00
Kenfe-Mickael Laventure
918a3ee4a1 Implement Pty and CloseStdin for windows runtime
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2017-04-11 07:30:59 -07:00
Kenfe-Mickael Laventure
22a051c88e Refactor windows runtime
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2017-04-11 07:30:59 -07:00
Justin Cormack
2d8c735aa6 Add back the runtime-config flag in ctr run
This flag was already implemented but could not be specified any more.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-04-11 11:56:41 +01:00
Phil Estes
62918511f3 Merge pull request #712 from crosbymichael/sysunix
Replace syscall with /x/sys/unix in execution code
2017-04-10 16:30:32 -04:00
Derek McGowan
a17c10540d Merge pull request #711 from vbatts/config-subcommand
containerd: make a config subcommand
2017-04-10 13:03:10 -07:00
Michael Crosby
3db1ea8d07 [bin] Replace syscall with /x/sys/unix
Replace syscall usage with /sys/unix in the binaries and their packages

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-04-10 12:01:33 -07:00
Vincent Batts
f58f047b7f containerd: revert the auto config creation
rather than automagically doing this, it is the user's responsibility to
review the output of `containerd config default` and create the config
themselves.

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2017-04-10 14:54:36 -04:00
Phil Estes
4f33aa2b5c Merge pull request #702 from crosbymichael/attach
Expose Pty resize and CloseStdin RPCs
2017-04-10 14:38:30 -04:00
Vincent Batts
741c471753 containerd: make a config subcommand
For the purpose of reviewing the default config

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2017-04-10 14:33:29 -04:00
Kenfe-Mickael Laventure
ab9c4c31d6 Fix dist socket parameter
It was renamed to address.

Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2017-04-10 09:37:43 -07:00
Michael Crosby
a7da08b7ba Add Pty and CloseStdin RPCs
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-04-07 11:20:10 -07:00
Kenfe-Mickael Laventure
c5843b7615 Initial windows runtime work
Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
2017-04-07 09:20:44 -07:00
Michael Crosby
47225c130c Add ctr exec
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-04-06 10:36:47 -07:00
Yanqiang Miao
4aec91fd96 replace 'gocontext.Background' with the var 'ctx'
Signed-off-by: Yanqiang Miao <miao.yanqiang@zte.com.cn>
2017-04-05 17:40:48 +08:00
Qiang Huang
e6f02dcb0b Add ctr kill command
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
2017-04-05 09:04:59 +08:00
Derek McGowan
e2b042e7c1 Merge pull request #675 from stevvooe/images-service
api/services/images: define images metadata service
2017-04-04 16:10:54 -07:00
Vincent Batts
93417d446c containerd: missing config creates a default
This fixes silently ignore the config file not existing as well.

```bash
sudo ./bin/containerd --config farts
$ sudo ./bin/containerd --config farts
INFO[0000] config "farts" does not exist. Creating it.   module=containerd
INFO[0000] starting containerd boot...                   module=containerd
INFO[0000] starting debug API...                         debug="/run/containerd/debug.sock" module=containerd
INFO[0000] loading monitor plugin "cgroups"...           module=containerd
INFO[0000] loading runtime plugin "linux"...             module=containerd
INFO[0000] loading snapshot plugin "snapshot-overlay"...  module=containerd
INFO[0000] loading grpc service plugin "content-grpc"...  module=containerd
INFO[0000] loading grpc service plugin "metrics-grpc"...  module=containerd
INFO[0000] loading grpc service plugin "runtime-grpc"...  module=containerd
INFO[0000] loading grpc service plugin "healthcheck-grpc"...  module=containerd
INFO[0000] loading grpc service plugin "rootfs-grpc"...  module=containerd
INFO[0000] starting GRPC API server...                   module=containerd
INFO[0000] containerd successfully booted in 0.001465s   module=containerd
^C$ cat farts
state = "/run/containerd"
root = "/var/lib/containerd"
snapshotter = "overlay"
subreaper = false

[grpc]
  socket = "/run/containerd/containerd.sock"
  uid = 0
  gid = 0

[debug]
  socket = "/run/containerd/debug.sock"
  level = "info"

[metrics]
  address = ""
```

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2017-04-04 17:32:05 -04:00
Vincent Batts
28d012ea00 containerd: add access to default config
when wanting to craft a custom config, but based on the default config,
add a route to output the containerd config to a tempfile.

Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
2017-04-04 16:32:12 -04:00
Stephen J Day
8c74da3983 cmd/dist, cmd/ctr: move image store access to GRPC
With this changeset, image store access is now moved to completely
accessible over GRPC. No clients manipulate the image store database
directly and the GRPC client is fully featured. The metadata database is
now managed by the daemon and access coordinated via services.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-04-04 10:35:55 -07:00
Michael Crosby
4f2b443a27 Rewrite imports for new github org
This rewrites the Go imports after switching to the new github org.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2017-04-03 14:05:44 -07:00
Phil Estes
efb16dad44 Merge pull request #661 from crosbymichael/stdin-closer
Open stdin write side in shim
2017-04-03 12:25:43 -04:00
Kenfe-Mickaël Laventure
2cf8e5ac9d Merge pull request #676 from stevvooe/delete-image
cmd/dist, images: allow image delete
2017-03-31 14:28:37 -07:00
Stephen Day
45cdc51a09 Merge pull request #673 from AkihiroSuda/run-revive-cmd
ctr/run: revive specifying custom command
2017-03-31 14:14:39 -07:00
Stephen J Day
cc983be17a cmd/dist, images: allow image delete
This adds very simple deletion of images by name. We still need to
consider the approach to handling image name, so this may change. For
the time being, it allows one to delete an image entry in the metadata
database.

Signed-off-by: Stephen J Day <stephen.day@docker.com>
2017-03-31 12:49:44 -07:00
Akihiro Suda
71870d7631 ctr/run: revive specifying custom command
e.g.

    $ ctr run --id foo docker.io/library/busybox:latest ls

Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
2017-03-31 02:21:33 +00:00
unclejack
7b4d238ee3 archive,cmd,images: clean up some code
Signed-off-by: Cristian Staretu <cristian.staretu@gmail.com>
2017-03-30 11:41:22 +03:00