Commit Graph

817 Commits

Author SHA1 Message Date
Ian Campbell
43e2030e31 vsudd: Use RFC5425 scheme for syslog forwarding
This means an ASCII MSG-LEN and a space, rather than a binary message length.

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2016-07-04 14:49:46 +01:00
Ian Campbell
916d920bfb Direct syslog to log to /var/run/syslog.vsock on mac
Avoid doing this on non-Docker-for-{Mac,Win} editions (which don't run vsudd)
by checking for vsudd.pid and avoid doing it on Docker-for-Win (for now) by
checking for /sys/bus/vmbus (as /etc/init.d/vsudd does too).

Ideally we would just check for /var/run/syslog.vsock but this may not have
arrived yet (typically vsudd is now started immediately prior to syslog and it
forks via start-stop-daemon and thus before it creates the socket). Since
syslogd will reopen as needed we don't want to delay boot either here or in the
vsudd initscript to await the arrival of the socket.

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2016-07-04 14:47:02 +01:00
Ian Campbell
ad7f4c74b2 vsudd: Log over syslog
This means that with the previous patches normal vsudd logging will be logged
on the console. The exceptional case of error logging during syslog forwarding
established in the previous patch remains in place.

Prior to this the vsudd.log was actually in /run/vsudd.log and not in /var/log/
(exported to the host) as expected. Prior to c5940b3479 ("Bind the original
/var/log onto /run/log") the log was simply shadowed under the fuse mount over
/var/log.

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2016-07-04 14:47:02 +01:00
Ian Campbell
7dd7b0c0da vsudd: Forward syslog from /var/run/syslog.vsock to vsock 514
This is mac only (for now) and will not actually do anything until syslogd is
told to forward to /var/run/syslog.vsock.

syslog uses a SOCK_DGRAM connection to /var/run/syslog.vsock, however vsock
today is SOCK_STREAM only, so we need to "packetise" the stream. Do so by
writing the datagram length as a (little-endian) uint32 before the data itself.
This is slightly modelled after rfc6587 (syslog over TCP) but simplified by
using a 4-byte binary value rather than ASCII digits.

Arrange for vsudd to start before the logger so it is ready and waiting.

Note that the code in vsyslog.go needs to be rather careful about its own
logging, in particular logging forwarding failures over syslog seems likely to
make things worse. Instead this file logs to the console when errors occur,
this will be captured by the logging of the hyperkit VM console.

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2016-07-04 14:47:02 +01:00
Ian Campbell
b61451047d vsudd: Make incoming socket forwarding more generic
Rather than hardcoding a single vsock<->docker.sock mapping allow arbitrary
incoming connection forwarding between vsocks and unix domain sockets.

The intention was to subsequently extend this further to support arbitrary
forwarding of outgoing connections too and to use that to forward the syslog
socket out to a vsock.

This turned out not to be a good plan, partly since the syslog socket needs to
be SOCK_DATAGRAM but vsocks only does SOCK_STREAM today (meaning we need some
additional framing here) and partly because handling syslog forwarding in
common code makes error logging in the common code somewhat trickier (logging
syslog errors over syslog).

So instead syslog will be handled as a special case in a following patch.
However some vestiges of the original plan remain, e.g. the inForwards name and
the net field in the forwards which could be unixgram but currently is only
supporting unix(stream).

In principal this patch could be dropped, but it adds some flexibility which
might be useful in the future.

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2016-07-04 14:47:02 +01:00
Ian Campbell
f70ff0aeac Revendor virtsock go library, for vsock.Dial
$ gvt delete github.com/rneugeba/virtsock/go
$ gvt fetch --no-recurse https://github.com/rneugeba/virtsock/go

virtsock.git:

$ git log --oneline 74097e05a883e89c70e6a27b342672c7fe6c846b..650ef8224a0c06b4b20e9bee1600dbf677c8176d -- go/
0e2f0a8 vsock: Implement vsock.Dial
712714a vsock: include the errno when C.bind_sockaddr_vm
03725fe go: make errors public

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2016-07-04 14:47:02 +01:00
Ian Campbell
98174da08f vsudd: Correctly format go Error's with %s
%#v is not correct (includes opaque pointers etc).

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2016-07-04 14:47:02 +01:00
Justin Cormack
78f4d5fa30 Merge pull request #245 from justincormack/ulimit
Increase ulimits as high as possible
2016-07-04 14:45:38 +01:00
Justin Cormack
cf4832b225 Increase ulimits as high as possible
Setting unlimited improves performance.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-04 14:37:28 +01:00
Justin Cormack
480bcf1be2 Merge pull request #237 from ijc25/diagnostics
Fixup diagnostics logging
2016-07-04 11:13:42 +01:00
Justin Cormack
4ee34bfc10 Merge pull request #243 from djs55/docker.1.12-rc3
Update docker to 1.12.0-rc3
2016-07-04 11:10:38 +01:00
Justin Cormack
50dc1ee4b0 Merge pull request #240 from dsheets/remove-fixed-export-mounts
docker init: remove fixed host export mounts
2016-07-04 11:10:17 +01:00
David Scott
1684b5585b Update docker to 1.12.0-rc3
Signed-off-by: David Scott <dave.scott@docker.com>
2016-07-04 11:04:29 +01:00
David Sheets
cbe7c2af5c docker init: remove fixed host export mounts
Signed-off-by: David Sheets <dsheets@docker.com>
(cherry picked from commit 760840ac69)
2016-07-02 12:27:09 -07:00
Ian Campbell
dd41c21021 diagnostics: Only log connection failure if not EAFNOTSUPPORT
EAFNOTSUPPORT likely means we are running on a hypervisor which doesn't support
that particular socket type.

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2016-07-01 15:35:27 +01:00
Ian Campbell
d9288f5bba diagnostics: Log over syslog
Instead of spamming the console.

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2016-07-01 15:35:27 +01:00
Ian Campbell
421dee55d0 diagnostics: Correct error formatting
They should be formatted as %s not %#v (which prints all sorts of opaque
pointers).

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2016-07-01 15:35:26 +01:00
Ian Campbell
c9c9994d89 diagnostics: run "gofmt -w" over go code
Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2016-07-01 15:35:26 +01:00
Justin Cormack
cd640a6053 Merge pull request #228 from justincormack/kernelup
update linux to 4.4.14 and update aufs to 20160627
2016-06-26 16:17:48 -07:00
Justin Cormack
b39033bd09 update linux to 4.4.14 and update aufs to 20160627
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-06-26 16:16:57 -07:00
Rolf Neugebauer
4f7ec1ee73 Merge pull request #227 from rneugeba/diag-improv
diag: improve diagnostics
2016-06-22 11:58:42 +01:00
Rolf Neugebauer
7b5811cdbd diag: improve diagnostics
- try several wget's on well known IP addresses to check IP
  connectivity (ping in hostnet mode is not good enough)
- try DNS lookup on a well known server
- add service-port-opener logs

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-06-22 11:38:51 +01:00
Justin Cormack
f59e833796 Merge pull request #226 from rneugeba/kvp-earlier
win: ensure that the KVP daemon starts early
2016-06-21 15:46:53 -07:00
Rolf Neugebauer
c728549505 win: ensure that the KVP daemon starts early
The Windows start script polls the VM for it's IP address before
initiating things like CIFS mounts.  Getting the IP config is
done via the KVP daemon.  Starting it earlier reduce the start up
delay, in particular if the VM is part of a swarm.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-06-21 14:19:59 +01:00
Justin Cormack
bde97d9584 Merge pull request #223 from justincormack/qemufix
Make the qemu containers interactive so the console works
2016-06-19 17:00:17 +01:00
Justin Cormack
c1f1a5f457 Make the qemu containers interactive so the console works
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-06-18 21:47:31 +01:00
Justin Cormack
bcfc2fa34f Merge pull request #220 from dhiltgen/console
Add SATA disk support
2016-06-17 16:16:46 +01:00
Daniel Hiltgen
b06eb1eb77 Add SATA disk support
Increase the number of hypervisors where Moby can run and detect
the disks.  With this change, I'm able to boot under KVM and see
the disk detected, formatted and mounted as expected.
2016-06-17 08:11:46 -07:00
Justin Cormack
01ecbd25e8 Merge pull request #218 from ijc25/mkdir-p
Use "mkdir -p /run/log" in docker initfile
2016-06-17 14:03:14 +01:00
Justin Cormack
1064612c81 Merge pull request #217 from ijc25/bashisms
Avoid brace expansion which is a bashism.
2016-06-17 14:02:57 +01:00
Ian Campbell
e84371fc9c Use "mkdir -p /run/log" in docker initfile
For the "no error if existing" rather than "make parents" affect. Otherwise:

moby:~# service docker restart
 * Stopping docker
 * Starting Docker ...
mkdir: can't create directory '/run/log': File exists
 [ ok ]

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2016-06-17 13:57:33 +01:00
Ian Campbell
8fab3e5607 Avoid brace expansion which is a bashism.
Building on Debian where /bin/sh is dash:

make[1]: Leaving directory '/home/ijc/development/Docker/moby.git/alpine/packages/docker/docker.git'
mkdir -p bin
cp docker.git/bundles/latest/binary-daemon/{dockerd,docker-runc} bin/
cp: cannot stat 'docker.git/bundles/latest/binary-daemon/{dockerd,docker-runc}': No such file or directory
Makefile:9: recipe for target 'bin' failed

Pasting the construct into a file and running checkbashsisms:
possible bashism in foo line 2 (brace expansion):
cp docker.git/bundles/latest/binary-daemon/{dockerd,docker-runc} bin/

Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2016-06-17 13:54:14 +01:00
Justin Cormack
9fee7113eb Merge pull request #216 from justincormack/docker-1.12.0-rc2
Update to 1.12.0-rc2
2016-06-17 13:25:50 +01:00
Justin Cormack
f367ae62f5 Update to 1.12.0-rc2
Currently the repo points to just the cherrypicks, not yet final tag

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-06-17 13:24:44 +01:00
Justin Cormack
16fa85917f Merge pull request #215 from djs55/proxy-arg
proxy: add interactive mode with `-i`
2016-06-17 11:59:18 +01:00
David Scott
839f53d9b1 proxy: add interactive mode with -i
This allows the proxy to be run easily from a terminal or other script
without requiring fd 3 to be open and writable.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-06-17 11:11:10 +01:00
Justin Cormack
5fe61a9226 Merge pull request #214 from dhiltgen/console
Add support for console on tty1
2016-06-17 01:39:41 +01:00
Daniel Hiltgen
56c6c3a0a9 Add support for console on tty1
When running moby under other hypervisors, requiring troubleshooting on
the serial port can be painful.  This change enables console support on
tty1 similar to the way prior boot2docker images worked.
2016-06-16 17:17:34 -07:00
Justin Cormack
2c9c3c4b20 Merge pull request #213 from justincormack/chronylisten
fix #212 do not let chronyd listen on a port for commands
2016-06-15 15:28:53 +01:00
Justin Cormack
35309accfb fix #212 do not let chronyd listen on a port for commands
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-06-15 15:28:05 +01:00
Justin Cormack
1b61788c2a Merge pull request #211 from justincormack/docker-1.12.0-rc1
Docker 1.12.0 rc1
2016-06-15 10:43:41 +01:00
Justin Cormack
5b7c05c25b reverse on Windows check for diagnostics
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-06-15 10:42:21 +01:00
Justin Cormack
863fa5cb8e default to Docker experimental; later we will need to do multiple builds
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-06-15 10:28:26 +01:00
Justin Cormack
827eefcfa2 update docker to 1.12.0-rc1
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-06-15 10:19:31 +01:00
Justin Cormack
7f389136c5 Merge pull request #210 from justincormack/cdrom
Kernel config for CDROM support (for Azure)
2016-06-14 22:09:36 +01:00
Justin Cormack
ef4a411284 Merge pull request #209 from djs55/fix-tap-vsockd
tap-vsockd: make sure the service daemonizes properly
2016-06-14 15:49:37 +01:00
David Scott
e99d36784b tap-vsockd: make sure the service daemonizes properly
This tells start-stop-daemon to run tap-vsockd as a daemon, and tells
tap-vsockd not to daemonize itself. This seems to work more reliably
than when tap-vsockd self-daemonizes.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-06-14 15:16:56 +01:00
Justin Cormack
e1ca7e5ab1 Merge pull request #208 from justincormack/1.12-dev
Update to docker 1.12-dev plus proxy patches, close to what will be rc1
2016-06-14 14:15:19 +01:00
Justin Cormack
dd5fe0455b Update to docker 1.12-dev plus proxy patches, close to what will be rc1
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-06-14 14:13:36 +01:00
Justin Cormack
ed34c13840 Kernel config for CDROM support (for Azure)
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-06-14 11:30:47 +01:00