Commit Graph

494 Commits

Author SHA1 Message Date
Justin Cormack
99c2a09403 Remove dnsfix
This was there to workaround an issue with vmnet, not applicable now.
A user reported that they were getting unexpected 8.8.8.8 addresses
and it could possible be applied erroneously under some circumstances.

Signed-off-by: Justin Cormack <justin@specialbusservice.com>
2016-07-19 10:04:09 +01:00
Nathan LeClaire
abb968c538 Add AWS build support
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
2016-07-18 11:08:44 -07:00
Justin Cormack
67b2a00853 Add conditional services based on mobyplatform
Replaces https://github.com/docker/moby/pull/282

Use mobyplatform=xxx to specify platform in boot command

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-18 12:39:14 +01:00
Justin Cormack
6848ddd58e capture containerd logs
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-15 15:11:06 +01:00
Justin Cormack
252077a4ba wait for system containerd to start
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-15 11:38:05 +01:00
Justin Cormack
498c481700 Wait for docker to finish starting up before terminateing init script
This means dependent services can rely on docker being up.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-15 11:29:32 +01:00
Justin Cormack
37cd71fa0d Merge pull request #281 from justincormack/containerd
Add a system containerd
2016-07-14 12:32:07 +01:00
Justin Cormack
220f3df37a Add a system containerd
This adds an independent system containerd for running internal
containers.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-14 12:28:44 +01:00
Justin Cormack
9c0a1387ea set nofile ulimit to maximum possible value
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-13 14:04:49 +01:00
Justin Cormack
261544cf02 update to 1.12.0-rc4 upstream version
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-13 09:50:25 +01:00
Rolf Neugebauer
1977888b18 diagnostics: Don't check for transfused on Windows
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-07-12 14:28:11 +01:00
Rolf Neugebauer
c09905199a init: don't start docker on 0.0.0.0:2375 on DfM/DfW
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-07-12 14:08:55 +01:00
Rolf Neugebauer
b499b52d48 init: don't start transfused on Windows
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2016-07-12 14:04:08 +01:00
David Scott
17d110d770 iptables: log to /var/log/... rather than /var/run/log
Signed-off-by: David Scott <dave.scott@docker.com>
2016-07-12 10:26:42 +01:00
David Scott
55a2becfb4 iptables: only open host ports if native/port-forwarding=true in the db
Signed-off-by: David Scott <dave.scott@docker.com>
2016-07-12 10:26:42 +01:00
David Scott
d0876fb05e iptables: add a TODO
Signed-off-by: David Scott <dave.scott@docker.com>
2016-07-12 10:26:42 +01:00
David Scott
12fbe114f6 iptables: remove the pid file after sending SIGTERM
Signed-off-by: David Scott <dave.scott@docker.com>
2016-07-12 10:26:42 +01:00
David Scott
3c6ad76461 proxy: add a -no-local-ip option
docker itself seems to bind to the port globally inside Moby, so we
get an EADDRINUSE if we try to do it too.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-07-12 10:26:42 +01:00
David Scott
3183d9c72a iptables: get the kill arguments the right way round
Signed-off-by: David Scott <dave.scott@docker.com>
2016-07-12 10:26:42 +01:00
David Scott
a294b0f9b0 iptables: close all the fds we inherit from docker
Signed-off-by: David Scott <dave.scott@docker.com>
2016-07-12 10:26:42 +01:00
David Scott
dfb97863c9 /etc/init.d/docker: prepend /usr/local/sbin to the $PATH
This is where the iptables wrapper lives.

Signed-off-by: David Scott <dave.scott@docker.com>
2016-07-12 10:26:42 +01:00
David Scott
80b234dd3e Add primitive iptables wrapper which can set up port forwards
Signed-off-by: David Scott <dave.scott@docker.com>
2016-07-12 10:26:42 +01:00
Ian Campbell
0c471bdc09 Simple build system for ocaml-based iptables
Signed-off-by: Ian Campbell <ian.campbell@docker.com>
2016-07-12 10:26:39 +01:00
David Sheets
20fc67092a transfused: add mknod reg file event actuation message
Signed-off-by: David Sheets <dsheets@docker.com>
2016-07-11 16:26:00 -07:00
David Sheets
026bfeb17e sysctl: set a large fs.inotify.max_user_watches limit
Needed by Ruby guard and Dropbox. See https://forums.docker.com/t/running-guard-with-docker-compose-fails-due-to-inotify-limit/17096

Signed-off-by: David Sheets <dsheets@docker.com>
2016-07-11 14:37:52 -07:00
Justin Cormack
7fb90b6af5 Fix user namespace support
fix #153

For now, just create the default remap user, rather than trying
to fix the command emulation. The existing code in docker is not
ideal, as it is GNU specific, try to find a better option for
1.13.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-11 14:47:23 +01:00
David Sheets
8473eb56f2 Remove /Mac in docker init and transfused init
Replace /Mac with /host_docker_app and replace driverDir with just driver.

Signed-off-by: David Sheets <dsheets@docker.com>
2016-07-08 14:36:26 -07:00
Justin Cormack
51563eb677 Add a custom sysctl file
This increases resource limits that have been generally requested.

See #232

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-08 18:16:05 +01:00
Justin Cormack
09e60eee16 Add some more docker tests, including running image
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-08 16:54:18 +01:00
Justin Cormack
839b58e19c Merge pull request #251 from dsheets/transfused-export-suitability
transfused: distinguish export requests from mount requests
2016-07-08 16:30:04 +01:00
Justin Cormack
44d68b268a Initial test hooks
Beginning of a proper test suite, using qemu. Test just runs docker
for now, will add further integration tests.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-08 15:44:04 +01:00
Justin Cormack
b3cfed22f4 Merge pull request #250 from djs55/vsock-ulimit
proxy-vsockd: bump the max number of file descriptors
2016-07-06 14:52:01 +01:00
Ian Campbell
120f9d916c Merge pull request #241 from ijc25/logging-over-vsock
mac: Redirect syslog over vsock
2016-07-05 17:54:30 +01:00
Ian Campbell
08d2109c29 Merge pull request #207 from ijc25/ntp-from-dhcp
[Post Dockercon] Use $ntpsrv from DHCP to configure chrony
2016-07-05 14:23:49 +01:00
David Sheets
c75eb93d1c transfused: distinguish export requests from mount requests
We distinguish export suitability requests from bind mount suitability
requests in the transfuse control protocol. This distinction allows us to
permit both bind mounts of empty directories and export mounts onto empty
directories. Addresses docker/pinata#4213.

Signed-off-by: David Sheets <dsheets@docker.com>
2016-07-04 18:53:05 -07:00
David Scott
32ee88c347 proxy-vsockd: bump the max number of file descriptors
Signed-off-by: David Scott <dave.scott@docker.com>
2016-07-04 21:49:17 +01:00
Justin Cormack
6e25acbe30 use cat not sysctl for reading sysctl values
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2016-07-04 15:47:46 +01:00
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
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
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
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