Commit Graph

2905 Commits

Author SHA1 Message Date
Phil Estes d5743a3a5c Properly report conflicting namespace options when using userns
This prevents strange errors and clarifies which namespace options are
incompatible with user namespaces (at this time).

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-01-11 20:50:22 -05:00
Sebastiaan van Stijn 656979670c Merge pull request #18998 from calavera/syslog_tls
Allow syslog over TCP+TLS.
2016-01-11 17:21:38 -08:00
Lei Jitang 79d4f0f56e Add docker network connect/disconnect to non-running container
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-01-11 20:13:39 -05:00
Kim Eik e732f4e649 Added additional container information to "docker info".
Instead of just showing the number of containers this patch will
show the number of running, paused and stopped containers as well.

Signed-off-by: Kim Eik <kim@heldig.org>
(cherry picked from commit a9804ab1cb117a132cbf460067d55f5146d50956)
2016-01-11 19:14:44 -05:00
Jess Frazelle a96a0b3781 Merge pull request #19217 from justincormack/arm_syscalls
Add arm specific syscalls to default seccomp profile
2016-01-11 15:26:09 -08:00
Alexander Morozov 5abef06a15 Fix race on reading endpoint data
Race is with its cleanup.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-01-11 14:28:07 -08:00
Jess Frazelle 9c9a1d1b4b Merge pull request #19069 from jfrazelle/apparmor-regex-proc
fix proc regex
2016-01-11 13:50:25 -08:00
Alexander Morozov 9a23569ecf Merge pull request #16032 from cpuguy83/remove_sqlite_dep
Build names and links at runtime - no more sqlite
2016-01-11 10:59:49 -08:00
Vivek Goyal 2dccb562df Mark device ID free only if device actually got deleted
Right now if somebody has enabled deferred device deletion, then
deleteTransaction() returns success even if device could not be deleted. It
has been marked for deferred deletion. Right now we will mark device ID free
and potentially use it again when somebody tries to create new container. And
that's wrong. Device ID is not free yet. It will become free once devices
has actually been deleted by the goroutine later.

So move the location of call to markDeviceIDFree() to a place where we know
device actually got deleted and was not marked for deferred deletion.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2016-01-11 18:57:37 +00:00
David Calavera 4b98193bea Add support for syslog over TLS.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-11 12:25:34 -05:00
Brian Goff 2600777469 Add migration from sqlite links back to hostConfig
Before #16032, once links were setup
in the sqlite db, hostConfig.Links was cleared out.
This means that we need to migrate data back out of the sqlite db and
put it back into hostConfig.Links so that links specified on older
daemons can be used.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-11 11:31:29 -05:00
Lei Jitang f62d4ceba6 Remove duplication checking for the existence of endpoint
CreateEndpoint will check if the endpoint exist or not, so there is no
need to check before call CreatEndpoint in connectToNetwork since
checking the existence of the endpoint could take much time especially
if we use external K-V store, this would slow down the staring of container.

Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-01-11 14:45:43 +08:00
Sebastiaan van Stijn 967acd56c1 Merge pull request #18512 from euank/18510-fixOomKilled
Set OOMKilled state on any OOM event
2016-01-11 00:09:26 +01:00
Justin Cormack 37d35f3c28 Add arm specific syscalls to default seccomp profile
Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2016-01-10 19:55:24 +00:00
Arnaud Porterie fe3d1f9dd7 Merge pull request #19198 from sanimej/vin
Vendoring libnetwork
2016-01-10 11:46:34 -08:00
Justin Cormack 13a9d4e899 Add i386 specific modify_ldt syscall to default seccomp filter
This syscall is used by Go on i386 binaries, although not by libc.

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2016-01-10 12:00:11 +00:00
Sebastiaan van Stijn a082f80832 Merge pull request #18736 from WeiZhang555/tiny-lock
Break big lock into some tiny locks for containerStart
2016-01-09 00:35:26 +01:00
Santhosh Manohar 64a6dc3558 Docker changes for libnetwork vendoring..
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2016-01-08 14:13:55 -08:00
Phil Estes 557c7cb888 Move userns support out of experimental into master
Adds the `--userns-remap` flag to the master build

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-01-08 15:06:22 -05:00
Arnaud Porterie 05de2aadff Merge pull request #19001 from aboch/pip
Allow user to choose the IP address for the container
2016-01-08 11:49:20 -08:00
Michael Crosby e26974e20b Merge pull request #19175 from cpuguy83/18670_copy_data_for_named_volumes
On create, copy image data for named volumes.
2016-01-08 11:33:40 -08:00
Alessandro Boch 2bb3fc1bc5 Allow user to choose the IP address for the container
Signed-off-by: Alessandro Boch <aboch@docker.com>
2016-01-08 10:09:16 -08:00
Lei Jitang cde0ed67a1 Create the working directory on container creation
if create a container with -w to specify the working directory and
the directory does not exist in the container rootfs, the directory
will be created until the container start. It make docker export of
a created container and a running container inconsistent.

Signed-off-by: Lei Jitang <leijitang@huawei.com>
2016-01-08 12:11:21 +08:00
Phil Estes 72e65e8793 Fix btrfs subvolume snapshot dir perms for user namespaces
Make sure btrfs mounted subvolumes are owned properly when a remapped
root exists (user namespaces are enabled, for example)

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-01-07 23:05:28 -05:00
Brian Goff b468332707 On create, copy image data for named volumes.
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-07 21:57:08 -05:00
Brian Goff 0f9f99500c Build names and links at runtime
Don't rely on sqlite db for name registration and linking.
Instead register names and links when the daemon starts to an in-memory
store.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-07 14:10:42 -05:00
Jess Frazelle 938d28e772 Merge pull request #19144 from LK4D4/fix_parent_systemd
Choose default-cgroup parent by cgroup driver
2016-01-07 10:24:51 -08:00
Alexander Morozov c1cd45d547 Choose default-cgroup parent by cgroup driver
It's "/docker" for cgroupfs and "system.slice" for systemd.

Fix #19140

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-01-07 08:56:26 -08:00
David Calavera 907407d0b2 Modify import paths to point to the new engine-api package.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-06 19:48:59 -05:00
David Calavera 4ee3048fa8 Merge pull request #19110 from brahmaroutu/update_openc
update runc to the latest code base to fix gccgo builds
2016-01-06 15:09:11 -08:00
Jessica Frazelle 2b4f64e590
fix proc regex
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-06 10:08:35 -08:00
Tõnis Tiigi fe550a1f17 Merge pull request #19093 from estesp/userns-root-rework
Allow root non-userns metadata backwards compatibility
2016-01-06 09:48:37 -08:00
David Calavera 4b1872f1ef Merge pull request #18979 from jfrazelle/make-whitelist
Change seccomp blacklist to a whitelist
2016-01-06 09:15:25 -08:00
Srini Brahmaroutu 9982631707 update runc to the latest code base to fix gccgo build
Signed-off-by: Srini Brahmaroutu <srbrahma@us.ibm.com>
2016-01-06 00:02:56 +00:00
Phil Estes 55137c19f4 Merge pull request #16534 from cpuguy83/make_volume_drivers_responsible
Move responsibility of ls/inspect to volume driver
2016-01-05 17:29:51 -05:00
David Calavera b4e26a96da Merge pull request #18752 from cpuguy83/fix_broken_pipe_error_on_download_abrt
Don't log EPIPE errors on client download abort
2016-01-05 13:34:57 -08:00
Brian Goff d3eca4451d Move responsibility of ls/inspect to volume driver
Makes `docker volume ls` and `docker volume inspect` ask the volume
drivers rather than only using what is cached locally.

Previously in order to use a volume from an external driver, one would
either have to use `docker volume create` or have a container that is
already using that volume for it to be visible to the other volume
API's.

For keeping uniqueness of volume names in the daemon, names are bound to
a driver on a first come first serve basis. If two drivers have a volume
with the same name, the first one is chosen, and a warning is logged
about the second one.

Adds 2 new methods to the plugin API, `List` and `Get`.
If a plugin does not implement these endpoints, a user will not be able
to find the specified volumes as well requests go through the drivers.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-01-05 16:28:38 -05:00
Tibor Vass df9a3d1005 Merge pull request #19092 from anusha-ragunathan/builder-rm-merge
Remove runconfig.Merge
2016-01-05 15:21:24 -05:00
David Calavera acfd5eb947 Merge pull request #18977 from anusha-ragunathan/builder
Use ImageBuildOptions in builder.
2016-01-05 11:54:21 -08:00
Anusha Ragunathan eb4ae8e28a Remove runconfig.Merge
Merge was used by builder and daemon. With this commit, the builder
call has been inlined and the function moved to the daemon package,
which is the only other caller.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>
2016-01-05 11:28:55 -08:00
Michael Crosby 5aae5a5fae Merge pull request #18399 from tonistiigi/migration-optimization
Migration optimizations
2016-01-05 10:11:56 -08:00
Anusha Ragunathan 5190794f1d Use ImageBuildOptions in builder.
dockerfile.Config is almost redundant with ImageBuildOptions.
Unify the two so that the latter can be removed. This also
helps build's API endpoint code to be less dependent on package
dockerfile.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>
2016-01-05 10:09:34 -08:00
Justin Cormack 822c4f79ab
Allow the waitpid syscall
This version is sometimes used eg by glibc on x86

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2016-01-05 09:29:16 -08:00
Justin Cormack ca3ae72e43
Support compatible architectures with default seccomp rules
In the default seccomp rule, allow use of 32 bit syscalls on
64 bit architectures, so you can run x86 Linux images on x86_64
without disabling seccomp or using a custom rule.

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2016-01-05 09:28:42 -08:00
Phil Estes e8532023f2 Allow root non-userns metadata backwards compatibility
Instead of creating a "0.0" subdirectory and migrating graphroot
metadata into it when user namespaces are available in the daemon
(currently only in experimental), change the graphroot dir permissions
to only include the execute bit for "other" users.

This allows easy migration to and from user namespaces and will allow
easier integration of user namespace support into the master build.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
2016-01-05 11:51:14 -05:00
Doug Davis b2d00e312b Merge pull request #19038 from gottwald/logfix
Fix race condition in JSONFileLogger.Log
2016-01-05 08:52:12 -05:00
Kai Qiang Wu(Kennan) 01e873790e Fix the str missing
Fixes: #19072
Signed-off-by: Kai Qiang Wu(Kennan) <wkqwu@cn.ibm.com>
2016-01-05 09:32:52 +00:00
Justin Cormack d8e06d54cf
Allow sigreturn syscall
This is used on some 32 bit architectures, eg x86

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2016-01-04 16:11:59 -08:00
Alexander Morozov 2e3186ab06 Add ability to set cgroup parent for all containers
Fix #18022

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2016-01-04 15:16:25 -08:00
Michael Crosby 04234bd16a Merge pull request #18208 from cpuguy83/restart_links
Daemon Restart: attempt to wait for container deps
2016-01-04 14:36:00 -08:00
David Calavera 723be0a332 Merge pull request #18888 from calavera/event_types
Event all the things!
2016-01-04 13:07:33 -08:00
David Calavera 851fe00c64 Add filter by event type and documentation.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2016-01-04 14:58:04 -05:00
Justin Cormack 923609179b
Add _llseek syscall
This is the newer verion of lseek on many 32 bit platforms

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2016-01-04 11:55:28 -08:00
Justin Cormack d6a9c5abed
Do not allow obsolete syscalls
sysfs and ustat syscalls are marked obsolete.

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2016-01-04 11:55:28 -08:00
Justin Cormack c1b57fc1c9
Do not allow name_to_handle_at, as we have already blocked open_by_handle_at
Being able to obtain a file handle is no use as we cannot perform
any operation in it, and it may leak kernel state.

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2016-01-04 11:55:27 -08:00
Jessica Frazelle a1747b3cc8
add 32bit syscalls to whitelist
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-04 11:55:26 -08:00
Jessica Frazelle 17735c3c98
change seccomp blacklist to whitelist
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2016-01-04 11:55:21 -08:00
Tonis Tiigi a8f88ef403 Parallel migration and optimizations
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-01-04 09:48:52 -08:00
Tonis Tiigi 0641429ad8 Use direct filesystem access for tar-split on aufs
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2016-01-04 09:41:02 -08:00
Daniel Nephin 2b7ad47bd2 Move the runconfig.Parse() function into the runconfig/opts package.
The parse.go file is used almost exclusively in the client. The few small
functions that are used outside of the client could easily be copied out
when the client is extracted, allowing this runconfig/opts package to
move to the client.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
2016-01-04 12:06:29 -05:00
Brian Goff 0fff66977a Merge pull request #19033 from cr7pt0gr4ph7/19032-fix-native-execdriver-compile-error
Fix declarations of of execdriver/native.NewDriver to have the same signature for all platforms
2016-01-04 10:22:10 -05:00
Sebastiaan van Stijn db738dd77f Merge pull request #15666 from vdemeester/3519-configurable-escape
Implement configurable escape key for attach/exec
2016-01-04 00:49:07 +01:00
Vincent Demeester 15aa2a663b Implement configurable detach key
Implement configurable detach keys (for `attach`, exec`, `run` and
`start`) using the client-side configuration

- Adds a `--detach-keys` flag to `attach`, `exec`, `run` and `start`
  commands.
- Adds a new configuration field (in `~/.docker/config.json`) to
  configure the default escape keys for docker client.

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2016-01-03 23:03:39 +01:00
Ingo Gottwald f8c5420080 Fix race condition in JSONFileLogger.Log
Signed-off-by: Ingo Gottwald <in.gottwald@gmail.com>
2016-01-03 22:45:56 +01:00
Lukas Waslowski 9a03967f0a Fix declarations of of execdriver/native.NewDriver to have the same signature.
This change is done so that driver_unsupported.go and driver_unsupported_nocgo.go
declare the same signature for NewDriver as driver.go.

Fixes #19032

Signed-off-by: Lukas Waslowski <cr7pt0gr4ph7@gmail.com>
2016-01-02 19:55:37 +01:00
Arnaud Porterie 838e4c86e8 Merge pull request #19027 from runcom/remove-getter
daemon: info: remove exported getter
2016-01-01 12:26:24 -08:00
Antonio Murdaca 77ef3a606a daemon: info: remove exported getter
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2016-01-01 20:22:29 +01:00
Arnaud Porterie e7c6206574 Merge pull request #19007 from aboch/npe
Properly initialize IpamConf structure in initBridgeDriver
2016-01-01 10:50:54 -08:00
Brian Goff e7e3e568d1 Merge pull request #18836 from vdemeester/18829-info-authz-plugins
Add authorization plugins to docker info
2015-12-31 09:47:59 -05:00
Alessandro Boch aa97eee1a3 Properly initialize IpamConf structure in initBridgeDriver
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-12-30 15:44:50 -08:00
David Calavera 102eb03c68 Merge pull request #18999 from tonistiigi/fix-comment-in-inspect
Fix missing comment in docker inspect
2015-12-30 15:07:04 -08:00
David Calavera f15af1eff7 Add network events.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-30 17:39:33 -05:00
David Calavera 9d12d09300 Add volume events.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-30 17:39:33 -05:00
David Calavera 72f1881df1 Add event types.
- Stop serializing JSONMessage in favor of events.Message.
- Keep backwards compatibility with JSONMessage for container events.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-12-30 17:39:33 -05:00
Tonis Tiigi d32f43013b Fix missing comment in docker inspect
Fixes #18571

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-12-30 11:52:53 -08:00
David Calavera 56f8b051eb Merge pull request #18158 from mauri/add_owner
ADD files to a folder doesn't set correct UID and GID
2015-12-30 11:19:15 -08:00
Mauricio Garavaglia b638bc6f17 Fix files ownership when ADD is used
Signed-off-by: Mauricio Garavaglia <mauriciogaravaglia@gmail.com>
2015-12-30 11:35:19 -03:00
Lei Jitang 72d3d1ef85 Fix daemon failed to start with error "layer does not exist"
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-12-30 14:19:31 +08:00
Jess Frazelle abc695d9d5 Merge pull request #18974 from jfrazelle/remove-seccomp-from-seccomp-profile
remove seccomp from seccomp profile
2015-12-29 13:15:14 -08:00
Vincent Demeester 4a1eb3f3e2 Add authorization plugins to docker info
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-12-29 22:10:23 +01:00
Arnaud Porterie 7b540ee653 Merge pull request #18877 from dnephin/move_graph_driver_to_layer_store
Move graph driver to layer store
2015-12-29 12:19:02 -08:00
Arnaud Porterie a81e438544 Merge pull request #18969 from justincormack/vm86
Block vm86 syscalls in default seccomp profile
2015-12-29 11:57:35 -08:00
Arnaud Porterie 2307f47fdd Merge pull request #18972 from justincormack/bpf
Block bpf syscall from default seccomp profile
2015-12-29 11:57:07 -08:00
Arnaud Porterie e01cab1cc5 Merge pull request #18971 from justincormack/ptrace
Block additional ptrace related syscalls in default seccomp profile
2015-12-29 11:56:51 -08:00
Jessica Frazelle b610fc226a
remove seccomp from seccomp profile
This can be allowed because it should only restrict more per the seccomp docs, and multiple apps use it today.

Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-29 11:21:33 -08:00
Arnaud Porterie 94e0760868 Merge pull request #18947 from jfrazelle/fix-seccomp-unsupported
fix default profile where unsupported
2015-12-29 10:21:07 -08:00
Arnaud Porterie afdc4747dc Merge pull request #18953 from justincormack/robust_list
Allow use of robust list syscalls in default seccomp policy
2015-12-29 10:19:41 -08:00
Arnaud Porterie a32b06b067 Merge pull request #18956 from justincormack/umount
Block original umount syscall in default seccomp filter
2015-12-29 10:19:04 -08:00
Justin Cormack a0a8ca0ae0 Block additional ptrace related syscalls in default seccomp profile
Block kcmp, procees_vm_readv, process_vm_writev.
All these require CAP_PTRACE, and are only used for ptrace related
actions, so are not useful as we block ptrace.

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2015-12-29 18:17:28 +00:00
Arnaud Porterie ad8bce2ce4 Merge pull request #18959 from justincormack/finit_module
Deny finit_module in default seccomp profile
2015-12-29 10:12:50 -08:00
Arnaud Porterie 8ac3d083a8 Merge pull request #18961 from justincormack/clock_adjtime
Block clock_adjtime in default seccomp config
2015-12-29 10:08:45 -08:00
Justin Cormack 33568405f3 Block bpf syscall from default seccomp profile
The bpf syscall can load code into the kernel which may
persist beyond container lifecycle. Requires CAP_SYS_ADMIN
already.

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2015-12-29 17:28:30 +00:00
Justin Cormack 6c3ea7a511 Block vm86 syscalls in default seccomp profile
These provide an in kernel virtual machine for x86 real mode on x86
used by one very early DOS emulator. Not required for any normal use.

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2015-12-29 15:47:23 +00:00
Justin Cormack 6300a08be9 Block stime in default seccomp profile
The stime syscall is a legacy syscall on some architectures
to set the clock, should be blocked as time is not namespaced.

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2015-12-29 15:28:05 +00:00
Justin Cormack 0e5c43cdda Block clock_adjtime in default seccomp config
clock_adjtime is the new posix style version of adjtime allowing
a specific clock to be specified. Time is not namespaced, so do
not allow.

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2015-12-29 12:48:16 +00:00
Justin Cormack 0d5306a0b6 Deny finit_module in default seccomp profile
This is a new version of init_module that takes a file descriptor
rather than a file name.

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2015-12-29 12:31:33 +00:00
Justin Cormack 9be0d93cf7 Block original umount syscall in default seccomp filter
The original umount syscall without flags argument needs to
be blocked too.

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2015-12-29 11:57:16 +00:00
Justin Cormack 7b133e7235 Allow use of robust list syscalls
The set_robust_list syscall sets the list of futexes which are
cleaned up on thread exit, and are needed to avoid mutexes
being held forever on thread exit.

See for example in Musl libc mutex handling:
http://git.musl-libc.org/cgit/musl/tree/src/thread/pthread_mutex_trylock.c#n22

Signed-off-by: Justin Cormack <justin.cormack@unikernel.com>
2015-12-29 10:22:05 +00:00
Jessica Frazelle b4c14a0bb8
fix code comment
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-28 22:36:54 -08:00
Jessica Frazelle 94b45310f4
fix default profile where unsupported
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-12-28 20:42:15 -08:00