Commit Graph

2572 Commits

Author SHA1 Message Date
Alexander Morozov cccf674943 Merge pull request #16873 from coolljt0725/expand_docker_info
Add more cgroup config to docker info
2015-11-13 09:37:06 -08:00
Alexander Morozov f9daecc880 Rename daemon/utils_*.go to selinux
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-12 15:48:41 -08:00
Vincent Demeester 588fedef4a Merge pull request #17949 from Microsoft/jjh/cpuweighttp4
Windows: TP4 fix cpu weight
2015-11-12 21:13:09 +01:00
Vincent Demeester 318a13b0af Merge pull request #17948 from LK4D4/splunk_windows
Enable Splunk logdriver for windows
2015-11-12 20:44:31 +01:00
Vincent Demeester 812a1c149a Merge pull request #13959 from Mashimiao/add-support-blkio_weight_device
Add support for blkio.weight_device
2015-11-12 20:42:13 +01:00
John Howard 90eac6b48b Windows: TP4 fix cpu weight
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-12 11:08:24 -08:00
Alexander Morozov 705b50850c Enable Splunk logdriver for windows
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-12 10:57:21 -08:00
Aaron Lehmann 64f8ee444d Cap the amount of buffering done by BytesPipe
Turn BytesPipe's Read and Write functions into blocking, goroutine-safe
functions. Add a CloseWithError function to propagate an error code to
the Read function.

Adjust tests to work with the blocking Read and Write functions.

Remove BufReader, since now its users can use BytesPipe directly.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
2015-11-12 10:11:29 -08:00
David Calavera 8cf38b6a8b Merge pull request #17589 from Microsoft/jjh/refactorprocessconfig
Refactor ProcessConfig
2015-11-12 07:28:32 -08:00
Denis Gladkikh 26855c7801 Allow configurable metadata for Splunk log driver
Add support of `tag`, `env` and `labels` for Splunk logging driver.
Removed from message `containerId` as it is the same as `tag`.

Signed-off-by: Denis Gladkikh <denis@gladkikh.email>
2015-11-12 06:36:51 -08:00
Alexander Morozov fa7ec908c4 daemon/kill.go: simplify if statement
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-11 17:19:39 -08:00
Brian Goff 87de5fdd59 Merge pull request #17919 from Microsoft/jjh/tp4
Windows [TP4] Require build 10586+
2015-11-11 19:36:13 -05:00
Brian Goff 5b046c71d8 Merge pull request #17916 from Microsoft/jjh/fix-cp-with-volumes
Windows [TP4] Fix docker cp when volumes
2015-11-11 19:35:05 -05:00
John Howard 122568b314 Windows [TP4] Require build 10586+
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-11 14:49:14 -08:00
Alexander Morozov 6c82fba2b3 Merge pull request #17894 from mqliang/deferMove
move defer statement for readability
2015-11-11 14:03:48 -08:00
John Howard 3a852d8442 Windows [TP4] Fix docker cp when volumes
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-11 14:02:07 -08:00
Tibor Vass adb14543fd Merge pull request #17903 from rhvgoyal/default-to-xfs-v2
Devicemapper: Default to xfs instead of ext4
2015-11-11 16:42:58 -05:00
Arnaud Porterie 37dfae3cde Merge pull request #17909 from LK4D4/info_simple
daemon/info.go: assign proxy fields directly
2015-11-11 21:15:13 +01:00
Dan Walsh 1716d497a4 Relabel BTRFS Content on container Creation
This change will allow us to run SELinux in a container with
BTRFS back end.  We continue to work on fixing the kernel/BTRFS
but this change will allow SELinux Security separation on BTRFS.

It basically relabels the content on container creation.

Just relabling -init directory in BTRFS use case. Everything looks like it
works. I don't believe tar/achive stores the SELinux labels, so we are good
as far as docker commit.

Tested Speed on startup with BTRFS on top of loopback directory. BTRFS
not on loopback should get even better perfomance on startup time.  The
more inodes inside of the container image will increase the relabel time.

This patch will give people who care more about security the option of
runnin BTRFS with SELinux.  Those who don't want to take the slow down
can disable SELinux either in individual containers or for all containers
by continuing to disable SELinux in the daemon.

Without relabel:

> time docker run --security-opt label:disable fedora echo test
test

real    0m0.918s
user    0m0.009s
sys    0m0.026s

With Relabel

test

real    0m1.942s
user    0m0.007s
sys    0m0.030s

Signed-off-by: Dan Walsh <dwalsh@redhat.com>

Signed-off-by: Dan Walsh <dwalsh@redhat.com>
2015-11-11 14:49:27 -05:00
Alexander Morozov 1df0bb5a13 daemon/info.go: assign proxy fields directly
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-11 11:03:53 -08:00
David Calavera 0b566566c6 Merge pull request #17858 from sanimej/libn
Allow port mapping only for endpoint created on docker run
2015-11-11 11:00:31 -08:00
Alexander Morozov 2bb1c530d7 Merge pull request #17193 from cpuguy83/refactor_store_errors
Refactor volume store's error usage
2015-11-11 10:25:00 -08:00
Tibor Vass 7a985cfafc Merge pull request #17890 from aboch/b6
Restore deterministic IPv6 from MAC behavior on default bridge network
2015-11-11 12:42:08 -05:00
Vivek Goyal 07ff17fb85 devmapper: Switch to xfs as default filesystem if supported
If platform supports xfs filesystem then use xfs as default filesystem 
for container rootfs instead of ext4. Reason being that ext4 is pre-allcating
lot of metadata (around 1.8GB on 100G thin volume) and that can take long
enough on AWS storage that systemd times out and docker fails to start.

If one disables pre-allocation of ext4 metadata, then it will be allocated
when containers are mounted and we will have multiple copies of metadata
per container. For a 100G thin device, it was around 1.5GB of metadata
per container.

ext4 has an optimization to skip zeroing if discards are issued and
underlying device guarantees that zero will be returned when discarded
blocks are read back. devicemapper thin devices don't offer that guarantee
so ext4 optimization does not kick in. In fact given discards are optional
and can be dropped on the floor if need be, it looks like it might not be
possible to guarantee that all the blocks got discarded and if read back
zero will be returned.

Signed-off-by: Anusha Ragunathan <anusha@docker.com>
Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-11-11 12:07:35 -05:00
Vivek Goyal 83a34e000b devmapper: Warn if user specified a filesytem and base device already has fs
If user wants to use a filesystem it can be specified using dm.fs=<filesystem>
option. It is possible that docker already had base image and a filesystem
on that. Later if user wants to change file system using dm.fs= option
and restarts docker, that's not possible. Warn user about it.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-11-11 12:07:35 -05:00
Alessandro Boch 095a8ac545 Restore IPv6 from MAC on default bridge network
Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-11-11 08:36:04 -08:00
Ma Shimiao 0fbfa1449d Add support for blkio.weight_device
Signed-off-by: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
2015-11-11 23:06:36 +08:00
Vincent Batts 1066725395 Merge pull request #16774 from tonistiigi/15643-aufs-plnk
Copy aufs hardlinks to top layer
2015-11-11 07:59:41 +01:00
mqliang d71eeb1c05 move defer statement for readability
Signed-off-by: mqliang <mqliang.zju@gmail.com>
2015-11-11 11:28:23 +08:00
Brian Goff 43012fe842 Refactor volume store's error usage
Uses an errors API similar the `net` package.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-11-10 20:33:29 -05:00
David Calavera 5b718bdee2 Merge pull request #17874 from LK4D4/nocheck_nil_map
daemon/info.go: remove check for map nilness
2015-11-10 12:52:52 -08:00
Sebastiaan van Stijn d4c4557b1a Merge pull request #17613 from Microsoft/10662-isolationexecopt
Windows: Add default isolation exec driver option
2015-11-10 19:55:46 +00:00
John Howard a429ad1e35 Windows: Add default isolation exec driver option
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-10 11:39:05 -08:00
David Calavera 470fc94f38 Merge pull request #17476 from coolljt0725/prevent_connect_to_host
Fix connect to host and prevent disconnect from host for host network
2015-11-10 09:48:33 -08:00
Alexander Morozov 8f311f4d8c daemon/info.go: remove check for map nilness
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-10 09:20:59 -08:00
Lei Jitang e035d27223 Show warning when user specify dm.basesize for already initialized devicemapper drive
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-11-10 14:50:19 +08:00
Antonio Murdaca 6f2c6111d4 Merge pull request #17843 from LK4D4/discovery_refactor
Refactoring in daemon/discovery.go
2015-11-10 07:34:11 +01:00
Doug Davis 70579bd558 Merge pull request #17847 from LK4D4/exec_unnec_var
Remove unnecessary var block in monitorExec
2015-11-09 23:32:38 -06:00
Shijiang Wei 76992f3e23 remove the unused DefaultNetwork member from daemon.Config
Signed-off-by: Shijiang Wei <mountkin@gmail.com>
2015-11-10 09:51:15 +08:00
Alexander Morozov d83b5dc177 Refactoring in daemon/discovery.go
Replace time.Sleep with time.Tick and remove unnecessary var block.
Use Warn log-level instead of error.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-09 15:21:27 -08:00
Alexander Morozov 445675e808 Remove unnecessary var block in monitorExec
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-09 15:14:20 -08:00
Tibor Vass 62b484411e Merge pull request #17779 from calavera/fix_dns_regression
Use an empty slice as default value for DNS, DNSSearch and DNSOptions.
2015-11-09 18:07:07 -05:00
David Calavera 143f3579b0 Merge pull request #17450 from rhatdan/selinux
Fix relabel for SELinux
2015-11-09 13:19:28 -08:00
David Calavera 58b270c338 Merge pull request #17431 from vdemeester/hope-it-does-not-broke-everything-again
Another try at dockerversion placeholder for library import
2015-11-09 13:15:50 -08:00
Dan Walsh d9011b3617 Fix relabel for SELinux
With the changes merged into runc/libcontainer, are now causing
SELinux to attempt a relabel always, even if the user did not
request the relabel.

If the user does not specify Z or z on the volume mount we should
not attempt a relabel.

Signed-off-by: Dan Walsh <dwalsh@redhat.com>
2015-11-09 14:04:57 -05:00
Vincent Demeester 8054a30387 dockerversion placeholder for library import
- Add a *version* file placeholder.
- Update autogen and builds to use it and an autogen build flag

Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2015-11-09 19:32:46 +01:00
John Howard 5fa2e4d4f2 Refactor ProcessConfig
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-09 09:51:09 -08:00
David Calavera f1a74a89f8 Use an empty slice as default value for DNS, DNSSearch and DNSOptions
So we don't print those <no value> in the client and we don't fail
executing inspect templates with API field names.

Make sure those fields are initialized as empty slices when
a container is loaded from disk and their values are nil.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-09 12:46:48 -05:00
John Howard 77af7d1067 Refactor exitStatus structure
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-09 08:26:35 -08:00
Alexander Morozov 28588efb47 Merge pull request #17089 from Microsoft/10662-ansi
Windows: Native ANSI console support
2015-11-09 08:05:08 -08:00
Vincent Demeester 944dc7fa8f Merge pull request #17808 from bboreham/ipc-errormsg
Fix typo in container-start error message
2015-11-09 07:58:03 +01:00
John Howard 2ff68910e2 Typo s/contained/container
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-08 18:29:34 -08:00
Lei Jitang a2d8c93fc6 Prevent connecting to host and prevent disconnecting from host
Container has private network namespace can not to connect to host
and container with host network can not be disconnected from host.

Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-11-09 10:19:53 +08:00
Bryan Boreham 93405dd037 Fix typo in error message
Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2015-11-08 18:05:34 +00:00
Antonio Murdaca 343c8547df Merge pull request #17762 from LK4D4/builder_commit
Use name instead of container in Commit
2015-11-08 15:57:13 +01:00
Brian Goff 342e6bb99f Merge pull request #17581 from Microsoft/10662-factoroutexecuser
Windows: Factor out user in execdriver\driver
2015-11-07 22:11:26 -05:00
Brian Goff bf5a6d2a83 Merge pull request #17710 from tonistiigi/fix-builder-symlinks
Fix symlink handling in builder ADD/COPY commands
2015-11-07 16:32:07 -05:00
Antonio Murdaca 98054a8b5c Merge pull request #17787 from Microsoft/jjh/execdriverutils
Don't build utils on Windows
2015-11-07 21:27:32 +01:00
Sebastiaan van Stijn fdc8cce070 Merge pull request #16742 from runcom/10772-docker-stats-all
Allow docker stats without arguments
2015-11-07 19:41:03 +00:00
John Howard b10dd17e06 Don't build utils on Windows
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-07 08:46:36 -08:00
Antonio Murdaca ae818a820f Allow docker stats without arguments
This patch adds the ability to run `docker stats` w/o arguments and get
statistics for all running containers by default. Also add a new
`--all` flag to list statistics for all containers (like `docker ps`).
New running containers are added to the list as they show up also.
Add integration tests for this new behavior.
Docs updated accordingly. Fix missing stuff in man/commandline
reference for `docker stats`.

Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-11-07 17:03:33 +01:00
Vincent Batts 10df5647bd Merge pull request #17757 from rhvgoyal/log-blkid-failure
devmapper: Provide more error information if blkid fails
2015-11-07 09:16:14 -05:00
Alexander Morozov ad55d29c91 Merge pull request #17575 from Microsoft/10662-nativetemplate
Windows: Fix native exec template
2015-11-06 16:14:44 -08:00
David Calavera 1ba280a8db Merge pull request #17576 from Microsoft/10662-graphtest
Windows: Fix daemon\graphdriver\graphtest
2015-11-06 15:13:31 -08:00
Lei Jitang 451b79d691 Test to verify --mac-address doesn't get applied to new endpoint
created on network connect.

Signed-off-by: Lei Jitang <leijitang@huawei.com>
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2015-11-06 14:52:35 -08:00
Santhosh Manohar dedcf6a6ff Allow port mapping only for endpoint created on docker run
Signed-off-by: Santhosh Manohar <santhosh@docker.com>
2015-11-06 13:54:17 -08:00
Tonis Tiigi 47da59f7ec Fix symlink handling in builder ADD/COPY commands
Fixes #17290

Fixes following issues:

- Cache checksums turning off while walking a broken symlink.

- Cache checksums were taken from symlinks while targets were actually copied.

- Copying a symlink pointing to a file to a directory used the basename of the target as a destination basename, instead of basename of the symlink.


Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
2015-11-06 10:58:12 -08:00
Alexander Morozov 38e34cf6da Use name instead of container in Commit
It will make daemon interface separation easier later.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-06 10:22:00 -08:00
Vivek Goyal 2c8b7c597a devmapper: Provide more error information if blkid fails
Right now if blkid fails we are just logging a debug message and don;t return
the actual error to caller. Caller gets the error message that thin pool
base device UUID verification failed and it might give impression that thin
pool changed. But that's not the case. Thin pool is in such a state that we
could not even query the thin device UUID. Retrun error message appropriately
to make situation more clear.

Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
2015-11-06 08:21:20 -05:00
Lei Jitang 00d00b429f Remove LxcConf in daemon_test.go and fix a typo
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-11-06 09:58:06 +08:00
Solomon Hykes 2519f46550 Merge pull request #17700 from calavera/remove_lxc
Remove LXC support.
2015-11-05 15:22:37 -08:00
David Calavera b232362310 Merge pull request #17735 from LK4D4/errcode_resize
Move errcode handling for resize upper
2015-11-05 15:00:48 -08:00
David Calavera 157b66ad39 Remove exec-driver global daemon option.
Each platform has only a driver now.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-05 17:09:58 -05:00
David Calavera 3b5fac462d Remove LXC support.
The LXC driver was deprecated in Docker 1.8.
Following the deprecation rules, we can remove a deprecated feature
after two major releases. LXC won't be supported anymore starting on Docker 1.10.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-05 17:09:57 -05:00
Alexander Morozov bb0e7eb196 Move errcode handling for resize upper
It'll allow to separate daemon layer more cleanly later.

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-05 13:42:33 -08:00
David Calavera b52bedbd48 Merge pull request #17726 from runcom/fix-errors-format
Fix errors format
2015-11-05 13:30:57 -08:00
David Calavera c7b65288e4 Merge pull request #17685 from WeiZhang555/cluster-parser
Fix `--cluster-store` option parser
2015-11-05 13:21:52 -08:00
Brian Goff 9465d6ee6a Merge pull request #17534 from Microsoft/10662-filterhyperv
Windows: Add isolation to ps filter
2015-11-05 15:55:47 -05:00
John Howard 9c5814171c Windows: Add isolation to ps filter
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-11-05 10:18:24 -08:00
Antonio Murdaca 77826333fe Fix errors format
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2015-11-05 18:17:37 +01:00
Brian Goff c136a33c5b Fallback to file polling for jsonlog reader on err
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-11-05 10:05:05 -05:00
Brian Goff bb9eca9036 Merge pull request #17671 from Microsoft/sjw/skip_mount_on_create
Optimize Create Container to skip extra mount on Windows.
2015-11-05 09:15:28 -05:00
Zhang Wei 0ebdac8bee Fix `--cluster-store` option parser
`--cluster-store` is of form KV-PROVIDER://KV-URL, this commit makes
sure that KV-URL contains no "://"

Signed-off-by: Zhang Wei <zhangwei555@huawei.com>
2015-11-05 11:45:08 +08:00
Brian Goff f18c5e9714 Merge pull request #17703 from aboch/np
Verify Endpoint.Info() before accessing it
2015-11-04 19:23:11 -05:00
Sebastiaan van Stijn 236913f4e8 Merge pull request #14012 from sallyom/exitCodes
Change 'docker run' exit codes to distinguish docker/contained errors
2015-11-05 00:50:08 +01:00
Jess Frazelle 9c1006c8bf Merge pull request #17673 from LK4D4/elim_str_comparison
Do not rely on string comparison in truncindex
2015-11-04 15:39:19 -08:00
Stefan J. Wernli 9112d90b27 Optimize Create Container to skip extra mount on Windows.
Signed-off-by: Stefan J. Wernli <swernli@microsoft.com>
2015-11-04 14:43:50 -08:00
Alessandro Boch 54d22cbd9a Verify Endpoint.Info() before accessing it
- During concurrent operations in multihost environment,
  it is possible that the implementer of `EndpointInfo`
  is nil. It simply means the endpoint is no longer
  available in the datastore.

Signed-off-by: Alessandro Boch <aboch@docker.com>
2015-11-04 13:27:17 -08:00
Sally O'Malley 41de7a18d8 Change 'docker run' exit codes to distinguish docker/contained errors
The purpose of this PR is for users to distinguish Docker errors from
contained command errors.
This PR modifies 'docker run' exit codes to follow the chroot standard
for exit codes.
Exit status:
125 if 'docker run' itself fails
126 if contained command cannot be invoked
127 if contained command cannot be found
the exit status otherwise

Signed-off-by: Sally O'Malley <somalley@redhat.com>
2015-11-04 15:18:50 -05:00
Alexander Morozov d4a8d09d1a Do not rely on string comparison in truncindex
Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-11-04 11:34:05 -08:00
David Calavera 63efc12070 Remove further references to the daemon within containers.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:28:54 -05:00
David Calavera 444c82d19d Remove daemon field from container.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:49 -05:00
David Calavera 5dc3a9a6da Decouple daemon and container from the stats collector.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:49 -05:00
David Calavera c412300dd9 Decouple daemon and container to configure logging drivers.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:49 -05:00
David Calavera 669949d6b4 Decouple daemon and container to manage networks.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:48 -05:00
David Calavera 019c337b93 Decouple daemon and container to cleanup containers.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:48 -05:00
David Calavera ca5ede2d0a Decouple daemon and container to log events.
Create a supervisor interface to let the container monitor to emit events.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:48 -05:00
David Calavera 2c72015ce3 Decouple daemon and container to manage volumes.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:48 -05:00
David Calavera c1c42db060 Decouple daemon and container to execute processes.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:48 -05:00
David Calavera ebf707ec5f Move `Daemon.containerCopy` to daemon/archive.go
It's the only place where it's used.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-11-04 12:27:48 -05:00