Commit Graph

1527 Commits

Author SHA1 Message Date
Doug Davis dc697b1c9f Add a "Created" state for new containers that haven't been run yet
Closes #13353

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-05-30 07:48:46 -07:00
David Calavera 04c6f09fbd Merge pull request #12400 from coolljt0725/kill_all_containers_on_daemon_shutdown
Ensure all the running containers are killed on daemon shutdown
2015-05-29 16:45:57 -07:00
David Calavera eaa9c1b97e Merge pull request #13596 from jfrazelle/11414-fix-once-and-for-all
fix bug with rmi multiple tag
2015-05-29 15:10:22 -07:00
David Calavera ec167972bf Merge pull request #13446 from runcom/remove-PortSpecs
Remove PortSpecs from Config
2015-05-29 14:31:48 -07:00
Jessie Frazelle a39de41871 Merge pull request #13527 from duglin/FixImagesPrefixNotFound
Fix error when trying to delete an image due to a bad container
2015-05-29 14:09:26 -07:00
Jessica Frazelle 185f392691 fix bug with rmi multiple tag
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-05-29 14:04:06 -07:00
Antonio Murdaca 15134a3320 Remove PortSpecs from Config
Signed-off-by: Antonio Murdaca <me@runcom.ninja>
2015-05-29 22:38:09 +02:00
Alexander Morozov c42810fe99 Merge pull request #13564 from burke/fix-memory-leak
Use bufio.Reader instead of bufio.Scanner for logger.Copier
2015-05-29 13:37:15 -07:00
David Calavera f1fed87fc0 Merge pull request #13392 from runcom/syslog-connection-url-log-opt
Add syslog-address log-opt
2015-05-29 10:21:57 -07:00
Burke Libbey f779cfc5d8
Use bufio.Reader instead of bufio.Scanner for logger.Copier
When using a scanner, log lines over 64K will crash the Copier with
bufio.ErrTooLong. Subsequently, the ioutils.bufReader will grow without
bound as the logs are no longer being flushed to disk.

Signed-off-by: Burke Libbey <burke.libbey@shopify.com>
2015-05-29 12:29:42 -04:00
Antonio Murdaca e8c88d2533 Add syslog-address log-opt
Signed-off-by: Antonio Murdaca <me@runcom.ninja>
2015-05-29 00:42:11 +02:00
David Calavera 53d9609de4 Mount bind volumes coming from the old volumes configuration.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-05-28 14:06:17 -07:00
Alexander Morozov b90732f801 Merge pull request #13548 from kvasdopil/zfs_magicnum
ZFS filesystem magic number check is fixed on FreeBSD
2015-05-28 10:27:12 -07:00
Brian Goff 45488f9dc0 Merge pull request #13259 from Microsoft/10662-configbridge
Windows: factor out bridgeConfig from server+config
2015-05-28 12:59:57 -04:00
Brian Goff 27919bab2d Merge pull request #13269 from Microsoft/10662-statsrefactor
Windows: refactor stats
2015-05-28 12:46:34 -04:00
Alexey Guskov 36bf6e4440 zfs magicnumber check on freebsd is fixed
Signed-off-by: Alexey Guskov <lexag@mail.ru>
2015-05-28 18:38:08 +03:00
Lei Jitang bcd076b5fe Clean up: remove redundant '\n' in Create
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-05-28 17:08:55 +08:00
Doug Davis 71a4990229 Fix error when trying to delete an image due to a bad container
I ran into a situation where I was trying:
	`docker rmi busybox`
and it kept failing saying:
    `could not find image: Prefix can't be empty`

While I have no idea how I got into this situation, it turns out this is
error message is from `daemon.canDeleteImage()`. In that func we loop over
all containers checking to see if they're using the image we're trying to
delete.  In my case though, I had a container with no ImageID. So the code
would die tryig to find that image (hence the "Prefix can't be empty" err).
This would stop all processing despite the fact that the container we're
checking had nothing to do with 'busybox'.

My change logs the bad situation in the logs and then skips that container.
There's no reason to fail all `docker rmi ...` calls just because of one
bad container.

Will continue to try to figure out how I got a container w/o an ImageID
but as of now I have no idea, I didn't do anything but normal docker cli
commands.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-05-27 19:19:43 -07:00
David Calavera 49e734c6e4 Merge pull request #13496 from Microsoft/10662-windefaults
Windows: Set default exec driver to windows
2015-05-27 16:02:24 -07:00
Arnaud Porterie ec471a7c9b Merge pull request #12572 from jfrazelle/selinux-labels-carry
Modify volume mounts SELinux labels on the fly based on :Z or :z
2015-05-27 14:46:16 -07:00
Brian Goff b2a43baf2e Use SELinux labels for volumes
Fixes a regression from the volumes refactor where the vfs graphdriver
was setting labels for volumes to `s0` so that they can both be written
to by the container and shared with other containers.
When moving away from vfs this was never re-introduced.
Since this needs to happen regardless of volume driver, this is
implemented outside of the driver.

Fixes issue where `z` and `Z` labels are not set for bind-mounts.

Don't lock while creating volumes

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-05-27 13:43:38 -07:00
David Calavera f5d3311839 Merge pull request #13449 from duglin/FixRaceInStop
Fix race condition on container stop
2015-05-27 13:05:53 -07:00
Jessica Frazelle af7d17a6c9 apply selinux labels volume patch on volumes refactor
Signed-off-by: Jessica Frazelle <princess@docker.com>
2015-05-27 12:50:16 -07:00
Alexander Morozov 2029257e3c Merge pull request #13493 from jlhawn/volume_unmount_fix
Fix container unmount networkMounts
2015-05-27 08:44:11 -07:00
Brian Goff b3e8ab3021 Fix unregister stats on when rm running container
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-05-26 22:22:03 -04:00
Lei Jitang bdb77078b5 Ensure all the running containers are killed on daemon shutdown
Signed-off-by: Lei Jitang <leijitang@huawei.com>
2015-05-27 09:09:25 +08:00
Josh Hawn 04f99a6ca8 Fix container unmount networkMounts
UnmountVolumes used to also unmount 'specialMounts' but it no longer does after
a recent refactor of volumes. This patch corrects this behavior to include
unmounting of `networkMounts` which replaces `specialMounts` (now dead code).

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)
2015-05-26 17:38:26 -07:00
Arnaud Porterie b50e780925 Merge pull request #13491 from jfrazelle/revert-exec-privileged
Revert "Add docker exec run a command in privileged mode"
2015-05-26 16:41:50 -07:00
Brian Goff 838e1a8947 Merge pull request #13487 from calavera/volume_load_regression_test
Add regression test to make sure we can load old containers with volumes.
2015-05-26 19:40:08 -04:00
John Howard 041ba90dbb Windows: Set default exec driver to windows
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-05-26 16:17:33 -07:00
Alexander Morozov 0d445685b8 Merge pull request #13444 from runcom/fix-race-stats
Fix race in stats cli and native driver
2015-05-26 15:34:50 -07:00
David Calavera ea0e15ba62 Add regression test to make sure we can load old containers with volumes.
Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-05-26 15:28:58 -07:00
Arnaud Porterie bd18d86250 Merge pull request #13492 from calavera/donot_force_syscall_unmount_on_cleanup
Do not force `syscall.Unmount` on container cleanup.
2015-05-26 15:23:16 -07:00
David Calavera f78dce152c Do not force `syscall.Unmount` on container cleanup.
This is not necessary and it's a regression from the old behavior.

Signed-off-by: David Calavera <david.calavera@gmail.com>
2015-05-26 14:28:26 -07:00
Alexander Morozov de318d8c1d Merge pull request #13489 from cpuguy83/cleanup_rm_funcs
Cleanup container rm funcs
2015-05-26 14:24:02 -07:00
Jessica Frazelle 40b71adee3 Revert "Add docker exec run a command in privileged mode"
This reverts commit 72a500e9e5.

Signed-off-by: Jessica Frazelle <princess@docker.com>

Conflicts:
	daemon/execdriver/native/exec.go
	integration-cli/docker_cli_exec_test.go
	runconfig/exec.go
2015-05-26 14:12:16 -07:00
Arnaud Porterie 47e727d1fc Merge pull request #13440 from LK4D4/fix_bridge_none
Fix network with -b none
2015-05-26 14:08:21 -07:00
Brian Goff f8628ba891 Cleanup container rm funcs
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2015-05-26 15:38:52 -04:00
David Calavera fc679bebb9 Merge pull request #13479 from Microsoft/10662-fixcontaineragain
Windows: Fix up container again
2015-05-26 10:49:48 -07:00
John Howard 1dc0499b64 Windows: Fix volume_windows compile
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-05-26 09:43:21 -07:00
John Howard 5d207de509 Windows: Fix up container again
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-05-26 09:33:55 -07:00
Antonio Murdaca 9e425d56d0 Add lock before accessing native driver active containers
Signed-off-by: Antonio Murdaca <me@runcom.ninja>
2015-05-26 13:55:02 +02:00
Antonio Murdaca 77280a87b7 Fix race in stats cli and native driver
Signed-off-by: Antonio Murdaca <me@runcom.ninja>
2015-05-26 13:55:02 +02:00
Darren Shepherd 59214a0737 Preinitialize MountPoints to avoid assigning to a nil map
Fixes #13435

Signed-off-by: Darren Shepherd <darren@rancher.com>
2015-05-25 19:37:57 -07:00
Doug Davis 29bdcaf3cf Fix race condition on container stop
I'm fairly consistently seeing an error in
DockerSuite.TestContainerApiRestartNotimeoutParam:

docker_api_containers_test.go:969:
    c.Assert(status, check.Equals, http.StatusNoContent)
    ... obtained int = 500
    ... expected int = 204

And in the daemon logs I see:
INFO[0003] Container 8cf77c20275586b36c5095613159cf73babf92ba42ed4a2954bd55dca6b08971 failed to exit within 0 seconds of SIGTERM - using the force
ERRO[0003] Handler for POST /containers/{name:.*}/restart returned error: Cannot restart container 8cf77c20275586b36c5095613159cf73babf92ba42ed4a2954bd55dca6b08971: [2] Container does not exist: container destroyed

ERRO[0003] HTTP Error                                    err=Cannot restart container 8cf77c20275586b36c5095613159cf73babf92ba42ed4a2954bd55dca6b08971: [2] Container does not exist: container destroyed
 statusCode=500

Note the "container destroyed" error message.  This is being generatd by
the libcontainer code and bubbled up in container.Kill() as a result of the
call to `container.killPossiblyDeadProcess(9)` on line 439.

See the comment in the code, but what I think is going on is that because we
don't have any timeout on the Stop() call we immediate try to force things to
stop. And by the time we get into libcontainer code the process just finished
stopping due to the initial signal, so this secondary sig-9 fails due to the
container no longer running (ie. its 'destroyed').

Since we can't look for "container destroyed" to just ignore the error, because
some other driver might have different text, I opted to just ignore the error
and keep going - with the assumption that if it couldnt send a sig-9 to the
process then it MUST be because its already dead and not something else.

To reproduce this I just run:
curl -v -X POST http://127.0.0.1:2375/v1.19/containers/8cf77c20275586b36c5095613159cf73babf92ba42ed4a2954bd55dca6b08971/restart

a few times and then it fails with the HTTP 500.

Would like to hear some other ideas on to handle this since I'm not
thrilled with the proposed solution.

Signed-off-by: Doug Davis <dug@us.ibm.com>
2015-05-25 04:28:23 -07:00
Alexander Morozov 3cb14df68c Fix network with -b none
* Don't AllocateNetwork when network is disabled
* Don't createNetwork in execdriver when network is disabled

Signed-off-by: Alexander Morozov <lk4d4@docker.com>
2015-05-24 08:26:59 -07:00
Arnaud Porterie f83073d3eb Merge pull request #13424 from mavenugo/vendorin
Vendoring in libnetwork 67438080724b17b641b411322822c00d0d3c3201
2015-05-23 21:08:58 -07:00
John Howard ead2f80073 Windows: factor out bridge server+config
Signed-off-by: John Howard <jhoward@microsoft.com>
2015-05-23 19:22:06 -07:00
Arnaud Porterie bce3e761c0 Merge pull request #13161 from calavera/plugin_discovery
Proposal: Volume refactor and external volume plugins
2015-05-23 18:44:18 -07:00
Madhu Venugopal a3d22c764c Vendoring in libnetwork 67438080724b17b641b411322822c00d0d3c3201
This version brings in upto-date important bug-fixes from libnetwork

Signed-off-by: Madhu Venugopal <madhu@docker.com>
2015-05-23 18:42:34 -07:00