Commit Graph

625 Commits

Author SHA1 Message Date
David Scott
d7b4675962 proxy: don't fail if the Listen in the VM fails with EADDRNOTAVAIL
The purpose of the `slirp-proxy` is to expose ports on the Mac or
Windows host. In d5bd7d690a we added
an additional `Listen` inside the VM for backwards compatibility
with software that expected to be able to listen on `0.0.0.0` in
one container and then access this easily from other containers
using an IP bound to the VM (instead of using a first-class network
to connect the containers or discovering a real IP of the host).

Before this patch we could only expose ports on if the Listen
succeeds on both the host and the VM. In practice this meant that
we could only expose ports on `0.0.0.0` and `127.0.0.1`; attempts
to expose ports on specific interfaces on the host would fail.

This patch treats the EADDRNOTAVAIL error from the Listen inside
the VM as a soft failure, and still attempts to Listen on the host.
If the Listen on the host fails it is still a hard failure.
This allows ports to be exposed on specific IPs used on the host.

Fixes [docker/pinata#5080]

Signed-off-by: David Scott <dave.scott@docker.com>
2016-09-08 13:32:25 +01:00
Justin Cormack
d7e4a92151 Merge pull request #380 from nathanleclaire/diagnostix
[WIP] Add ability for diagnostics to upload to S3 bucket
2016-09-08 09:41:03 +01:00
Justin Cormack
3a2c28f352 Closer to reproducible builds
Make an alpine base image for C and Go builds.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-09-06 13:18:11 +01:00
Justin Cormack
28d6e1717f more specific golang alpine base package
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-09-05 15:05:52 +01:00
Nathan LeClaire
173765ffce Use additional parent (global) context
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2016-09-02 16:45:05 -07:00
Nathan LeClaire
d2ff4a06ff Fix race condition(s) in command collection code
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2016-09-02 16:40:38 -07:00
Justin Cormack
97ef6ccf2a remove old arm docker binary, now releases are available upstream
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-09-02 16:50:35 +01:00
Justin Cormack
98e5532237 diagnostics program fix up output
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-09-02 16:30:37 +01:00
David Scott
2911fb6fe1 diagnostics: no need to collect /var/log/service-port-opener.log
This log file has been removed and the contents are now in /var/log/messages
which we already collect.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-09-01 11:28:43 +01:00
David Scott
cd052f1fe0 iptables wrapper: write to syslog rather than /var/log/service-port-opener.log
This will enable proper log rotation and is simpler.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-09-01 11:28:14 +01:00
Justin Cormack
0dcd6641e1 Run dockerd in debug mode if not overridden in config file
Fix #448

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-08-31 12:29:23 +01:00
Justin Cormack
daea294c94 use build-base not alpine-sdk, it is smaller
Signed-off-by: Justin Cormack <justin@specialbusservice.com>
2016-08-30 10:43:34 +01:00
Nathan LeClaire
020da81d82 Add a few command capture tweaks
- Human readable df output
- Dramatically more history from Docker and syslog
- brctl doesn't output anything without 'show'

Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2016-08-29 16:10:31 -07:00
Nathan LeClaire
b911a646bd Add ability to upload diagnostics to S3
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2016-08-29 16:03:27 -07:00
Justin Cormack
bfcfb7c3a4 Always copy in docker-proxy
Fix #434

Stupid mistake, sorry!

Signed-off-by: Justin Cormack <justin@specialbusservice.com>
2016-08-26 09:18:15 +01:00
Justin Cormack
cf6ce0c0a9 Remove hacky code for fast shutdown
Shutdown without this still seems pretty quick, and we are no longer
shutting down frequently for state changes, so I think this is a
reasonable change.

See #430

Signed-off-by: Justin Cormack <justin@specialbusservice.com>
2016-08-24 00:24:02 +01:00
Justin Cormack
1e80ba4fe2 Resolved how to get busybox to created shared mounts
Not documented...

Removed util-linux again.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-08-23 00:17:08 +01:00
Justin Cormack
3f381afbfb Fix shared mount of /run
Needs util-linux for now, see https://github.com/docker/moby/issues/424

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-08-22 23:04:57 +01:00
Justin Cormack
dbf0ec2bfc Fix for util-linux, no lsblk
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-08-22 19:08:26 +01:00
Justin Cormack
1dd45af6ce List all docker binaries explicitly
This will make it fail correctly on old versions that are unsupported.

Allow override of download host.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-08-19 14:50:18 +01:00
Justin Cormack
16a5d6def3 Merge pull request #419 from nathanleclaire/v1.12.1
Bump for Docker 1.12.1
2016-08-18 18:57:52 +01:00
Nathan LeClaire
794af5ea3e Bump for Docker 1.12.1
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2016-08-18 10:49:07 -07:00
David Scott
d5661d6426 tap-vsockd: support reconnection
If the server side crashes and is restarted, this patch makes
tap-vsockd reconnect so the network is restored.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-08-18 11:01:02 +01:00
Justin Cormack
2245476095 Update docker to 1.12.1-rc2
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-08-17 11:28:21 +01:00
Justin Cormack
832b290a2b Update to Docker 1.12.1-rc1
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-08-12 21:42:48 +01:00
Justin Cormack
c0579f4b83 Add default sysfs settings
This uses the new Alpine sysfs.conf service to allow config of sysfs.

Default file that sets transparent huge pages to only be used on request
to fix #368

Database setting available for user configuration.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-08-12 14:13:40 +01:00
Justin Cormack
444538b5ed Merge pull request #403 from justincormack/butts
Create a systemd cgroups mountpoint
2016-08-10 14:35:41 +01:00
Justin Cormack
b6c9bd9b88 Create a systemd cgroups mountpoint
This allows systemd based containers to "just work".

Fixes https://github.com/docker/pinata/issues/3126

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-08-10 14:27:17 +01:00
Rolf Neugebauer
6e1bbbab08 hvtools: remove broken size check for mount points
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-08-10 10:43:07 +01:00
Rolf Neugebauer
e4b27c8509 win: fix the CIFS mount extension of the KVP daemon
Change the format of the registry value, create a credentials file
from the new value, and use that for the CIFS mount.

This should fix issues with password and usernames with un-usual characters in them.

Note this requires a matching change in the host app

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-08-09 17:41:48 +01:00
Justin Cormack
b8661a721b Increase fs.file-max
fixes #389

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-08-02 14:07:38 +02:00
Rolf Neugebauer
02b7e852c7 diagnostics: fix diagnostics for local/desktop editions
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-07-29 16:28:34 +01:00
Justin Cormack
05610e7965 Allow longer for Docker to shut down
Docker needs 10s at least for containers to be allowed to shut down,
so allow 15s maximum between SIGTERM and SIGKILL.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-28 17:25:49 +01:00
Justin Cormack
62573222c1 Merge pull request #372 from justincormack/docker-1.12.0
Update docker to 1.12.0 final
2016-07-28 01:17:55 +01:00
Justin Cormack
202cb42a84 Update docker to 1.12.0 final
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-28 00:43:12 +01:00
Nathan LeClaire
7f822ee8b3 Remove now incompatible Swarm init logic
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2016-07-27 10:34:57 -07:00
Justin Cormack
7b75a2d741 Enable swarm mode in test suite
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-26 16:20:29 +01:00
Justin Cormack
6973159dce On desktop editions, set default swarm advertise address to eth0
This allows plain `swarm init` to work. We do not support multi
node clusters yet as there is no way to reqach this address from
externally at present.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-26 16:10:20 +01:00
Justin Cormack
54f6dcc44e Update Docker to 1.12.0-rc5
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-26 13:23:29 +01:00
Justin Cormack
b17a1b7366 Support make flags for Docker version and experimental
Use `make DOCKER_VERSION=xxx` to override version. Note that
as install process and packaging may vary this may not work.

Use `make DOCKER_EXPERIMENTAL=0` to build from either release
binaries, if version is a final release or test binaries for
release candidates.

Building experimental is still the default.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-26 13:18:09 +01:00
Justin Cormack
48d09d8dc9 Merge pull request #351 from nathanleclaire/nathanleclaire2docker4xazure
Implement only one container for Azure
2016-07-25 23:42:33 +01:00
Nathan LeClaire
d6f2883730 Implement only one container for Azure
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2016-07-25 15:39:04 -07:00
Nathan LeClaire
0aae9b68d6 Continue POSIX-ifying build scripts
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2016-07-25 11:14:57 -07:00
Justin Cormack
01a588cb6b Fix up mobyconfig startup code
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-25 14:03:03 +01:00
Justin Cormack
4f5db70e9c fix typo
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-25 12:35:45 +01:00
Justin Cormack
efb5e03004 Merge pull request #343 from justincormack/etchosts
add etc/hosts database key, as requested at Docker London
2016-07-22 14:41:15 +01:00
Justin Cormack
93b72d5cfe add etc/hosts database key, as requested at Docker London
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-22 14:27:20 +01:00
David Sheets
119740435d Merge pull request #340 from dsheets/transfused-notify-channel
transfused notify channel
2016-07-22 13:58:28 +01:00
David Sheets
78cca476fb transfused: copyedit a couple error messages
Signed-off-by: David Sheets <dsheets@docker.com>
2016-07-22 13:40:52 +01:00
David Sheets
ddd0fcc603 transfused: add separate FUSE notify channel to avoid deadlock
This adds a new notify channel to the transfuse protocol. It is not
optional yet but could be made to be optional. A notify protocol and
notify channel are required because writing FUSE response messages to
the FUSE device has different semantics from writing asynchronous
notifications. In particular, response message writes only error on
malformed messages, do not take locks, and do not block. In contrast,
asynchronous notifications can error under normal conditions
(e.g. invalidating a cache entry that doesn't exist), can take locks
during the write call, and can block.

If responses and notifications occur in the same thread, the file system
can become deadlocked when syscalls lock resources waiting for a
response and a notification is written that blocks attempting to acquire
those same locks. The response that would unlock the contended lock
could be queued behind the notification write but the notification write
can't unblock until the response is written in the future. This patch
enables file systems to avoid that fate by offering a secondary channel
on which to send notifications.

Signed-off-by: David Sheets <dsheets@docker.com>
2016-07-22 13:35:57 +01:00